Merge branch 'dev' into logos

opam : more XDG_USER_DIR compliant
nvim:
       fix nvim-cmp config
       update lsp config
       format headers
       format module local name
       add commenting plugin
This commit is contained in:
David JULIEN 2021-10-12 20:22:47 +02:00
commit 89a86dca91
No known key found for this signature in database
GPG Key ID: 4B388E8BD9D47382
10 changed files with 117 additions and 36 deletions

View File

@ -17,3 +17,6 @@ require("plugin.cmp") -- ./lua/plugin/cmp.lua
-- treesitter -- treesitter
require("plugin.treesitter") -- ./lua/plugin/treesitter.lua require("plugin.treesitter") -- ./lua/plugin/treesitter.lua
-- commenting, done right
require("plugin.comment") -- ./lua/plugin/comment.lua

View File

@ -3,11 +3,18 @@
-- License : GPLv3 -- License : GPLv3
-- Description : clangd config file for lsp -- Description : clangd config file for lsp
-- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers..
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities)
require("lspconfig").clangd.setup { require("lspconfig").clangd.setup {
cmd = { "clangd", cmd = { "clangd",
"--background-index", "--background-index",
"--suggest-missing-includes", "--suggest-missing-includes",
"--clang-tidy", "--clang-tidy",
"--header-insertion=iwyu" "--header-insertion=iwyu"
} },
-- The following example advertise capabilities to `clangd`.
capabilities = capabilities,
} }

View File

@ -3,7 +3,7 @@
-- License : GPLv3 -- License : GPLv3
-- Description : neovim lsp config file -- Description : neovim lsp config file
local lsp = {} local M = {}
vim.fn.sign_define( vim.fn.sign_define(
"DiagnosticSignError", "DiagnosticSignError",
@ -38,39 +38,43 @@ vim.fn.sign_define(
} }
) )
-- symbols for autocomplete M.icons = {
vim.lsp.protocol.CompletionItemKind = { Class = "",
"", -- Text Color = "",
"", -- Method Constant = " µ ",
"", -- Function Constructor = "",
"", -- Constructor Enum = "",
"", -- Field EnumMember = "",
"", -- Variable Event = "",
"", -- Class Field = "",
"", -- Interface File = "",
"", -- Module Folder = "",
"", -- Property Function = "",
"", -- Unit Keyword = "",
"", -- Value Interface = "",
"", -- Enum Method = "",
"", -- Keyword Module = "",
"", -- Snippet Operator = "",
"", -- Color Property = "",
"", -- File Reference = "",
"", -- Reference Snippet = "",
"", -- Folder Struct = "",
"", -- EnumMember Text = "",
"", -- Constant TypeParameter = "",
"", -- Struct Unit = "",
"", -- Event Value = "",
"", -- Operator Variable = "",
"", -- TypeParameter
} }
function lsp.setup() function M.setup()
local kinds = vim.lsp.protocol.CompletionItemKind
for i, kind in ipairs(kinds) do
kinds[i] = M.icons[kind] or kind
end
local ft = vim.bo.filetype local ft = vim.bo.filetype
if ft == "cpp" then ft = "c" end if ft == "cpp" then ft = "c" end
require("lsp." .. ft) -- ./<ft>.lua require("lsp." .. ft) -- ./<ft>.lua
end end
return lsp return M

View File

