diff --git a/home.nix b/home.nix index 3b11eab..3f6e609 100644 --- a/home.nix +++ b/home.nix @@ -78,7 +78,7 @@ sqlite stylua stack - # sumneko-lua-language-server + sumneko-lua-language-server tealdeer tig tokei @@ -270,19 +270,14 @@ gforksync="git fetch upstream && git merge upstream/master && git push origin master"; grep="grep --color=auto"; new-sbt="sbt new scala/scala-seed.g8"; - nixre="home-manager switch"; - nixedit="home-manager edit"; + nixre="nix build && sudo ./result/activate"; nixinfo="nix-shell -p nix-info --run \"nix-info -m\""; nixgc="nix-collect-garbage -d"; nixq="nix-env -qa"; - nixupdate="nix-channel --update"; - nixupgrade="nix upgrade-nix"; - nixup="nix-env -u"; + nixupdate="sudo nix-channel --update"; nixversion="nix eval nixpkgs.lib.version"; - nixdaemon="sudo launchctl load /Library/LaunchDaemons/org.nixos.nix-daemon.plist && launchctl start org.nixos.nix-daemon"; rmxcodederived="rm -fr ~/Library/Developer/Xcode/DerivedData"; v="nvim"; - tabninecfg="vc /Users/salar/Library/Preferences/TabNine/TabNine.toml"; sshfre1="ssh salar@fre1.softinio.net"; sshfre2="ssh -p 2022 salar@fre2.softinio.net"; }; diff --git a/programs/neovim/init.lua b/programs/neovim/init.lua index 744d577..5d77265 100644 --- a/programs/neovim/init.lua +++ b/programs/neovim/init.lua @@ -7,9 +7,9 @@ local function load_plugins() require('packer').startup(function() use 'wbthomason/packer.nvim' -- Package manager use 'neovim/nvim-lspconfig' -- Collection of configurations for built-in LSP client - -- use 'nvim-treesitter/nvim-treesitter' - -- use 'nvim-treesitter/nvim-treesitter-textobjects' - -- use 'nvim-treesitter/playground' + use { 'nvim-treesitter/nvim-treesitter', run = ':TSUpdate' } + use 'nvim-treesitter/nvim-treesitter-textobjects' + use 'nvim-treesitter/playground' use 'folke/which-key.nvim' use 'folke/lua-dev.nvim' use 'folke/tokyonight.nvim' -- Theme @@ -129,83 +129,94 @@ _G.load_config = function() require('nvim-tree').setup() -- Treesitter - -- require('nvim-treesitter.configs').setup { - -- query_linter = { - -- enable = true, - -- use_virtual_text = true, - -- lint_events = { 'BufWrite', 'CursorHold' }, - -- }, - -- ensure_installed = 'maintained', - -- highlight = { enable = true }, - -- incremental_selection = { - -- enable = true, - -- keymaps = { - -- init_selection = 'gnn', - -- node_incremental = 'grn', - -- scope_incremental = 'grc', - -- node_decremental = 'grm', - -- }, - -- }, - -- indent = { - -- enable = true, - -- }, - -- textobjects = { - -- select = { - -- enable = true, - -- lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim - -- keymaps = { - -- -- You can use the capture groups defined in textobjects.scm - -- ['af'] = '@function.outer', - -- ['if'] = '@function.inner', - -- ['ac'] = '@class.outer', - -- ['ic'] = '@class.inner', - -- }, - -- }, - -- move = { - -- enable = true, - -- set_jumps = true, -- whether to set jumps in the jumplist - -- goto_next_start = { - -- [']m'] = '@function.outer', - -- [']]'] = '@class.outer', - -- }, - -- goto_next_end = { - -- [']M'] = '@function.outer', - -- [']['] = '@class.outer', - -- }, - -- goto_previous_start = { - -- ['[m'] = '@function.outer', - -- ['[['] = '@class.outer', - -- }, - -- goto_previous_end = { - -- ['[M'] = '@function.outer', - -- ['[]'] = '@class.outer', - -- }, - -- }, - -- }, - -- playground = { - -- enable = true, - -- disable = {}, - -- updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code - -- persist_queries = false, -- Whether the query persists across vim sessions - -- keybindings = { - -- toggle_query_editor = 'o', - -- toggle_hl_groups = 'i', - -- toggle_injected_languages = 't', - -- toggle_anonymous_nodes = 'a', - -- toggle_language_display = 'I', - -- focus_language = 'f', - -- unfocus_language = 'F', - -- update = 'R', - -- goto_node = '', - -- show_help = '?', - -- }, - -- }, - -- rainbow = { - -- enable = true, - -- extended_mode = true, - -- max_file_lines = 1000, - -- }, - -- } + require('nvim-treesitter.configs').setup { + query_linter = { + enable = true, + use_virtual_text = true, + lint_events = { 'BufWrite', 'CursorHold' }, + }, + -- ensure_installed = 'maintained', + highlight = { enable = true }, + incremental_selection = { + enable = true, + keymaps = { + init_selection = 'gnn', + node_incremental = 'grn', + scope_incremental = 'grc', + node_decremental = 'grm', + }, + }, + indent = { + enable = true, + }, + textobjects = { + select = { + enable = true, + lookahead = true, -- Automatically jump forward to textobj, similar to targets.vim + keymaps = { + -- You can use the capture groups defined in textobjects.scm + ['af'] = '@function.outer', + ['if'] = '@function.inner', + ['ac'] = '@class.outer', + ['ic'] = '@class.inner', + }, + }, + move = { + enable = true, + set_jumps = true, -- whether to set jumps in the jumplist + goto_next_start = { + [']m'] = '@function.outer', + [']]'] = '@class.outer', + }, + goto_next_end = { + [']M'] = '@function.outer', + [']['] = '@class.outer', + }, + goto_previous_start = { + ['[m'] = '@function.outer', + ['[['] = '@class.outer', + }, + goto_previous_end = { + ['[M'] = '@function.outer', + ['[]'] = '@class.outer', + }, + }, + }, + playground = { + enable = true, + disable = {}, + updatetime = 25, -- Debounced time for highlighting nodes in the playground from source code + persist_queries = false, -- Whether the query persists across vim sessions + keybindings = { + toggle_query_editor = 'o', + toggle_hl_groups = 'i', + toggle_injected_languages = 't', + toggle_anonymous_nodes = 'a', + toggle_language_display = 'I', + focus_language = 'f', + unfocus_language = 'F', + update = 'R', + goto_node = '', + show_help = '?', + }, + }, + rainbow = { + enable = true, + extended_mode = true, + max_file_lines = 1000, + }, + } + -- vim.opt.foldmethod = 'expr' + -- vim.opt.foldexpr = 'nvim_treesitter#foldexpr()' + ---WORKAROUND + vim.api.nvim_create_autocmd({'BufEnter','BufAdd','BufNew','BufNewFile','BufWinEnter'}, { + group = vim.api.nvim_create_augroup('TS_FOLD_WORKAROUND', {}), + callback = function() + vim.opt.foldmethod = 'expr' + vim.opt.foldexpr = 'nvim_treesitter#foldexpr()' + end + }) + ---ENDWORKAROUND -- neogit require('neogit').setup {