Final bits of polish for lsp stuff
This commit is contained in:
parent
cc355821ab
commit
95ccdf5597
@ -59,6 +59,7 @@
|
|||||||
packages.myVimPackage = with pkgs.vimPlugins; {
|
packages.myVimPackage = with pkgs.vimPlugins; {
|
||||||
start = [
|
start = [
|
||||||
nvim-tree-lua
|
nvim-tree-lua
|
||||||
|
nvim-web-devicons
|
||||||
nvim-lspconfig
|
nvim-lspconfig
|
||||||
packer-nvim
|
packer-nvim
|
||||||
nvim-cmp
|
nvim-cmp
|
||||||
@ -104,6 +105,7 @@
|
|||||||
};
|
};
|
||||||
environment.systemPackages = (with pkgs; [
|
environment.systemPackages = (with pkgs; [
|
||||||
nodejs
|
nodejs
|
||||||
|
nodePackages.typescript-language-server
|
||||||
tmux
|
tmux
|
||||||
gnumake
|
gnumake
|
||||||
# TODO find a version of the julia package that will install
|
# TODO find a version of the julia package that will install
|
||||||
|
@ -27,43 +27,35 @@ require("mason-lspconfig").setup()
|
|||||||
|
|
||||||
--https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
--https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md
|
||||||
|
|
||||||
|
local lsconfig = require("lspconfig")
|
||||||
-- Nix language server support
|
-- Nix language server support
|
||||||
require'lspconfig'.nil_ls.setup{}
|
lsconfig.nil_ls.setup{}
|
||||||
|
|
||||||
-- This needs a path to the omnisharp dll provided
|
-- This needs a path to the omnisharp dll provided
|
||||||
require'lspconfig'.omnisharp.setup {}
|
lsconfig.omnisharp.setup {}
|
||||||
|
|
||||||
-- Java language server support
|
-- Java language server support
|
||||||
require'lspconfig'.java_language_server.setup{}
|
lsconfig.java_language_server.setup{}
|
||||||
|
|
||||||
-- Typescript language server support
|
-- 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', {
|
vim.api.nvim_create_autocmd('LspAttach', {
|
||||||
callback = function(args)
|
callback = function(args)
|
||||||
vim.keymap.set('n', '<C-space>', vim.lsp.buf.hover, { buffer = args.buf })
|
vim.keymap.set('n', '<C-space>', vim.lsp.buf.hover, { buffer = args.buf })
|
||||||
vim.keymap.set("n", "<Leader>a", vim.lsp.buf.code_action, { buffer = args.buf })
|
vim.keymap.set({"n", "v"}, "<Leader>a", vim.lsp.buf.code_action, { buffer = args.buf })
|
||||||
vim.keymap.set("n", "<M-f>", vim.lsp.buf.references, { buffer = args.buf })
|
vim.keymap.set("n", "<M-f>", vim.lsp.buf.references, { buffer = args.buf })
|
||||||
--vim.keymap.set("n", "", vim.lsp.buf.format, { buffer = args.buf })
|
vim.keymap.set("n", "<Leader>f", vim.lsp.buf.format, { buffer = args.buf })
|
||||||
|
-- We use F2 to rename things
|
||||||
|
vim.keymap.set("n", "<F2>", vim.lsp.buf.rename, { buffer = args.buf })
|
||||||
--vim.keymap.set("n", "", vim.lsp.buf.implementation, { buffer = args.buf })
|
--vim.keymap.set("n", "", vim.lsp.buf.implementation, { buffer = args.buf })
|
||||||
end,
|
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", "<C-space>", rt.hover_actions.hover_actions, { buffer = bufnr })
|
|
||||||
-- Code action groups
|
|
||||||
vim.keymap.set("n", "<Leader>a", rt.code_action_group.code_action_group, { buffer = bufnr })
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
-- LSP Diagnostics Options Setup
|
-- LSP Diagnostics Options Setup
|
||||||
local sign = function(opts)
|
local sign = function(opts)
|
||||||
@ -191,21 +183,26 @@ vim.g.loaded_netrwPlugin = 1
|
|||||||
-- set termguicolors to enable highlight groups
|
-- set termguicolors to enable highlight groups
|
||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
|
|
||||||
-- OR setup with some options
|
-- Ensure nvim-web-deicons is loaded
|
||||||
require("nvim-tree").setup({
|
require'nvim-web-devicons'.setup{}
|
||||||
sort_by = "case_sensitive",
|
|
||||||
view = {
|
|
||||||
width = 30,
|
|
||||||
},
|
|
||||||
renderer = {
|
|
||||||
group_empty = true,
|
|
||||||
},
|
|
||||||
--filters = {
|
|
||||||
-- dotfiles = true,
|
|
||||||
--},
|
|
||||||
})
|
|
||||||
|
|
||||||
|
-- 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", "<C-p>", function()
|
vim.keymap.set("n", "<C-p>", function()
|
||||||
require("nvim-tree.api").tree.toggle()
|
require("nvim-tree.api").tree.toggle()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
require("nvim-tree.api").tree.toggle()
|
||||||
|
6
nix/darwin/flake.lock
generated
6
nix/darwin/flake.lock
generated
@ -34,12 +34,12 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1,
|
"lastModified": 1,
|
||||||
"narHash": "sha256-QSp0Et1cnKZWAtPqKhQnPJwRAeRSZg7j68QppyOghZA=",
|
"narHash": "sha256-SbQ+XfMrqzNICok/PcnjciXYRQPQYtfEuFTKGlKg0c0=",
|
||||||
"path": "/nix/store/mbfrl9xq2i2vfmw4qbxz8j36qbc5nkp8-source/nix/base-system",
|
"path": "/nix/store/9y1n15br996sqsh4s4q3j3n16217cnny-source/nix/base-system",
|
||||||
"type": "path"
|
"type": "path"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"path": "/nix/store/mbfrl9xq2i2vfmw4qbxz8j36qbc5nkp8-source/nix/base-system",
|
"path": "/nix/store/9y1n15br996sqsh4s4q3j3n16217cnny-source/nix/base-system",
|
||||||
"type": "path"
|
"type": "path"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user