summaryrefslogtreecommitdiff
path: root/nvim/lua
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/lua')
-rw-r--r--nvim/lua/keymaps.lua2
-rw-r--r--nvim/lua/lsp.lua22
-rw-r--r--nvim/lua/options.lua54
-rw-r--r--nvim/lua/plugins.lua86
-rw-r--r--nvim/lua/term.lua2
5 files changed, 99 insertions, 67 deletions
diff --git a/nvim/lua/keymaps.lua b/nvim/lua/keymaps.lua
index 26037c6..4f4a489 100644
--- a/nvim/lua/keymaps.lua
+++ b/nvim/lua/keymaps.lua
@@ -11,7 +11,7 @@ vim.g.mapleader = "'"
-- Normal mode --
-----------------
--- Hint: set `:h vim.map.set()`
+-- Hint: see `:h vim.map.set()`
-- Better window navigation
vim.keymap.set('n', '<C-h>', '<C-w>h', opts)
vim.keymap.set('n', '<C-j>', '<C-w>j', opts)
diff --git a/nvim/lua/lsp.lua b/nvim/lua/lsp.lua
new file mode 100644
index 0000000..343c76b
--- /dev/null
+++ b/nvim/lua/lsp.lua
@@ -0,0 +1,22 @@
+-- Remove Global Default Key mapping
+vim.keymap.del("n", "grn")
+vim.keymap.del("n", "gra")
+vim.keymap.del("n", "grr")
+vim.keymap.del("n", "gri")
+vim.keymap.del("n", "gO")
+
+-- Create keymapping
+-- LspAttach: After an LSP Client performs "initialize" and attaches to a buffer.
+vim.api.nvim_create_autocmd("LspAttach", {
+ callback = function(args)
+ local keymap = vim.keymap
+ local lsp = vim.lsp
+ local bufopts = { noremap = true, silent = true }
+
+ keymap.set("n", "gr", lsp.buf.references, bufopts)
+ keymap.set("n", "gd", lsp.buf.definition, bufopts)
+ keymap.set("n", "<space>rn", lsp.buf.rename, bufopts)
+ keymap.set("n", "K", lsp.buf.hover, bufopts)
+ keymap.set("n", "<space>f", lsp.buf.format, bufopts)
+ end
+})
diff --git a/nvim/lua/options.lua b/nvim/lua/options.lua
index 1d4826e..ae802be 100644
--- a/nvim/lua/options.lua
+++ b/nvim/lua/options.lua
@@ -8,6 +8,8 @@ vim.opt.tabstop = 2 -- number of visual spaces per TAB
vim.opt.softtabstop = 2 -- number of spaces in tab when editing
vim.opt.shiftwidth = 2 -- insert 2 spaces on a tab
vim.opt.expandtab = true -- tabs are spaces
+vim.opt.smartindent = true
+vim.opt.smarttab = true
-- UI config
vim.opt.number = true -- show absolute number
@@ -30,3 +32,55 @@ vim.opt.undolevels = 1000 -- Number of undo levels
vim.opt.backspace = { "indent", "eol", "start" } -- Backspace behavior
vim.opt.foldmethod = "marker"
vim.opt.conceallevel = 2
+
+-- Plugins
+-- emmet
+vim.g.user_emmet_leader_key = '<C-a>'
+
+-- zig
+vim.g.zig_fmt_autosave = 1
+
+-- markdown
+vim.g.vim_markdown_folding_disabled = 1
+vim.g.vim_markdown_folding_level = 3
+vim.g.vim_markdown_toc_autofit = 1
+vim.g.vim_markdown_emphasis_multiline = 0
+vim.g.tex_conceal = ""
+vim.g.vim_markdown_math = 1
+vim.g.vim_markdown_conceal_code_blocks = 1
+vim.g.vim_markdown_fenced_languages = { 'c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini' }
+vim.g.vim_markdown_follow_anchor = 1
+vim.g.vim_markdown_math = 1
+vim.g.vim_markdown_frontmatter = 1
+vim.g.vim_markdown_toml_frontmatter = 1
+vim.g.vim_markdown_strikethrough = 1
+vim.g.vim_markdown_no_extensions_in_markdown = 1
+vim.g.vim_markdown_autowrite = 1
+vim.g.vim_markdown_auto_insert_bullets = 0
+vim.g.vim_markdown_new_list_item_indent = 0
+vim.g.vim_markdown_edit_url_in = 'tab'
+
+-- NERDTree
+vim.g.NERDTreeGitStatusUseNerdFonts = 1
+vim.g.NERDTreeGitStatusShowClean = 1
+vim.g.NERDTreeDirArrowExpandable = '>'
+vim.g.NERDTreeDirArrowCollapsible = '<'
+vim.g.NERDTreeMapToggleHidden = 'z'
+
+-- goyo
+vim.g.goyo_width = '90%'
+vim.g.goyo_height = '100%'
+
+-- limelight
+vim.g.limelight_conceal_ctermfg = 'gray'
+vim.g.limelight_conceal_guifg = 'gray'
+
+-- devicon
+vim.g.airline_powerline_fonts = 1
+vim.g.webdevicons_enable_nerdtree = 1
+
+-- vim-indent-guides
+vim.g.indent_guides_enable_on_vim_startup = 0
+
+-- vim-signify
+vim.opt.updatetime = 100
diff --git a/nvim/lua/plugins.lua b/nvim/lua/plugins.lua
index 0801939..f90b09c 100644
--- a/nvim/lua/plugins.lua
+++ b/nvim/lua/plugins.lua
@@ -5,21 +5,37 @@ if not (vim.uv or vim.loop).fs_stat(lazypath) then
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
- "--branch=stable", -- latest stable rtelease
+ "--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
+ -- LSP manager
+ { "mason-org/mason.nvim", opts = {} },
+ {
+ "mason-org/mason-lspconfig.nvim",
+ dependencies = {
+ "mason-org/mason.nvim",
+ "neovim/nvim-lspconfig",
+ },
+ opts = {
+ ensure_installed = { "pylsp", "clangd", "rust_analyzer", "zls" },
+ },
+ },
+ {
+ "neovim/nvim-lspconfig",
+ config = function()
+ local lspconfig = require("lspconfig")
+
+ lspconfig.pylsp.setup({})
+ end,
+ },
"tanvirtin/monokai.nvim",
- 'preservim/nerdtree',
- 'ziglang/zig.vim',
"lervag/vimtex",
'tomasiser/vim-code-dark',
'flazz/vim-colorschemes',
- 'tomasiser/vim-code-dark',
- 'flazz/vim-colorschemes',
'ZachIndigo/vim-preglow',
'axvr/org.vim',
'ziglang/zig.vim',
@@ -44,63 +60,3 @@ require("lazy").setup({
'ryanoasis/vim-devicons',
{'akinsho/toggleterm.nvim', version = "*", config = true},
})
-
---------------------
--- Plugin Options --
---------------------
-
--- emmet
-vim.g.user_emmet_leader_key='<C-a>'
-
--- zig config
-vim.g.zig_fmt_autosave = 1
-
--- latex live preview
-vim.g.livepreview_previewer = 'zathura'
-vim.g.livepreview_use_biber = 1
-vim.g.livepreview_cursorhold_recompile = 0
-
--- vim-markdown
-vim.g.vim_markdown_folding_disabled = 1
-vim.g.vim_markdown_folding_level = 3
-vim.g.vim_markdown_toc_autofit = 1
-vim.g.vim_markdown_emphasis_multiline = 0
-vim.g.tex_conceal = ""
-vim.g.vim_markdown_math = 1
-vim.g.vim_markdown_conceal_code_blocks = 1
-vim.g.vim_markdown_fenced_languages = { 'c++=cpp', 'viml=vim', 'bash=sh', 'ini=dosini' }
-vim.g.vim_markdown_follow_anchor = 1
-vim.g.vim_markdown_math = 1
-vim.g.vim_markdown_frontmatter = 1
-vim.g.vim_markdown_toml_frontmatter = 1
-vim.g.vim_markdown_strikethrough = 1
-vim.g.vim_markdown_no_extensions_in_markdown = 1
-vim.g.vim_markdown_autowrite = 1
-vim.g.vim_markdown_auto_insert_bullets = 0
-vim.g.vim_markdown_new_list_item_indent = 0
-vim.g.vim_markdown_edit_url_in = 'tab'
-
--- NERDTree config
-vim.g.NERDTreeGitStatusUseNerdFonts = 1 -- use nerd fonts
-vim.g.NERDTreeGitStatusShowClean = 1 -- default: 0
-vim.g.NERDTreeDirArrowExpandable = '>'
-vim.g.NERDTreeDirArrowCollapsible = '<'
-vim.g.NERDTreeMapToggleHidden = 'z'
-
--- Goyo config
-vim.g.goyo_width = '90%'
-vim.g.goyo_height = '100%'
-
--- limelight config
-vim.g.limelight_conceal_ctermfg = 'gray'
-vim.g.limelight_conceal_guifg = 'gray'
-
--- devicon config
-vim.g.airline_powerline_fonts = 1
-vim.g.webdevicons_enable_nerdtree = 1
-
--- vim-indent-guides config
-vim.g.indent_guides_enable_on_vim_startup = 0
-
--- vim-signify config
-vim.opt.updatetime=100
diff --git a/nvim/lua/term.lua b/nvim/lua/term.lua
index 9f3062d..e7aac4e 100644
--- a/nvim/lua/term.lua
+++ b/nvim/lua/term.lua
@@ -7,7 +7,7 @@ require("toggleterm").setup{
return vim.o.columns * 0.4
end
end,
- open_mapping = [[<c-\>]], -- or { [[<c-\>]], [[<c-¥>]] } if you also use a Japanese keyboard.
+ open_mapping = [[<leader>`]], -- or { [[<c-\>]], [[<c-¥>]] } if you also use a Japanese keyboard.
hide_numbers = true, -- hide the number column in toggleterm buffers
shade_filetypes = {},
autochdir = false, -- when neovim changes it current directory the terminal will change it's own when next it's opened