diff --git a/nix/base-system/flake.nix b/nix/base-system/flake.nix index 429627b..193f31b 100644 --- a/nix/base-system/flake.nix +++ b/nix/base-system/flake.nix @@ -59,6 +59,7 @@ packages.myVimPackage = with pkgs.vimPlugins; { start = [ nvim-tree-lua + nvim-web-devicons nvim-lspconfig packer-nvim nvim-cmp @@ -104,6 +105,7 @@ }; environment.systemPackages = (with pkgs; [ nodejs + nodePackages.typescript-language-server tmux gnumake # TODO find a version of the julia package that will install diff --git a/nix/base-system/init.lua b/nix/base-system/init.lua index e631112..655268b 100644 --- a/nix/base-system/init.lua +++ b/nix/base-system/init.lua @@ -27,43 +27,35 @@ require("mason-lspconfig").setup() --https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md +local lsconfig = require("lspconfig") -- Nix language server support -require'lspconfig'.nil_ls.setup{} +lsconfig.nil_ls.setup{} -- This needs a path to the omnisharp dll provided -require'lspconfig'.omnisharp.setup {} +lsconfig.omnisharp.setup {} -- Java language server support -require'lspconfig'.java_language_server.setup{} +lsconfig.java_language_server.setup{} -- Typescript language server support -require'lspconfig'.tsserver.setup{} +lsconfig.tsserver.setup{} --- Global lsp configuration +-- Rust language server support +lsconfig.rust_analyzer.setup{} + +-- lsp configuration vim.api.nvim_create_autocmd('LspAttach', { callback = function(args) vim.keymap.set('n', '', vim.lsp.buf.hover, { buffer = args.buf }) - vim.keymap.set("n", "a", vim.lsp.buf.code_action, { buffer = args.buf }) + vim.keymap.set({"n", "v"}, "a", vim.lsp.buf.code_action, { buffer = args.buf }) vim.keymap.set("n", "", vim.lsp.buf.references, { buffer = args.buf }) - --vim.keymap.set("n", "", vim.lsp.buf.format, { buffer = args.buf }) + vim.keymap.set("n", "f", vim.lsp.buf.format, { buffer = args.buf }) + -- We use F2 to rename things + vim.keymap.set("n", "", vim.lsp.buf.rename, { buffer = args.buf }) --vim.keymap.set("n", "", vim.lsp.buf.implementation, { buffer = args.buf }) end, }) --- Rust language server support -local rt = require("rust-tools") - --- https://github.com/simrat39/rust-tools.nvim#configuration -rt.setup({ - server = { - on_attach = function(_, bufnr) - -- Hover actions - vim.keymap.set("n", "", rt.hover_actions.hover_actions, { buffer = bufnr }) - -- Code action groups - vim.keymap.set("n", "a", rt.code_action_group.code_action_group, { buffer = bufnr }) - end, - }, -}) -- LSP Diagnostics Options Setup local sign = function(opts) @@ -191,21 +183,26 @@ vim.g.loaded_netrwPlugin = 1 -- set termguicolors to enable highlight groups vim.opt.termguicolors = true --- OR setup with some options -require("nvim-tree").setup({ - sort_by = "case_sensitive", - view = { - width = 30, - }, - renderer = { - group_empty = true, - }, - --filters = { - -- dotfiles = true, - --}, -}) +-- Ensure nvim-web-deicons is loaded +require'nvim-web-devicons'.setup{} +-- setup nvim-tree +require("nvim-tree").setup{} +--({ +-- sort_by = "case_sensitive", +-- view = { +-- width = 30, +-- }, +-- renderer = { +-- group_empty = true, +-- }, +-- filters = { +-- dotfiles = false, +-- }, +--}) vim.keymap.set("n", "", function() require("nvim-tree.api").tree.toggle() end) + +require("nvim-tree.api").tree.toggle() diff --git a/nix/darwin/flake.lock b/nix/darwin/flake.lock index 45e2517..f0e5a79 100644 --- a/nix/darwin/flake.lock +++ b/nix/darwin/flake.lock @@ -34,12 +34,12 @@ }, "locked": { "lastModified": 1, - "narHash": "sha256-QSp0Et1cnKZWAtPqKhQnPJwRAeRSZg7j68QppyOghZA=", - "path": "/nix/store/mbfrl9xq2i2vfmw4qbxz8j36qbc5nkp8-source/nix/base-system", + "narHash": "sha256-SbQ+XfMrqzNICok/PcnjciXYRQPQYtfEuFTKGlKg0c0=", + "path": "/nix/store/9y1n15br996sqsh4s4q3j3n16217cnny-source/nix/base-system", "type": "path" }, "original": { - "path": "/nix/store/mbfrl9xq2i2vfmw4qbxz8j36qbc5nkp8-source/nix/base-system", + "path": "/nix/store/9y1n15br996sqsh4s4q3j3n16217cnny-source/nix/base-system", "type": "path" } },