mirror of
https://github.com/chenasraf/dotfiles.git
synced 2026-05-18 01:29:06 +00:00
feat(tx): completions wip
This commit is contained in:
@@ -186,7 +186,6 @@ cmp.setup {
|
||||
},
|
||||
}
|
||||
return {
|
||||
|
||||
'akinsho/flutter-tools.nvim',
|
||||
lazy = false,
|
||||
dependencies = {
|
||||
@@ -224,6 +223,7 @@ return {
|
||||
-- if empty dap will not stop on any exceptions, otherwise it will stop on those specified
|
||||
-- see |:help dap.set_exception_breakpoints()| for more info
|
||||
exception_breakpoints = {},
|
||||
---@diagnostic disable-next-line: unused-local
|
||||
register_configurations = function(paths)
|
||||
require("dap").configurations.dart = {
|
||||
-- <put here config that you would find in .vscode/launch.json>
|
||||
|
||||
@@ -39,11 +39,11 @@ end
|
||||
|
||||
vim.defer_fn(function()
|
||||
-- See `:help telescope.builtin`
|
||||
vim.keymap.set('n', '<leader>?', require('telescope.builtin').oldfiles, { desc = '[?] Find recently opened files' })
|
||||
vim.keymap.set('n', '<leader><space>', require('telescope.builtin').buffers, { desc = '[ ] Find existing buffers' })
|
||||
vim.keymap.set('n', '<leader>?', builtin.oldfiles, { desc = '[?] Find recently opened files' })
|
||||
vim.keymap.set('n', '<leader><space>', builtin.buffers, { desc = '[ ] Find existing buffers' })
|
||||
vim.keymap.set('n', '<leader>/', function()
|
||||
-- You can pass additional configuration to telescope to change theme, layout, etc.
|
||||
require('telescope.builtin').current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
||||
builtin.current_buffer_fuzzy_find(require('telescope.themes').get_dropdown {
|
||||
winblend = 10,
|
||||
previewer = false,
|
||||
})
|
||||
@@ -64,14 +64,16 @@ vim.defer_fn(function()
|
||||
builtin.grep_string({ search = term })
|
||||
end)
|
||||
|
||||
vim.keymap.set('n', '<leader>gf', require('telescope.builtin').git_files, { desc = 'Search [G]it [F]iles' })
|
||||
vim.keymap.set('n', '<leader>sf', require('telescope.builtin').find_files, { desc = '[S]earch [F]iles' })
|
||||
vim.keymap.set('n', '<leader>sh', require('telescope.builtin').help_tags, { desc = '[S]earch [H]elp' })
|
||||
vim.keymap.set('n', '<leader>sw', require('telescope.builtin').grep_string, { desc = '[S]earch current [W]ord' })
|
||||
vim.keymap.set('n', '<leader>sg', require('telescope.builtin').live_grep, { desc = '[S]earch by [G]rep' })
|
||||
vim.keymap.set('n', '<leader>gf', builtin.git_files, { desc = 'Search [G]it [F]iles' })
|
||||
vim.keymap.set('n', '<leader>sf', builtin.find_files, { desc = '[S]earch [F]iles' })
|
||||
vim.keymap.set('n', '<leader>sh', builtin.help_tags, { desc = '[S]earch [H]elp' })
|
||||
vim.keymap.set('n', '<leader>sw', builtin.grep_string, { desc = '[S]earch current [W]ord' })
|
||||
vim.keymap.set('n', '<leader>sg', builtin.live_grep, { desc = '[S]earch by [G]rep' })
|
||||
vim.keymap.set('n', '<leader>sG', live_grep_git_root, { desc = '[S]earch by [G]rep on Git Root' })
|
||||
vim.keymap.set('n', '<leader>sd', require('telescope.builtin').diagnostics, { desc = '[S]earch [D]iagnostics' })
|
||||
vim.keymap.set('n', '<leader>sr', require('telescope.builtin').resume, { desc = '[S]earch [R]esume' })
|
||||
vim.keymap.set('n', '<leader>sd', builtin.diagnostics, { desc = '[S]earch [D]iagnostics' })
|
||||
vim.keymap.set('n', '<leader>sr', builtin.resume, { desc = '[S]earch [R]esume' })
|
||||
vim.keymap.set('n', '<leader>sk', builtin.keymaps, { desc = '[S]earch [K]eymaps' })
|
||||
vim.keymap.set('n', '<leader>st', "<Cmd>Telescope<CR>", { desc = '[S]earch [T]elescope Pickers' })
|
||||
pcall(require('telescope').load_extension, 'fzf')
|
||||
pcall(require('telescope').load_extension, 'media_files')
|
||||
require('telescope').setup {
|
||||
|
||||
24
completions/_tx
Executable file
24
completions/_tx
Executable file
@@ -0,0 +1,24 @@
|
||||
#compdef tx
|
||||
|
||||
names=($(tx ls -b))
|
||||
|
||||
if [[ -z $names ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
sessions=(
|
||||
)
|
||||
cmds=(
|
||||
'list:List all tmux configurations and sessions'
|
||||
'show:Show the tmux configuration file for a specific key'
|
||||
'edit:Edit the tmux configuration file'
|
||||
'remove:Remove a tmux workspace from the config file'
|
||||
'create:Create a new tmux session (temporary)'
|
||||
'attach:Attach to a tmux session'
|
||||
)
|
||||
for i in $names; do
|
||||
sessions+=("$i")
|
||||
done
|
||||
|
||||
_describe 'session' sessions
|
||||
# _describe 'cmds' cmds
|
||||
@@ -81,35 +81,46 @@ const showCmd = new MassargCommand<Opts>({
|
||||
})
|
||||
.help({ bindOption: true, bindCommand: true })
|
||||
|
||||
const listCmd = {
|
||||
const listCmd = new MassargCommand<Opts & { bare?: boolean }>({
|
||||
name: 'list',
|
||||
aliases: ['ls'],
|
||||
description: 'List all tmux configurations and sessions',
|
||||
run: async (opts: Opts) => {
|
||||
run: async (opts) => {
|
||||
const configs = await getTmuxConfigFileInfo()
|
||||
const rawConfig = await getTmuxConfig()
|
||||
const config = Object.fromEntries(
|
||||
Object.entries(rawConfig).map(([key, item]) => [key, parseConfig(item)]),
|
||||
)
|
||||
const sessions = await getCommandOutput(opts, 'tmux ls')
|
||||
const keys = Object.keys(config).sort((a, b) => a.toLowerCase().localeCompare(b.toLowerCase()))
|
||||
if (opts.bare) {
|
||||
console.log(keys.join('\n'))
|
||||
return
|
||||
}
|
||||
const sessions = await getCommandOutput(opts, 'tmux ls')
|
||||
console.log('tmux sessions:\n')
|
||||
console.log(indent(sessions.output))
|
||||
console.log('tmux config files:\n')
|
||||
console.log(
|
||||
' - ' +
|
||||
Object.entries(configs)
|
||||
.map(([key, config]) =>
|
||||
config && key !== 'merged' ? key + ': ' + config.filepath : undefined,
|
||||
)
|
||||
.filter(Boolean)
|
||||
.join('\n - ') +
|
||||
'\n',
|
||||
Object.entries(configs)
|
||||
.map(([key, config]) =>
|
||||
config && key !== 'merged' ? key + ': ' + config.filepath : undefined,
|
||||
)
|
||||
.filter(Boolean)
|
||||
.join('\n - ') +
|
||||
'\n',
|
||||
)
|
||||
console.log('tmux configurations:\n')
|
||||
console.log(' - ' + keys.join('\n - '))
|
||||
},
|
||||
}
|
||||
})
|
||||
.flag({
|
||||
name: 'bare',
|
||||
aliases: ['b'],
|
||||
description:
|
||||
'Show only the tmux session names, without the config or formatting (useful for scripting)',
|
||||
})
|
||||
.help({ bindOption: true, bindCommand: true })
|
||||
|
||||
export type ConfigFileOpts = Opts & {
|
||||
local?: boolean
|
||||
|
||||
Reference in New Issue
Block a user