@ -21,7 +21,7 @@ require'lspconfig'.sumneko_lua.setup {
}, },
diagnostics = { diagnostics = {
-- Get the language server to recognize the `vim` global -- Get the language server to recognize the `vim` global
globals = {'vim'}, globals = {"vim", "use", "globals", "utils"},
}, },
workspace = { workspace = {
-- Make the server aware of Neovim runtime files -- Make the server aware of Neovim runtime files

View File

@ -58,8 +58,8 @@ cmp.setup {
select = true, select = true,
}), }),
["<Tab>"] = cmp.mapping(function(fallback) ["<Tab>"] = cmp.mapping(function(fallback)
if vim.fn.pumvisible() == 1 then if cmp.visible() then
vim.fn.feedkeys(t "<C-n>", "n") cmp.select_next_item()
elseif luasnip.expand_or_jumpable() then elseif luasnip.expand_or_jumpable() then
luasnip.expand_or_jump() luasnip.expand_or_jump()
elseif check_backspace() then elseif check_backspace() then
@ -69,8 +69,8 @@ cmp.setup {
end end
end, { "i", "s" }), end, { "i", "s" }),
["<S-Tab>"] = cmp.mapping(function(fallback) ["<S-Tab>"] = cmp.mapping(function(fallback)
if vim.fn.pumvisible() == 1 then if cmp.visible() then
vim.fn.feedkeys(t "<C-p>", "n") cmp.select_prev_item()
elseif luasnip.jumpable(-1) then elseif luasnip.jumpable(-1) then
luasnip.jump(-1) luasnip.jump(-1)
else else

View File

@ -0,0 +1,54 @@
-- Author : swytch
-- Created : Tuesday Oct. 12, 2021 19:07:36 CET
-- License : GPLv3
-- Description : Comment plugin config file
require("Comment").setup {
---Add a space b/w comment and the line
---@type boolean
padding = true,
---Lines to be ignored while comment/uncomment.
---Could be a regex string or a function that returns a regex string.
---Example: Use '^$' to ignore empty lines
---@type string|function
ignore = nil,
---Whether to create basic (operator-pending) and extra mappings for NORMAL/VISUAL mode
---@type table
mappings = {
---operator-pending mapping
---Includes `gcc`, `gcb`, `gc[count]{motion}` and `gb[count]{motion}`
basic = true,
---extended mapping
---Includes `g>`, `g<`, `g>[count]{motion}` and `g<[count]{motion}`
extra = false,
},
---LHS of line and block comment toggle mapping in NORMAL/VISUAL mode
---@type table
toggler = {
---line-comment toggle
line = 'gcc',
---block-comment toggle
block = 'gbc',
},
---LHS of line and block comment operator-mode mapping in NORMAL/VISUAL mode
---@type table
opleader = {
---line-comment opfunc mapping
line = 'gc',
---block-comment opfunc mapping
block = 'gb',
},
---Pre-hook, called before commenting the line
---@type function|nil
pre_hook = nil,
---Post-hook, called after commenting is done
---@type function|nil
post_hook = nil,
}

View File

@ -1,3 +1,8 @@
-- Author : swytch
-- Created : Monday May 24, 2021 20:02:19 CET
-- License : GPLv3
-- Description : treesitter config file
require("nvim-treesitter.configs").setup { require("nvim-treesitter.configs").setup {
ensure_installed = { "c", "lua", "python", "bash" }, ensure_installed = { "c", "lua", "python", "bash" },
ignore_install = { "javascript" }, ignore_install = { "javascript" },

View File

@ -69,6 +69,9 @@ return require("packer").startup(function()
} }
} }
-- commenting, simplified
use "numToStr/Comment.nvim"
-- display colors directly in editor -- display colors directly in editor
use { use {
"norcalli/nvim-colorizer.lua", "norcalli/nvim-colorizer.lua",

View File

@ -19,6 +19,8 @@ export ANDROID_PREFS_ROOT="$XDG_CONFIG_HOME/android"
export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0" export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0"
export TEXMFHOME="$XDG_DATA_HOME/texmf" export TEXMFHOME="$XDG_DATA_HOME/texmf"
export CARGO_HOME="$XDG_DATA_HOME/cargo" export CARGO_HOME="$XDG_DATA_HOME/cargo"
export OPAMROOT="$XDG_DATA_HOME/opam"
export COQBIN="$OPAMROOT/default/bin"
## default programs ## default programs
export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" export SUDO_ASKPASS="$HOME/.local/bin/dmenupass"

View File

@ -78,3 +78,6 @@ typeset -A ZSH_HIGHLIGHT_STYLES
ZSH_HIGHLIGHT_STYLES[alias]='fg=green,bold' ZSH_HIGHLIGHT_STYLES[alias]='fg=green,bold'
ZSH_HIGHLIGHT_STYLES[path]='fg=magenta,bold' ZSH_HIGHLIGHT_STYLES[path]='fg=magenta,bold'
ZSH_HIGHLIGHT_STYLES[unknown-token]='bg=red,fg=white,bold' ZSH_HIGHLIGHT_STYLES[unknown-token]='bg=red,fg=white,bold'
# opam configuration
test -r "$OPAMROOT/opam-init/init.zsh" && . "$OPAMROOT/opam-init/init.zsh" > /dev/null 2> /dev/null || true