summaryrefslogtreecommitdiff
path: root/.config/nvim
diff options
context:
space:
mode:
authorCryxtalix <fgx8p9t@protonmail.com>2024-11-13 04:47:34 +0800
committerCryxtalix <fgx8p9t@protonmail.com>2024-11-13 04:47:34 +0800
commitc51520da989e5658d04c2dc7ca163f63d20b1a13 (patch)
tree909915ef75d9f436d5ebcd84e066c6244ab6a2a0 /.config/nvim
parentdc839e971ad6a724bc99bccc6dfaa11ee8a1eaa9 (diff)
Update
Diffstat (limited to '.config/nvim')
-rw-r--r--.config/nvim/init.lua12
-rw-r--r--.config/nvim/lazy-lock.json6
-rw-r--r--.config/nvim/lua/plugins/completions.lua53
-rw-r--r--.config/nvim/lua/plugins/lsp.lua48
-rw-r--r--.config/nvim/lua/plugins/none-ls.lua2
-rw-r--r--.config/nvim/lua/plugins/nvim-dap.lua2
-rw-r--r--.config/nvim/lua/plugins/theme.lua14
-rw-r--r--.config/nvim/lua/plugins/treesitter.lua1
8 files changed, 104 insertions, 34 deletions
diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua
index 20b144f..112ca25 100644
--- a/.config/nvim/init.lua
+++ b/.config/nvim/init.lua
@@ -15,6 +15,18 @@ vim.opt.wildmenu = true
vim.cmd("filetype plugin on")
vim.api.nvim_set_keymap('v', '<C-c>', '"+y', { noremap = true, silent = true })
+-- Neovim builtin autocompletion
+--vim.api.nvim_create_autocmd({ "VimEnter" }, {
+-- callback = function()
+-- local clients = vim.lsp.get_clients()
+-- for _, client in ipairs(clients) do
+-- local id = client.id
+-- vim.lsp.completion.enable(true, id, 1, { autotrigger = true })
+-- return
+-- end
+-- end
+--})
+
-- Install Lazy.vim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json
index 282b316..c376235 100644
--- a/.config/nvim/lazy-lock.json
+++ b/.config/nvim/lazy-lock.json
@@ -1,7 +1,10 @@
{
+ "LuaSnip": { "branch": "master", "commit": "659c4479529a05cc9b05ef762639a09d366cc690" },
+ "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
+ "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
+ "friendly-snippets": { "branch": "main", "commit": "de8fce94985873666bd9712ea3e49ee17aadb1ed" },
"image.nvim": { "branch": "master", "commit": "88e9693e188b8464b1c426aebb4389fd9db2fcbf" },
"lazy.nvim": { "branch": "main", "commit": "1159bdccd8910a0fd0914b24d6c3d186689023d9" },
- "lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
"markdown-toc": { "branch": "main", "commit": "1454bf3b4bcb855f7df41c59dfae08cc824141a0" },
"mason-lspconfig.nvim": { "branch": "main", "commit": "25c11854aa25558ee6c03432edfa0df0217324be" },
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
@@ -9,6 +12,7 @@
"neo-tree.nvim": { "branch": "v3.x", "commit": "a77af2e764c5ed4038d27d1c463fa49cd4794e07" },
"none-ls.nvim": { "branch": "main", "commit": "6bdd9b3364e12ffb346ac224db3df37de0b1429b" },
"nui.nvim": { "branch": "main", "commit": "b58e2bfda5cea347c9d58b7f11cf3012c7b3953f" },
+ "nvim-cmp": { "branch": "main", "commit": "f17d9b4394027ff4442b298398dfcaab97e40c4f" },
"nvim-dap": { "branch": "master", "commit": "7ff6936010b7222fea2caea0f67ed77f1b7c60dd" },
"nvim-dap-ui": { "branch": "master", "commit": "ffa89839f97bad360e78428d5c740fdad9a0ff02" },
"nvim-dap-virtual-text": { "branch": "master", "commit": "52638640ae309cacdaff785fdbb854437bd1ee5c" },
diff --git a/.config/nvim/lua/plugins/completions.lua b/.config/nvim/lua/plugins/completions.lua
new file mode 100644
index 0000000..483fac7
--- /dev/null
+++ b/.config/nvim/lua/plugins/completions.lua
@@ -0,0 +1,53 @@
+-- Autocompletions
+-- https://github.com/hrsh7th/nvim-cmp
+-- https://github.com/L3MON4D3/LuaSnip
+-- https://github.com/saadparwaiz1/cmp_luasnip
+-- https://github.com/rafamadriz/friendly-snippets
+-- https://github.com/hrsh7th/cmp-nvim-lsp
+
+return {
+ {
+ "hrsh7th/cmp-nvim-lsp",
+ },
+ {
+ 'L3MON4D3/LuaSnip',
+ dependencies = {
+ 'saadparwaiz1/cmp_luasnip',
+ 'rafamadriz/friendly-snippets',
+ }
+ },
+ {
+ "hrsh7th/nvim-cmp",
+ config = function()
+ local cmp = require'cmp'
+ require("luasnip.loaders.from_vscode").lazy_load()
+
+ cmp.setup({
+ snippet = {
+ expand = function(args)
+ require('luasnip').lsp_expand(args.body)
+ end,
+ },
+ window = {
+ completion = cmp.config.window.bordered(),
+ documentation = cmp.config.window.bordered(),
+ },
+ mapping = cmp.mapping.preset.insert({
+ ['<C-b>'] = cmp.mapping.scroll_docs(-4),
+ ['<C-f>'] = cmp.mapping.scroll_docs(4),
+ ['<C-Space>'] = cmp.mapping.complete(),
+ ['<C-e>'] = cmp.mapping.abort(),
+ ['<CR>'] = cmp.mapping.confirm({ select = true }),
+ ['<C-j>'] = cmp.mapping.select_next_item(),
+ ['<C-k>'] = cmp.mapping.select_prev_item(),
+ }),
+ sources = cmp.config.sources({
+ { name = 'nvim_lsp' },
+ { name = 'luasnip' },
+ }, {
+ { name = 'buffer' },
+ })
+ })
+ end,
+ }
+}
diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua
index ad6f420..0ddbbe9 100644
--- a/.config/nvim/lua/plugins/lsp.lua
+++ b/.config/nvim/lua/plugins/lsp.lua
@@ -1,3 +1,8 @@
+-- Language server for specified languages
+-- Hover with 'K'
+-- Goto definition with :Goto
+-- Open code action with :Codeact
+
return {
{
"williamboman/mason.nvim",
@@ -8,31 +13,36 @@ return {
{
"williamboman/mason-lspconfig.nvim",
- config = function()
- require("mason-lspconfig").setup({
- -- Add languages
- ensure_installed = {
- "bashls",
- "clangd",
- "lua_ls",
- "marksman",
- "pyright",
- "rust_analyzer",
- }
- })
- end
+ lazy = false,
+ opts = {
+ auto_install = true,
+ },
},
{
"neovim/nvim-lspconfig",
config = function()
+ -- Advertise autocompletion to lsp
+ local capabilities = require('cmp_nvim_lsp').default_capabilities()
local lspconfig = require("lspconfig")
- lspconfig.bashls.setup({})
- lspconfig.lua_ls.setup({})
- lspconfig.clangd.setup({})
- lspconfig.marksman.setup({})
- lspconfig.pyright.setup({})
- lspconfig.rust_analyzer.setup({})
+ lspconfig.bashls.setup({
+ capabilities = capabilities
+ })
+ lspconfig.lua_ls.setup({
+ capabilities = capabilities
+ })
+ lspconfig.clangd.setup({
+ capabilities = capabilities
+ })
+ lspconfig.marksman.setup({
+ capabilities = capabilities
+ })
+ lspconfig.pyright.setup({
+ capabilities = capabilities
+ })
+ lspconfig.rust_analyzer.setup({
+ capabilities = capabilities
+ })
-- Key mapping
-- Hover for definition
diff --git a/.config/nvim/lua/plugins/none-ls.lua b/.config/nvim/lua/plugins/none-ls.lua
index 3a912ae..79098a9 100644
--- a/.config/nvim/lua/plugins/none-ls.lua
+++ b/.config/nvim/lua/plugins/none-ls.lua
@@ -1,4 +1,6 @@
+-- Formatter
-- https://github.com/nvimtools/none-ls.nvim
+-- Press '=' to format highlighted code
return {
"nvimtools/none-ls.nvim",
config = function()
diff --git a/.config/nvim/lua/plugins/nvim-dap.lua b/.config/nvim/lua/plugins/nvim-dap.lua
index 7720526..5a6d1ae 100644
--- a/.config/nvim/lua/plugins/nvim-dap.lua
+++ b/.config/nvim/lua/plugins/nvim-dap.lua
@@ -1,3 +1,5 @@
+-- Debugger
+-- https://github.com/mfussenegger/nvim-dap
return {
"mfussenegger/nvim-dap",
event = "BufRead",
diff --git a/.config/nvim/lua/plugins/theme.lua b/.config/nvim/lua/plugins/theme.lua
deleted file mode 100644
index 985e70b..0000000
--- a/.config/nvim/lua/plugins/theme.lua
+++ /dev/null
@@ -1,14 +0,0 @@
-return {
- {
- -- Bottom bar theme
- -- https://github.com/nvim-lualine/lualine.nvim
- "nvim-lualine/lualine.nvim",
- config = function()
- require('lualine').setup({
- options = {
- theme = 'jellybeans'
- }
- })
- end
- }
-}
diff --git a/.config/nvim/lua/plugins/treesitter.lua b/.config/nvim/lua/plugins/treesitter.lua
index 778f5a0..f04198f 100644
--- a/.config/nvim/lua/plugins/treesitter.lua
+++ b/.config/nvim/lua/plugins/treesitter.lua
@@ -1,3 +1,4 @@
+-- Syntax highlighting
-- https://github.com/nvim-treesitter/nvim-treesitter
return {
"nvim-treesitter/nvim-treesitter",