Skip to content

Commit

Permalink
Merge pull request #39 from djensenius/tweak-lsp-stuff
Browse files Browse the repository at this point in the history
Tweak LSP config
djensenius authored Jan 4, 2024
2 parents 6da15c0 + cacc20f commit 3979298
Showing 4 changed files with 96 additions and 92 deletions.
3 changes: 3 additions & 0 deletions .luarc.json
Original file line number Diff line number Diff line change
@@ -34,5 +34,8 @@
"/Users/djensenius/.local/share/nvim/lazy/catppuccin/after",
"${3rd}/luassert/library",
"${3rd}/luv/library"
],
"diagnostics.globals": [
"vim"
]
}
7 changes: 2 additions & 5 deletions nvim/lua/plugins/none-ls.lua
Original file line number Diff line number Diff line change
@@ -14,11 +14,8 @@ return {
null_ls.setup({
debug = false,
sources = {
null_ls.builtins.formatting.prettierd.with({
env = {
string.format('PRETTIERD_DEFAULT_CONFIG=%s', vim.fn.expand("~/.config/prettierrc.json")),
},
}),
null_ls.builtins.formatting.stylua,
null_ls.builtins.formatting.eslint,
conditional(function(utils)
return utils.root_has_file("Gemfile")
and null_ls.builtins.formatting.rubocop.with({})
169 changes: 82 additions & 87 deletions nvim/lua/plugins/nvim-lspconfig.lua
Original file line number Diff line number Diff line change
@@ -1,104 +1,99 @@
return {
"neovim/nvim-lspconfig",
dependencies = { "nvim-tree/nvim-web-devicons", "folke/trouble.nvim", "hrsh7th/cmp-nvim-lsp" },
event = "VeryLazy",
"neovim/nvim-lspconfig",
dependencies = { "nvim-tree/nvim-web-devicons", "folke/trouble.nvim", "hrsh7th/cmp-nvim-lsp" },
event = "VeryLazy",

config = function()
require 'lspconfig'
config = function()
require("lspconfig")

-- Prepare completion
local on_attach = function(client, bufnr)
local function buf_set_keymap(...)
vim.api.nvim_buf_set_keymap(bufnr, ...)
end
-- Prepare completion
local on_attach = function(client)
-- Mappings.
vim.keymap.set("n", "<leader><space>D", vim.lsp.buf.declaration, { desc = "Go to declaration" })
vim.keymap.set("n", "<leader><space>f", vim.lsp.buf.definition, { desc = "Go to definition" })
vim.keymap.set("n", "<leader><space>h", vim.lsp.buf.hover, { desc = "Show hover" })
vim.keymap.set("n", "<leader><space>i", vim.lsp.buf.implementation, { desc = "Go to implementation" })
vim.keymap.set("n", "<leader><space>S", vim.lsp.buf.signature_help, { desc = "Show signature help" })
vim.keymap.set("n", "<leader><space>R", vim.lsp.buf.rename, { desc = "Rename" })
vim.keymap.set("n", "<leader><space>r", vim.lsp.buf.references, { desc = "Show references" })
vim.keymap.set("n", "<leader><space>d", vim.diagnostic.open_float, { desc = "Show diagnostics" })
vim.keymap.set("n", "<leader><space>i", vim.lsp.buf.code_action, { desc = "Show code actions" })
vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous diagnostic" })
vim.keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next diagnostic" })

-- Mappings.
local opts = {noremap = true, silent = true}
buf_set_keymap('n', '<leader><space>D', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)
buf_set_keymap('n', '<leader><space>f', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)
buf_set_keymap('n', '<leader><space>h', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)
buf_set_keymap('n', '<leader><space>i', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
buf_set_keymap('n', '<leader><space>S', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)
buf_set_keymap('n', '<leader><space>R', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)
buf_set_keymap('n', '<leader><space>r', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
buf_set_keymap('n', '<leader><space>d', '<cmd>lua vim.diagnostic.open_float()<CR>', opts)
buf_set_keymap('n', '<leader><space>i', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)
buf_set_keymap('n', '[d', '<cmd>lua vim.diagnostic.goto_prev()<CR>', opts)
buf_set_keymap('n', ']d', '<cmd>lua vim.diagnostic.goto_next()<CR>', opts)
-- Set some keybinds conditional on server capabilities
if client.server_capabilities.document_formatting then
vim.keymap.set("n", "<space>=", vim.lsp.buf.formatting, { desc = "Format" })
elseif client.server_capabilities.document_range_formatting then
vim.keymap.set("n", "<space>=", vim.lsp.buf.formatting, { desc = "Format" })
end
end

-- Set some keybinds conditional on server capabilities
if client.server_capabilities.document_formatting then
buf_set_keymap("n", "<space>=", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
elseif client.server_capabilities.document_range_formatting then
buf_set_keymap("n", "<space>=", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)
end
end
local util = require("lspconfig/util")
local capabilities = require("cmp_nvim_lsp").default_capabilities()
require("lspconfig")["tsserver"].setup({
on_attach = on_attach,
root_dir = util.root_pattern("tsconfig.json"),
capabilities = capabilities,
})

local util = require 'lspconfig/util'
local capabilities = require('cmp_nvim_lsp').default_capabilities()
require('lspconfig')['tsserver'].setup{
on_attach = on_attach,
root_dir = util.root_pattern("tsconfig.json"),
capabilities = capabilities,
}
require("lspconfig")["sorbet"].setup({
on_attach = on_attach,
capabilities = capabilities,
})

require('lspconfig')['sorbet'].setup{
on_attach = on_attach,
capabilities = capabilities,
}

--[[
--[[
require('lspconfig')['solargraph'].setup{
on_attach = on_attach,
flags = lsp_flags,
}
--]]

require('lspconfig')['eslint'].setup({
on_attach=on_attach,
root_dir = util.root_pattern("package.json"),
capabilities = capabilities,
})
require("lspconfig")["eslint"].setup({
on_attach = on_attach,
root_dir = util.root_pattern("package.json"),
capabilities = capabilities,
})

require('lspconfig')['lua_ls'].setup{
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = 'LuaJIT',
},
diagnostics = {
globals = {'vim'},
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = "Disable",
},
telemetry = {
enable = false,
},
},
},
on_attach = on_attach,
capabilities = capabilities,
}
require("lspconfig")["lua_ls"].setup({
settings = {
Lua = {
runtime = {
-- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim)
version = "LuaJIT",
},
diagnostics = {
globals = { "vim" },
},
workspace = {
-- Make the server aware of Neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = "Disable",
},
telemetry = {
enable = false,
},
},
},
on_attach = on_attach,
capabilities = capabilities,
})

local signs = { Error = "", Warn = "", Hint = "", Info = "" }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
vim.fn.sign_define(hl, { text = icon, texthl= hl, numhl = hl })
end
local signs = { Error = "", Warn = "", Hint = "", Info = "" }
for type, icon in pairs(signs) do
local hl = "DiagnosticSign" .. type
vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl })
end

require("trouble").setup({
signs = {
-- icons / text used for a diagnostic
error = "",
warning = "",
hint = "",
information = "",
other = ""
},
})
end,
require("trouble").setup({
signs = {
-- icons / text used for a diagnostic
error = "",
warning = "",
hint = "",
information = "",
other = "",
},
})
end,
}
9 changes: 9 additions & 0 deletions nvim/lua/plugins/telescope.lua
Original file line number Diff line number Diff line change
@@ -4,17 +4,26 @@ return {
dependencies = {
"nvim-lua/plenary.nvim",
"nvim-lua/popup.nvim",
"nvim-telescope/telescope-ui-select.nvim",
{
"nvim-telescope/telescope-fzf-native.nvim",
build = "cmake -S. -Bbuild -DCMAKE_BUILD_TYPE=Release && cmake --build build --config Release && cmake --install build --prefix build"
},
},
config = function()
require("telescope").setup({
extensions = {
["ui-select"] = {
require("telescope.themes").get_dropdown{}
}
}
})
vim.keymap.set('n', '<leader>ff', '<cmd>lua require("telescope.builtin").find_files()<cr>')
vim.keymap.set('n', '<leader>fg', '<cmd>lua require("telescope.builtin").live_grep()<cr>')
vim.keymap.set('n', '<leader>fb', '<cmd>lua require("telescope.builtin").buffers()<cr>')
vim.keymap.set('n', '<leader>fh', '<cmd>lua require("telescope.builtin").help_tags()<cr>')
vim.keymap.set('n', '<leader>fn', '<cmd>Telescope notify<cr>')
require('telescope').load_extension('fzf')
require('telescope').load_extension('ui-select')
end,
}

0 comments on commit 3979298

Please sign in to comment.