Compare commits
3 commits
master
...
6179a86a75
Author | SHA1 | Date | |
---|---|---|---|
6179a86a75 | |||
4ca63a5884 | |||
052b4513c2 |
20 changed files with 260 additions and 453 deletions
25
README.md
25
README.md
|
@ -5,7 +5,7 @@ My vim config written in lua designed for *smol boi minimal vibes*
|
||||||
Most of the code is in separate modules. Each will later be its own true plugin.
|
Most of the code is in separate modules. Each will later be its own true plugin.
|
||||||
|
|
||||||
|
|
||||||
### Installation
|
### Install
|
||||||
|
|
||||||
Install the package manager `paq` to start:
|
Install the package manager `paq` to start:
|
||||||
|
|
||||||
|
@ -14,29 +14,6 @@ git clone --depth=1 https://github.com/savq/paq-nvim.git \
|
||||||
"${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/pack/paqs/start/paq-nvim
|
"${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/pack/paqs/start/paq-nvim
|
||||||
```
|
```
|
||||||
|
|
||||||
#### LSP servers
|
|
||||||
|
|
||||||
Scripts are supplied in `scripts/` for each server I use. Run these for the
|
|
||||||
corresponding server that you would like to be installed.
|
|
||||||
|
|
||||||
The process in no way is automated or "purely in lua or vimscript", but it more
|
|
||||||
just holds your hand a bit. There may be plans in the future to automate this
|
|
||||||
with our own package manager. But I might start writing my own editor by that
|
|
||||||
point. So we'll see.
|
|
||||||
|
|
||||||
If you'd like to add a new LSP server, feel free. Just make sure to ask the
|
|
||||||
user if all dependencies are installed. Currently, this is achieved using
|
|
||||||
`query_dep` in `query_dependency.sh`. All it does is ask the user if the
|
|
||||||
dependency is installed and quits the install script if any dependency is not
|
|
||||||
installed. *(don't even remind me how hacky that is)*
|
|
||||||
|
|
||||||
However, a proper package management system would be more prefered. So never
|
|
||||||
feel like this pattern is in any way enforced. I can't be biased toward which
|
|
||||||
packages for which package managers will get maintained. And I can't be
|
|
||||||
bothered to write a package for every package manager that ever exists. If it
|
|
||||||
bothers you enough, change it to specifically work with your system. And maybe
|
|
||||||
contribute so others maybe follow suit.
|
|
||||||
|
|
||||||
|
|
||||||
### Configure
|
### Configure
|
||||||
|
|
||||||
|
|
8
init.lua
8
init.lua
|
@ -20,14 +20,10 @@ v = vim.v -- variables
|
||||||
env = vim.env -- environment variables
|
env = vim.env -- environment variables
|
||||||
|
|
||||||
local modules = {
|
local modules = {
|
||||||
'ui',
|
|
||||||
'general',
|
'general',
|
||||||
'keymap',
|
'keymap',
|
||||||
'plugins',
|
'ui',
|
||||||
'native-lsp',
|
'native-lsp'
|
||||||
'indent-blankline',
|
|
||||||
'gitsigns-nvim',
|
|
||||||
'lightbulb'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
local async
|
local async
|
||||||
|
|
|
@ -1,65 +0,0 @@
|
||||||
require('gitsigns').setup {
|
|
||||||
signs = {
|
|
||||||
add = {hl = 'GitSignsAdd' , text = '│', numhl='GitSignsAddNr' , linehl='GitSignsAddLn'},
|
|
||||||
change = {hl = 'GitSignsChange', text = '│', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
|
|
||||||
delete = {hl = 'GitSignsDelete', text = '_', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
|
|
||||||
topdelete = {hl = 'GitSignsDelete', text = '‾', numhl='GitSignsDeleteNr', linehl='GitSignsDeleteLn'},
|
|
||||||
changedelete = {hl = 'GitSignsChange', text = '~', numhl='GitSignsChangeNr', linehl='GitSignsChangeLn'},
|
|
||||||
},
|
|
||||||
signcolumn = true, -- Toggle with `:Gitsigns toggle_signs`
|
|
||||||
numhl = false, -- Toggle with `:Gitsigns toggle_numhl`
|
|
||||||
linehl = false, -- Toggle with `:Gitsigns toggle_linehl`
|
|
||||||
word_diff = false, -- Toggle with `:Gitsigns toggle_word_diff`
|
|
||||||
keymaps = {
|
|
||||||
-- Default keymap options
|
|
||||||
noremap = true,
|
|
||||||
|
|
||||||
['n ]c'] = { expr = true, "&diff ? ']c' : '<cmd>Gitsigns next_hunk<CR>'"},
|
|
||||||
['n [c'] = { expr = true, "&diff ? '[c' : '<cmd>Gitsigns prev_hunk<CR>'"},
|
|
||||||
|
|
||||||
['n <leader>hs'] = '<cmd>Gitsigns stage_hunk<CR>',
|
|
||||||
['v <leader>hs'] = ':Gitsigns stage_hunk<CR>',
|
|
||||||
['n <leader>hu'] = '<cmd>Gitsigns undo_stage_hunk<CR>',
|
|
||||||
['n <leader>hr'] = '<cmd>Gitsigns reset_hunk<CR>',
|
|
||||||
['v <leader>hr'] = ':Gitsigns reset_hunk<CR>',
|
|
||||||
['n <leader>hR'] = '<cmd>Gitsigns reset_buffer<CR>',
|
|
||||||
['n <leader>hp'] = '<cmd>Gitsigns preview_hunk<CR>',
|
|
||||||
['n <leader>hb'] = '<cmd>lua require"gitsigns".blame_line{full=true}<CR>',
|
|
||||||
['n <leader>hS'] = '<cmd>Gitsigns stage_buffer<CR>',
|
|
||||||
['n <leader>hU'] = '<cmd>Gitsigns reset_buffer_index<CR>',
|
|
||||||
|
|
||||||
-- Text objects
|
|
||||||
['o ih'] = ':<C-U>Gitsigns select_hunk<CR>',
|
|
||||||
['x ih'] = ':<C-U>Gitsigns select_hunk<CR>'
|
|
||||||
},
|
|
||||||
watch_gitdir = {
|
|
||||||
interval = 1000,
|
|
||||||
follow_files = true
|
|
||||||
},
|
|
||||||
attach_to_untracked = true,
|
|
||||||
current_line_blame = false, -- Toggle with `:Gitsigns toggle_current_line_blame`
|
|
||||||
current_line_blame_opts = {
|
|
||||||
virt_text = true,
|
|
||||||
virt_text_pos = 'eol', -- 'eol' | 'overlay' | 'right_align'
|
|
||||||
delay = 1000,
|
|
||||||
ignore_whitespace = false,
|
|
||||||
},
|
|
||||||
current_line_blame_formatter_opts = {
|
|
||||||
relative_time = false
|
|
||||||
},
|
|
||||||
sign_priority = 6,
|
|
||||||
update_debounce = 100,
|
|
||||||
status_formatter = nil, -- Use default
|
|
||||||
max_file_length = 40000,
|
|
||||||
preview_config = {
|
|
||||||
-- Options passed to nvim_open_win
|
|
||||||
border = 'single',
|
|
||||||
style = 'minimal',
|
|
||||||
relative = 'cursor',
|
|
||||||
row = 0,
|
|
||||||
col = 1
|
|
||||||
},
|
|
||||||
yadm = {
|
|
||||||
enable = false
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,5 +0,0 @@
|
||||||
require("indent_blankline").setup {
|
|
||||||
-- for example, context is off by default, use this to turn it on
|
|
||||||
show_current_context = true,
|
|
||||||
show_current_context_start = true,
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
require('nvim-lightbulb').update_lightbulb()
|
|
|
@ -19,23 +19,163 @@
|
||||||
-- v = vim.v -- variables
|
-- v = vim.v -- variables
|
||||||
-- env = vim.env -- environment variables
|
-- env = vim.env -- environment variables
|
||||||
|
|
||||||
require("native-lsp/nvim-lsp-installer")
|
-- dependent on https://github.com/neovim/nvim-lspconfig
|
||||||
|
local lspconfig = require 'lspconfig'
|
||||||
|
|
||||||
local lspconfig = require('lspconfig')
|
function lsp_init()
|
||||||
|
-- https://github.com/neovim/nvim-lspconfig/blob/master/CONFIG.md
|
||||||
local on_attach = function(_, bufnr)
|
local lsp_filetype = {
|
||||||
vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
|
['ada'] = {'als'},
|
||||||
require('completion').on_attach()
|
['aspnetcorerazor'] = {'tailwindcss'},
|
||||||
end
|
['astro'] = {'tailwindcss'},
|
||||||
|
['astro-markdown'] = {'tailwindcss'},
|
||||||
local servers = {'zls'}
|
['beancount'] = {'beancount'},
|
||||||
for _, lsp in ipairs(servers) do
|
['bib'] = {'texlab'},
|
||||||
lspconfig[lsp].setup {
|
['bicep'] = {'bicep'},
|
||||||
on_attach = on_attach,
|
['blade'] = {'tailwindcss'},
|
||||||
|
['c'] = {'ccls','clangd','sourcekit'},
|
||||||
|
['clojure'] = {'clojure_lsp'},
|
||||||
|
['cmake'] = {'cmake'},
|
||||||
|
-- = {'config'},
|
||||||
|
['cpp'] = {'ccls','clangd','sourcekit'},
|
||||||
|
['crystal'] = {'crystalline','scry'},
|
||||||
|
['css'] = {'cssls','stylelint_lsp','tailwindcss'},
|
||||||
|
['d'] = {'serve_d'},
|
||||||
|
['dart'] = {'dartls'},
|
||||||
|
['dhall'] = {'dhall_lsp_server'},
|
||||||
|
['django-html'] = {'tailwindcss'},
|
||||||
|
['Dockerfile'] = {'dockerls'},
|
||||||
|
['dockerfile'] = {'dockerls'},
|
||||||
|
['dot'] = {'dotls'},
|
||||||
|
-- = {'diagnostics'},
|
||||||
|
['edge'] = {'tailwindcss'},
|
||||||
|
['edn'] = {'clojure_lsp'},
|
||||||
|
['eelixir'] = {'elixirls','tailwindcss'},
|
||||||
|
-- = {'efm'},
|
||||||
|
['elixir'] = {'elixirls'},
|
||||||
|
['elm'] = {'elmls'},
|
||||||
|
['ejs'] = {'tailwindcss'},
|
||||||
|
['erb'] = {'tailwindcss'},
|
||||||
|
['erlang'] = {'erlangls'},
|
||||||
|
['eruby'] = {'tailwindcss'},
|
||||||
|
['fortran'] = {'fortls'},
|
||||||
|
['fsharp'] = {'fsautocomplete'},
|
||||||
|
['gd'] = {'gdscript'},
|
||||||
|
['gdscript'] = {'gdscript'},
|
||||||
|
['gdscript3'] = {'gdscript'},
|
||||||
|
['genie'] = {'vala_ls'},
|
||||||
|
['go'] = {'gopls'},
|
||||||
|
['gohtml'] = {'tailwindcss'},
|
||||||
|
['gomod'] = {'gopls'},
|
||||||
|
['graphql'] = {'graphql'},
|
||||||
|
['groovy'] = {'groovyls'},
|
||||||
|
['haml'] = {'tailwindcss'},
|
||||||
|
['handlebars'] = {'ember','tailwindcss'},
|
||||||
|
['haskell'] = {'ghcide','hie','hls'},
|
||||||
|
['haxe'] = {'haxe_language_server'},
|
||||||
|
['hbs'] = {'tailwindcss'},
|
||||||
|
-- = {'health'},
|
||||||
|
['help'] = {},
|
||||||
|
['html'] = {'angular','html','tailwindcss'},
|
||||||
|
['html-eex'] = {'tailwindcss'},
|
||||||
|
['jade'] = {'tailwindcss'},
|
||||||
|
['java'] = {'java_language_server','jdtls'},
|
||||||
|
['javascript'] = {'denols','ember','flow','rome','stylelint_lsp','tsserver','tailwindcss'},
|
||||||
|
['javascriptreact'] = {'denols','flow','rome','stylelint_lsp','tsserver','tailwindcss'},
|
||||||
|
['javascript.jsx'] = {'denols','flow','tsserver'},
|
||||||
|
['json'] = {'jsonls','rome'},
|
||||||
|
['julia'] = {'julials'},
|
||||||
|
['kotlin'] = {'kotlin_language_server'},
|
||||||
|
['leaf'] = {'tailwindcss'},
|
||||||
|
['lean'] = {'leanls'},
|
||||||
|
['lean3'] = {'lean3ls'},
|
||||||
|
['less'] = {'cssls','stylelint_lsp','tailwindcss'},
|
||||||
|
['lhaskell'] = {'ghcide','hls'},
|
||||||
|
-- = {'lspinfo'},
|
||||||
|
['liquid'] = {'tailwindcss'},
|
||||||
|
['lua'] = {'sumneko_lua'},
|
||||||
|
['markdown'] = {'zeta_note','tailwindcss'},
|
||||||
|
['mdx'] = {'tailwindcss'},
|
||||||
|
['mint'] = {'mint'},
|
||||||
|
['mustache'] = {'tailwindcss'},
|
||||||
|
['mysql'] = {'sqlls','sqls'},
|
||||||
|
['nim'] = {'nimls'},
|
||||||
|
['nix'] = {'rnix'},
|
||||||
|
['njk'] = {'tailwindcss'},
|
||||||
|
['nunjucks'] = {'tailwindcss'},
|
||||||
|
['objc'] = {'ccls','clangd'},
|
||||||
|
['objcpp'] = {'ccls','clangd'},
|
||||||
|
['objective-c'] = {'sourcekit'},
|
||||||
|
['objective-cpp'] = {'sourcekit'},
|
||||||
|
['ocaml'] = {'ocamlls','ocamllsp'},
|
||||||
|
['ocaml.menhir'] = {'ocamllsp'},
|
||||||
|
['ocaml.interface'] = {'ocamllsp'},
|
||||||
|
['ocaml.ocamllex'] = {'ocamllsp'},
|
||||||
|
['perl'] = {'perlls','perlpls'},
|
||||||
|
['php'] = {'intelephense','phpactor','tailwindcss'},
|
||||||
|
['prisma'] = {'prismals'},
|
||||||
|
['ps1'] = {'powershell_es'},
|
||||||
|
['puppet'] = {'puppet'},
|
||||||
|
['purescript'] = {'purescriptls'},
|
||||||
|
['python'] = {'jedi_language_server','pylsp','pyright'},
|
||||||
|
['ql'] = {'codeqlls'},
|
||||||
|
['r'] = {'r_language_server'},
|
||||||
|
['racket'] = {'racket_langserver'},
|
||||||
|
['razor'] = {'tailwindcss'},
|
||||||
|
['reason'] = {'ocamlls','ocamllsp','tailwindcss'},
|
||||||
|
['rescript'] = {'rescript','tailwindcss'},
|
||||||
|
['rmd'] = {'r_language_server'},
|
||||||
|
['ruby'] = {'solargraph','sorbet'},
|
||||||
|
['rust'] = {'rls','rust_analyzer'},
|
||||||
|
['sass'] = {'tailwindcss'},
|
||||||
|
['scala'] = {'metals'},
|
||||||
|
['scheme'] = {'racket_langserver'},
|
||||||
|
['scss'] = {'cssls','stylelint_lsp','tailwindcss'},
|
||||||
|
['sh'] = {'bashls'},
|
||||||
|
['slim'] = {'tailwindcss'},
|
||||||
|
['stylus'] = {'tailwindcss'},
|
||||||
|
['sql'] = {'sqlls','sqls'},
|
||||||
|
['sugarss'] = {'stylelint_lsp','tailwindcss'},
|
||||||
|
['svelte'] = {'svelte','tailwindcss'},
|
||||||
|
['swift'] = {'source'},
|
||||||
|
['systemverilog'] = {'svls'},
|
||||||
|
['tex'] = {'texlab'},
|
||||||
|
['terraform'] = {'tflint','teraformls'},
|
||||||
|
['twig'] = {'tailwindcss'},
|
||||||
|
['typescript'] = {'angular', 'denols','ember','rome','stylelint_lsp','tsserver','tailwindcss'},
|
||||||
|
['typescriptreact'] = {'angular', 'denols','rome','stylelint_lsp','tsserver','tailwindcss'},
|
||||||
|
['typescript.tsx'] = {'angular', 'denols','rome','tsserver'},
|
||||||
|
-- = {'util'},
|
||||||
|
['vala'] = {'vala_ls'},
|
||||||
|
['verilog'] = {'svls'},
|
||||||
|
['vim'] = {'vimls'},
|
||||||
|
['vlang'] = {'vls'},
|
||||||
|
['vue'] = {'stylelint_lsp','vuels','tailwindcss'},
|
||||||
|
['wxss'] = {'stylelint_lsp'},
|
||||||
|
['yaml'] = {'ansiblels','yamlls'},
|
||||||
|
['zig'] = {'zls'},
|
||||||
|
['zir'] = {'zls'}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _,server in pairs(lsp_filetype[bo.filetype]) do
|
||||||
|
lspconfig[server].setup {}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
opt.completeopt = "menu,menuone,noselect"
|
function lsp_format()
|
||||||
g.completion_enable_auto_popup = 1
|
local function format_file()
|
||||||
|
if bo.filetype == x then
|
||||||
|
vim.lsp.formatting_sync(nil, 100)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
require("native-lsp/nvim-cmp")
|
for _,file in pairs({'javascript', 'python'}) do
|
||||||
|
format_file(file)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
cmd('autocmd BufRead * lua lsp_init()')
|
||||||
|
cmd('autocmd BufWritePre * lua lsp_format()')
|
||||||
|
|
||||||
|
|
||||||
|
require 'nvim-compe.lua'
|
||||||
|
|
|
@ -1,154 +0,0 @@
|
||||||
local cmp = require("cmp")
|
|
||||||
local luasnip = require("luasnip")
|
|
||||||
|
|
||||||
if not luasnip then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
local lsp_symbols = {
|
|
||||||
Text = " (Text) ",
|
|
||||||
Method = " (Method)",
|
|
||||||
Function = " (Function)",
|
|
||||||
Constructor = " (Constructor)",
|
|
||||||
Field = " ﴲ (Field)",
|
|
||||||
Variable = " (Variable)",
|
|
||||||
Class = " (Class)",
|
|
||||||
Interface = " (Interface)",
|
|
||||||
Module = " (Module)",
|
|
||||||
Property = " 襁 (Property)",
|
|
||||||
Unit = " (Unit)",
|
|
||||||
Value = " (Value)",
|
|
||||||
Enum = " 練 (Enum)",
|
|
||||||
Keyword = " (Keyword)",
|
|
||||||
Snippet = " (Snippet)",
|
|
||||||
Color = " (Color)",
|
|
||||||
File = " (File)",
|
|
||||||
Reference = " (Reference)",
|
|
||||||
Folder = " (Folder)",
|
|
||||||
EnumMember = " (EnumMember)",
|
|
||||||
Constant = " (Constant)",
|
|
||||||
Struct = " (Struct)",
|
|
||||||
Event = " (Event)",
|
|
||||||
Operator = " (Operator)",
|
|
||||||
TypeParameter = " (TypeParameter)"
|
|
||||||
}
|
|
||||||
|
|
||||||
local has_words_before = function()
|
|
||||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
|
||||||
return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil
|
|
||||||
end
|
|
||||||
|
|
||||||
cmp.setup({
|
|
||||||
snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
luasnip.lsp_expand(args.body)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
mapping = {
|
|
||||||
['<C-Space>'] = cmp.mapping(cmp.mapping.complete(), { 'i', 'c' }),
|
|
||||||
["<C-n>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_next_item()
|
|
||||||
elseif luasnip.expand_or_jumpable() then
|
|
||||||
luasnip.expand_or_jump()
|
|
||||||
elseif has_words_before() then
|
|
||||||
cmp.complete()
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
["<C-e>"] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_prev_item()
|
|
||||||
elseif luasnip.jumpable(-1) then
|
|
||||||
luasnip.jump(-1)
|
|
||||||
else
|
|
||||||
fallback()
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
['<C-CR>'] = cmp.mapping.confirm {
|
|
||||||
behavior = cmp.ConfirmBehavior.Replace,
|
|
||||||
select = true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
|
|
||||||
formatting = {
|
|
||||||
format = function(entry, item)
|
|
||||||
item.kind = lsp_symbols[item.kind] .. " " .. item.kind
|
|
||||||
-- set a name for each source
|
|
||||||
item.menu = ({
|
|
||||||
spell = "[Spell]",
|
|
||||||
buffer = "[Buffer]",
|
|
||||||
calc = "[Calc]",
|
|
||||||
emoji = "[Emoji]",
|
|
||||||
nvim_lsp = "[LSP]",
|
|
||||||
path = "[Path]",
|
|
||||||
look = "[Look]",
|
|
||||||
treesitter = "[treesitter]",
|
|
||||||
luasnip = "[LuaSnip]",
|
|
||||||
nvim_lua = "[Lua]",
|
|
||||||
latex_symbols = "[Latex]",
|
|
||||||
cmp_tabnine = "[Tab9]"
|
|
||||||
})[entry.source.name]
|
|
||||||
return item
|
|
||||||
end
|
|
||||||
},
|
|
||||||
|
|
||||||
sources = {
|
|
||||||
{ name = 'nvim_lsp' },
|
|
||||||
{ name = 'cmp_tabnine' },
|
|
||||||
{ name = 'luasnip' },
|
|
||||||
{ name = 'path' },
|
|
||||||
{ name = 'latex_symbols'},
|
|
||||||
{ name = 'treesitter' },
|
|
||||||
{ name = 'buffer' },
|
|
||||||
{
|
|
||||||
name = 'look',
|
|
||||||
keyword_length = 2,
|
|
||||||
option = {
|
|
||||||
convert_case = true,
|
|
||||||
loud = true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{ name = 'emoji' },
|
|
||||||
{ name = 'calc' }
|
|
||||||
},
|
|
||||||
|
|
||||||
cmp.setup.cmdline('-', {
|
|
||||||
sources = {
|
|
||||||
{ name = 'path' },
|
|
||||||
{ name = 'cmdline' },
|
|
||||||
{ name = 'nvim_lua' },
|
|
||||||
{ name = 'buffer' }
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
|
|
||||||
cmp.setup.cmdline('/', {
|
|
||||||
sources = {
|
|
||||||
{ name = 'buffer' }
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
|
|
||||||
cmp.setup.cmdline(':', {
|
|
||||||
sources = cmp.config.sources({
|
|
||||||
{ name = 'path' }
|
|
||||||
}, {
|
|
||||||
{ name = 'cmdline' }
|
|
||||||
})
|
|
||||||
}),
|
|
||||||
})
|
|
||||||
|
|
||||||
local tabnine = require('cmp_tabnine.config')
|
|
||||||
|
|
||||||
tabnine:setup({
|
|
||||||
max_lines = 1000;
|
|
||||||
max_num_results = 20;
|
|
||||||
sort = true;
|
|
||||||
run_on_every_keystroke = true;
|
|
||||||
snippet_placeholder = '..';
|
|
||||||
ignored_file_types = { -- default is not to ignore
|
|
||||||
-- uncomment to ignore in lua:
|
|
||||||
-- lua = true
|
|
||||||
};
|
|
||||||
})
|
|
|
@ -1,75 +0,0 @@
|
||||||
local lsp_installer = require("nvim-lsp-installer")
|
|
||||||
|
|
||||||
|
|
||||||
local lang_servers = {
|
|
||||||
"bashls",
|
|
||||||
"ccls",
|
|
||||||
"clangd",
|
|
||||||
"cmake",
|
|
||||||
"cssls",
|
|
||||||
"cssmodules_ls",
|
|
||||||
"diagnosticls",
|
|
||||||
"dockerls",
|
|
||||||
"dotls",
|
|
||||||
"efm",
|
|
||||||
--"eslint",
|
|
||||||
"emmet_ls",
|
|
||||||
--"grammarly",
|
|
||||||
"graphql",
|
|
||||||
"html",
|
|
||||||
--"hls",
|
|
||||||
"jsonls",
|
|
||||||
--"jdtls",
|
|
||||||
--"quick_lint_js",
|
|
||||||
"tsserver",
|
|
||||||
--"ltex",
|
|
||||||
"texlab",
|
|
||||||
"sumneko_lua",
|
|
||||||
"remark_ls",
|
|
||||||
--"zk",
|
|
||||||
"puppet",
|
|
||||||
--"jedi_language_server",
|
|
||||||
"pyright",
|
|
||||||
--"pylsp",
|
|
||||||
"sqlls",
|
|
||||||
--"sqls",
|
|
||||||
--"svelte",
|
|
||||||
"taplo",
|
|
||||||
--"tailwindcss",
|
|
||||||
--"tflint", -- going to use tsserver first
|
|
||||||
"lemminx",
|
|
||||||
"yamlls",
|
|
||||||
"zls",
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, name in pairs(lang_servers) do
|
|
||||||
local server_is_found, server = lsp_installer.get_server(name)
|
|
||||||
if server_is_found then
|
|
||||||
if not server:is_installed() then
|
|
||||||
print("Installing " .. name)
|
|
||||||
server:install()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
lsp_installer.on_server_ready(function(server)
|
|
||||||
local opts = {}
|
|
||||||
opts.on_attach = on_attach
|
|
||||||
opts.capabilities = require("cmp_nvim_lsp").update_capabilities(vim.lsp.protocol.make_client_capabilities())
|
|
||||||
|
|
||||||
server:setup(opts)
|
|
||||||
vim.cmd [[ do User LspAttachBuffers ]]
|
|
||||||
end)
|
|
||||||
|
|
||||||
|
|
||||||
lsp_installer.settings({
|
|
||||||
ui = {
|
|
||||||
icons = {
|
|
||||||
server_installed = "✓",
|
|
||||||
server_pending = "➜",
|
|
||||||
server_uninstalled = "✗"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
|
@ -1,58 +1,8 @@
|
||||||
require "paq" {
|
require "paq" {
|
||||||
-- let paq manage itself
|
"savq/paq-nvim"; -- Let Paq manage itself
|
||||||
"savq/paq-nvim";
|
|
||||||
|
|
||||||
-- lsp
|
|
||||||
"neovim/nvim-lspconfig";
|
"neovim/nvim-lspconfig";
|
||||||
{"williamboman/nvim-lsp-installer", branch="dont-prepare-root-dir"};
|
"hrsh7th/nvim-compe";
|
||||||
|
|
||||||
-- cmp
|
|
||||||
"hrsh7th/nvim-cmp";
|
|
||||||
"hrsh7th/cmp-nvim-lsp";
|
|
||||||
"hrsh7th/cmp-buffer";
|
|
||||||
"hrsh7th/cmp-path";
|
|
||||||
"hrsh7th/cmp-cmdline";
|
|
||||||
"hrsh7th/cmp-nvim-lua";
|
|
||||||
"hrsh7th/cmp-calc";
|
|
||||||
"hrsh7th/cmp-emoji";
|
|
||||||
"hrsh7th/cmp-latex-symbols";
|
|
||||||
"octaltree/cmp-look";
|
|
||||||
{"tzachar/cmp-tabnine", run="./install.sh"};
|
|
||||||
|
|
||||||
-- lua snips
|
|
||||||
"L3MON4D3/LuaSnip";
|
|
||||||
"saadparwaiz1/cmp_luasnip";
|
|
||||||
|
|
||||||
-- diagnostics
|
|
||||||
"folke/trouble.nvim";
|
|
||||||
"kyazdani42/nvim-web-devicons";
|
|
||||||
|
|
||||||
-- pandoc
|
|
||||||
"vim-pandoc/vim-pandoc";
|
|
||||||
|
|
||||||
-- zig ls
|
|
||||||
"zigtools/zls";
|
|
||||||
|
|
||||||
-- theme
|
|
||||||
"rakr/vim-one";
|
|
||||||
|
|
||||||
"mattn/emmet-vim";
|
|
||||||
--{"lervag/vimtex", opt=true};
|
--{"lervag/vimtex", opt=true};
|
||||||
|
|
||||||
-- tree sitter
|
|
||||||
"nvim-treesitter/nvim-treesitter";
|
|
||||||
"nvim-treesitter/nvim-treesitter-textobjects";
|
|
||||||
"ray-x/cmp-treesitter";
|
|
||||||
|
|
||||||
"lukas-reineke/indent-blankline.nvim";
|
|
||||||
|
|
||||||
"kosayoda/nvim-lightbulb";
|
|
||||||
|
|
||||||
"turbio/bracey.vim";
|
|
||||||
|
|
||||||
-- git symbols
|
|
||||||
"lewis6991/gitsigns.nvim";
|
|
||||||
"nvim-lua/plenary.nvim";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd 'PaqSync'
|
|
||||||
|
|
|
@ -1,26 +0,0 @@
|
||||||
cmd [[
|
|
||||||
TSInstall bash
|
|
||||||
TSInstall bibtex
|
|
||||||
TSInstall c
|
|
||||||
TSInstall cmake
|
|
||||||
TSInstall cpp
|
|
||||||
TSInstall css
|
|
||||||
TSInstall dockerfile
|
|
||||||
TSInstall dot
|
|
||||||
TSInstall graphql
|
|
||||||
TSInstall html
|
|
||||||
TSInstall http
|
|
||||||
TSInstall javascript
|
|
||||||
TSInstall latex
|
|
||||||
TSInstall llvm
|
|
||||||
TSInstall lua
|
|
||||||
TSInstall make
|
|
||||||
TSInstall python
|
|
||||||
TSInstall regex
|
|
||||||
TSInstall verilog
|
|
||||||
TSInstall vim
|
|
||||||
TSInstall yaml
|
|
||||||
TSInstall zig
|
|
||||||
TSUpdate
|
|
||||||
]]
|
|
||||||
|
|
|
@ -30,8 +30,8 @@ o.showmatch = true -- matching bracket
|
||||||
|
|
||||||
|
|
||||||
-- Completion Menu
|
-- Completion Menu
|
||||||
--o.wildmenu = true
|
o.wildmenu = true
|
||||||
--o.wildmode = 'list:longest,full'
|
o.wildmode = 'list:longest,full'
|
||||||
|
|
||||||
|
|
||||||
-- Character Representation
|
-- Character Representation
|
||||||
|
@ -104,9 +104,6 @@ autocmd BufEnter * highlight OverLength ctermbg=darkgrey guibg=#592929
|
||||||
autocmd BufEnter * match OverLength /\%71v.*/
|
autocmd BufEnter * match OverLength /\%71v.*/
|
||||||
]]) --rewrite in lua
|
]]) --rewrite in lua
|
||||||
|
|
||||||
-- Theme
|
|
||||||
o.background = "light"
|
|
||||||
cmd('colorscheme one')
|
|
||||||
|
|
||||||
--WIP
|
--WIP
|
||||||
-- Filetype: txt, md, tex
|
-- Filetype: txt, md, tex
|
||||||
|
|
|
@ -31,30 +31,27 @@ local function file_state()
|
||||||
return ""
|
return ""
|
||||||
end
|
end
|
||||||
|
|
||||||
--local function diagnostics()
|
local function diagnostics()
|
||||||
-- --local buffer_number = vim.fn.bufnr('%')
|
local buffer_number = vim.fn.bufnr('%')
|
||||||
-- local severity_levels = {
|
local severity_levels = {
|
||||||
-- -- level,prefix
|
-- level,prefix
|
||||||
-- errors = {'Error', 'E:'},
|
errors = {'Error', 'E:'},
|
||||||
-- warnings = {'Warning', 'W:'},
|
warnings = {'Warning', 'W:'},
|
||||||
-- info = {'Information', 'I:'},
|
info = {'Information', 'I:'},
|
||||||
-- hints = {'Hint', 'H:'}
|
hints = {'Hint', 'H:'}
|
||||||
-- }
|
}
|
||||||
-- local out = ''
|
local out = ''
|
||||||
-- for _,v in pairs(severity_levels) do
|
for _,v in pairs(severity_levels) do
|
||||||
-- local d = vim.diagnostic.get(
|
local d = vim.lsp.diagnostic.get_count(
|
||||||
-- 0,
|
buffer_number,
|
||||||
-- )
|
v[1] -- level
|
||||||
-- --local d = vim.lsp.diagnostic.get_count(
|
)
|
||||||
-- -- buffer_number,
|
if d > 0 then
|
||||||
-- -- v[1] -- level
|
out = out .. v[2] .. d .. ' '
|
||||||
-- --)
|
end
|
||||||
-- if d > 0 then
|
end
|
||||||
-- out = out .. v[2] .. d .. ' '
|
return out
|
||||||
-- end
|
end
|
||||||
-- end
|
|
||||||
-- return out
|
|
||||||
--end
|
|
||||||
|
|
||||||
local function highlight(group, color)
|
local function highlight(group, color)
|
||||||
cmd('highlight ' .. group .. ' cterm='..color .. ' gui='..color)
|
cmd('highlight ' .. group .. ' cterm='..color .. ' gui='..color)
|
||||||
|
@ -103,7 +100,7 @@ function status_bar()
|
||||||
return table.concat(sections({
|
return table.concat(sections({
|
||||||
-- Stage Left
|
-- Stage Left
|
||||||
{'%f', file_state()},
|
{'%f', file_state()},
|
||||||
--{diagnostics()},
|
{diagnostics()},
|
||||||
'%=',
|
'%=',
|
||||||
-- Stage Right
|
-- Stage Right
|
||||||
{
|
{
|
||||||
|
|
8
scripts/install_bashls_server.sh
Normal file
8
scripts/install_bashls_server.sh
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source scripts/query_dependencies.sh
|
||||||
|
query_dep 'npm'
|
||||||
|
|
||||||
|
if response == 'y' then
|
||||||
|
npm -i -g bash-language-server
|
||||||
|
fi
|
14
scripts/install_ccls_server.sh
Normal file
14
scripts/install_ccls_server.sh
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source scripts/query_dependencies.sh
|
||||||
|
query_dep 'CMake'
|
||||||
|
query_dep 'C++17'
|
||||||
|
query_dep '
|
||||||
|
|
||||||
|
if response == 'y' then
|
||||||
|
cd builds
|
||||||
|
git clone --depth=1 --recursive https://github.com/MaskRay/ccls
|
||||||
|
cd ccls
|
||||||
|
cmake -H. -BRelease -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/clang+llvm-xxx
|
||||||
|
cmake --build Release
|
||||||
|
fi
|
4
scripts/install_clangd_server.sh
Normal file
4
scripts/install_clangd_server.sh
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
printf 'Install from clang-tools or similar '
|
||||||
|
printf 'with your OS or from releases on LLVM site\n'
|
8
scripts/install_pylsp_server.sh
Normal file
8
scripts/install_pylsp_server.sh
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source scripts/query_dependencies.sh
|
||||||
|
query_dep 'pip'
|
||||||
|
|
||||||
|
if response == 'y' then
|
||||||
|
pip install python-lsp-server
|
||||||
|
fi
|
8
scripts/install_pyright_server.sh
Normal file
8
scripts/install_pyright_server.sh
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source scripts/query_dependencies.sh
|
||||||
|
query_dep 'npm'
|
||||||
|
|
||||||
|
if response == 'y' then
|
||||||
|
npm -i -g pyright
|
||||||
|
fi
|
17
scripts/install_sumneko_lua.sh
Normal file
17
scripts/install_sumneko_lua.sh
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source scripts/query_dependencies.sh
|
||||||
|
query_dep 'ninja'
|
||||||
|
query_dep 'C++17'
|
||||||
|
|
||||||
|
if $response == 'y' then
|
||||||
|
mkdir -p builds
|
||||||
|
cd builds
|
||||||
|
git clone https://github.com/sumneko/lua-language-server
|
||||||
|
cd lua-language-server
|
||||||
|
git submodule update --init --recursive
|
||||||
|
cd 3rd/luamake
|
||||||
|
compile/install.sh
|
||||||
|
cd ../..
|
||||||
|
./3rd/luamake/luamake rebuild
|
||||||
|
fi
|
10
scripts/install_zls_server.sh
Normal file
10
scripts/install_zls_server.sh
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
source scripts/query_dependencies.sh
|
||||||
|
query_dep "xz or xz-utils"
|
||||||
|
|
||||||
|
if response == 'y' then
|
||||||
|
mkdir -p builds/zls
|
||||||
|
cd builds/zls
|
||||||
|
curl -L https://github.com/zigtools/zls/releases/download/0.1.0/x86_64-linux.tar.xz | tar -xJ --strip-components=1 -C .
|
||||||
|
fi
|
7
scripts/query_dependency.sh
Normal file
7
scripts/query_dependency.sh
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
function query_dep(){
|
||||||
|
printf 'Did you install '
|
||||||
|
printf $1
|
||||||
|
printf '?\n (y/N)'
|
||||||
|
response='n'
|
||||||
|
read response
|
||||||
|
}
|
Loading…
Reference in a new issue