76 lines
2.6 KiB
Lua
76 lines
2.6 KiB
Lua
require('buildcmd')
|
|
|
|
local tbuiltin = require('telescope.builtin')
|
|
vim.g.mapleader = ' ' --space
|
|
|
|
-- Mappings, mostly taken from nvim-lspconfig
|
|
local opts = { noremap=true, silent=true }
|
|
vim.keymap.set('n', '<leader>q', vim.diagnostic.open_float, opts)
|
|
vim.keymap.set('n', '<leader>e', '<cmd>Ex<CR>', opts)
|
|
vim.keymap.set('n', '<leader>ff', tbuiltin.find_files, opts)
|
|
vim.keymap.set('n', '<leader>fb', '<cmd>Telescope buffers<cr>', opts)
|
|
vim.keymap.set('n', '<leader>bb', save_all_and_build, opts)
|
|
vim.keymap.set('n', '<leader>br', save_all_and_buildnrun, opts)
|
|
-- TODO: get fancy and read the commentstring and user
|
|
vim.keymap.set('i', '<A-t>', '// TODO(twig): ', opts)
|
|
vim.keymap.set('i', '<A-y>', '// NOTE(twig): ', opts)
|
|
--vim.keymap.set('i', '<C-.>', '->', opts)
|
|
vim.api.nvim_set_keymap('i', '<A-.>', '->', opts)
|
|
-- This is horrendous on windows, can't use nvim for almost a minute!
|
|
vim.keymap.set('n', 'K', '')
|
|
vim.keymap.set('n', '<leader>fs', '<cmd>Telescope grep_string<cr>', opts)
|
|
vim.keymap.set('n', '<leader>ss', '<cmd>Telescope spell_suggest<cr>', opts)
|
|
vim.keymap.set('n', '<leader>t', '<cmd>Telescope<cr>', opts)
|
|
|
|
local on_attach = function(client, bufnr)
|
|
client.server_capabilities.semanticTokensProvider = nil
|
|
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
|
|
|
-- Mappings
|
|
local bufopts = { noremap=true, silent=true, buffer=bufnr }
|
|
-- Replace these with telescope equivalent
|
|
vim.keymap.set('n', '<leader>rb', vim.lsp.buf.declaration, bufopts)
|
|
vim.keymap.set('n', '<leader>rd', vim.lsp.buf.definition, bufopts)
|
|
vim.keymap.set('n', '<leader>rf', tbuiltin.lsp_references, bufopts)
|
|
vim.keymap.set('n', '<leader>rs', tbuiltin.lsp_document_symbols, bufopts)
|
|
vim.keymap.set('n', '<leader>rr', vim.lsp.buf.rename, bufopts)
|
|
--vim.keymap.set('i', '<A-.>', v:lua.vim.lsp.omnifunc, bufopts)
|
|
end
|
|
|
|
local lsp_flags = {
|
|
debounce_text_changes = 150, --wtf is this
|
|
}
|
|
local lspconfig = require('lspconfig');
|
|
lspconfig.zls.setup {
|
|
on_attach = on_attach,
|
|
flags = lsp_flags,
|
|
}
|
|
lspconfig.gopls.setup{
|
|
on_attach = on_attach,
|
|
flags = lsp_flags,
|
|
}
|
|
lspconfig.clangd.setup{
|
|
on_attach = on_attach,
|
|
flags = lsp_flags,
|
|
handlers = {
|
|
["textDocument/publishDiagnostics"] = function(err, result, ctx, config)
|
|
end
|
|
}
|
|
}
|
|
lspconfig.rust_analyzer.setup{
|
|
on_attach = on_attach,
|
|
}
|
|
lspconfig.ols.setup{
|
|
on_attach = on_attach,
|
|
}
|
|
--lspconfig.pylyzer.setup{}
|
|
lspconfig.pylsp.setup{
|
|
on_attach = on_attach,
|
|
flags = lsp_flags,
|
|
}
|
|
lspconfig.gdscript.setup{
|
|
on_attach = on_attach,
|
|
flags = lsp_flags,
|
|
}
|
|
|