summaryrefslogtreecommitdiff
path: root/.config/nvim_pack
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim_pack')
-rw-r--r--.config/nvim_pack/ftplugin/c.lua12
-rw-r--r--.config/nvim_pack/ftplugin/json.lua12
-rw-r--r--.config/nvim_pack/ftplugin/lua.lua14
-rw-r--r--.config/nvim_pack/ftplugin/make.lua12
-rw-r--r--.config/nvim_pack/ftplugin/python.lua12
-rw-r--r--.config/nvim_pack/ftplugin/rust.lua31
-rw-r--r--.config/nvim_pack/ftplugin/sh.lua12
-rw-r--r--.config/nvim_pack/ftplugin/xml.lua12
-rw-r--r--.config/nvim_pack/init.lua10
-rw-r--r--.config/nvim_pack/lsp/bashls.lua0
-rw-r--r--.config/nvim_pack/lsp/clangd.lua0
-rw-r--r--.config/nvim_pack/lsp/lemminx.lua0
-rw-r--r--.config/nvim_pack/lsp/lua_ls.lua19
-rw-r--r--.config/nvim_pack/lsp/marksman.lua0
-rw-r--r--.config/nvim_pack/lsp/pyright.lua16
-rw-r--r--.config/nvim_pack/lua/configs/basic.lua83
-rw-r--r--.config/nvim_pack/lua/configs/lsp.lua48
-rw-r--r--.config/nvim_pack/lua/configs/vim-plug.lua8
-rw-r--r--.config/nvim_pack/lua/plugins/marks.lua11
-rw-r--r--.config/nvim_pack/lua/plugins/mason.lua10
-rw-r--r--.config/nvim_pack/lua/plugins/render-markdown.lua8
-rw-r--r--.config/nvim_pack/lua/plugins/rustaceanvim.lua53
-rw-r--r--.config/nvim_pack/nvim-pack-lock.json40
23 files changed, 423 insertions, 0 deletions
diff --git a/.config/nvim_pack/ftplugin/c.lua b/.config/nvim_pack/ftplugin/c.lua
new file mode 100644
index 0000000..4514ab3
--- /dev/null
+++ b/.config/nvim_pack/ftplugin/c.lua
@@ -0,0 +1,12 @@
+local indent_size = 8
+local use_tabs = false
+
+local settings = string.format("setlocal softtabstop=%s tabstop=%s shiftwidth=%s", indent_size, indent_size, indent_size)
+
+if use_tabs == true then
+ settings = settings .. " noexpandtab"
+else
+ settings = settings .. " expandtab"
+end
+
+vim.cmd(settings)
diff --git a/.config/nvim_pack/ftplugin/json.lua b/.config/nvim_pack/ftplugin/json.lua
new file mode 100644
index 0000000..3fbcec4
--- /dev/null
+++ b/.config/nvim_pack/ftplugin/json.lua
@@ -0,0 +1,12 @@
+local indent_size = 4
+local use_tabs = false
+
+local settings = string.format("setlocal softtabstop=%s tabstop=%s shiftwidth=%s", indent_size, indent_size, indent_size)
+
+if use_tabs == true then
+ settings = settings .. " noexpandtab"
+else
+ settings = settings .. " expandtab"
+end
+
+vim.cmd(settings)
diff --git a/.config/nvim_pack/ftplugin/lua.lua b/.config/nvim_pack/ftplugin/lua.lua
new file mode 100644
index 0000000..275b1a9
--- /dev/null
+++ b/.config/nvim_pack/ftplugin/lua.lua
@@ -0,0 +1,14 @@
+local indent_size = 2
+local use_tabs = false
+
+local settings = string.format("setlocal softtabstop=%s tabstop=%s shiftwidth=%s", indent_size, indent_size, indent_size)
+
+if use_tabs == true then
+ settings = settings .. " noexpandtab"
+else
+ settings = settings .. " expandtab"
+end
+
+vim.cmd(settings)
+
+-- Check http://vimcasts.org/episodes/tabs-and-spaces/ for more info on tabs and spaces
diff --git a/.config/nvim_pack/ftplugin/make.lua b/.config/nvim_pack/ftplugin/make.lua
new file mode 100644
index 0000000..2ad7f95
--- /dev/null
+++ b/.config/nvim_pack/ftplugin/make.lua
@@ -0,0 +1,12 @@
+local indent_size = 8
+local use_tabs = true
+
+local settings = string.format("setlocal softtabstop=%s tabstop=%s shiftwidth=%s", indent_size, indent_size, indent_size)
+
+if use_tabs == true then
+ settings = settings .. " noexpandtab"
+else
+ settings = settings .. " expandtab"
+end
+
+vim.cmd(settings)
diff --git a/.config/nvim_pack/ftplugin/python.lua b/.config/nvim_pack/ftplugin/python.lua
new file mode 100644
index 0000000..3fbcec4
--- /dev/null
+++ b/.config/nvim_pack/ftplugin/python.lua
@@ -0,0 +1,12 @@
+local indent_size = 4
+local use_tabs = false
+
+local settings = string.format("setlocal softtabstop=%s tabstop=%s shiftwidth=%s", indent_size, indent_size, indent_size)
+
+if use_tabs == true then
+ settings = settings .. " noexpandtab"
+else
+ settings = settings .. " expandtab"
+end
+
+vim.cmd(settings)
diff --git a/.config/nvim_pack/ftplugin/rust.lua b/.config/nvim_pack/ftplugin/rust.lua
new file mode 100644
index 0000000..029f0da
--- /dev/null
+++ b/.config/nvim_pack/ftplugin/rust.lua
@@ -0,0 +1,31 @@
+local indent_size = 4
+local use_tabs = false
+
+local settings = string.format("setlocal softtabstop=%s tabstop=%s shiftwidth=%s", indent_size, indent_size, indent_size)
+
+if use_tabs == true then
+ settings = settings .. " noexpandtab"
+else
+ settings = settings .. " expandtab"
+end
+
+local bufnr = vim.api.nvim_get_current_buf()
+vim.keymap.set(
+ "n",
+ "<leader>a",
+ function()
+ vim.cmd.RustLsp('codeAction') -- supports rust-analyzer's grouping
+ -- or vim.lsp.buf.codeAction() if you don't want grouping.
+ end,
+ { silent = true, buffer = bufnr }
+)
+vim.keymap.set(
+ "n",
+ "K", -- Override Neovim's built-in hover keymap with rustaceanvim's hover actions
+ function()
+ vim.cmd.RustLsp({'hover', 'actions'})
+ end,
+ { silent = true, buffer = bufnr }
+)
+
+vim.cmd(settings)
diff --git a/.config/nvim_pack/ftplugin/sh.lua b/.config/nvim_pack/ftplugin/sh.lua
new file mode 100644
index 0000000..4d8e3f2
--- /dev/null
+++ b/.config/nvim_pack/ftplugin/sh.lua
@@ -0,0 +1,12 @@
+local indent_size = 2
+local use_tabs = false
+
+local settings = string.format("setlocal softtabstop=%s tabstop=%s shiftwidth=%s", indent_size, indent_size, indent_size)
+
+if use_tabs == true then
+ settings = settings .. " noexpandtab"
+else
+ settings = settings .. " expandtab"
+end
+
+vim.cmd(settings)
diff --git a/.config/nvim_pack/ftplugin/xml.lua b/.config/nvim_pack/ftplugin/xml.lua
new file mode 100644
index 0000000..4d8e3f2
--- /dev/null
+++ b/.config/nvim_pack/ftplugin/xml.lua
@@ -0,0 +1,12 @@
+local indent_size = 2
+local use_tabs = false
+
+local settings = string.format("setlocal softtabstop=%s tabstop=%s shiftwidth=%s", indent_size, indent_size, indent_size)
+
+if use_tabs == true then
+ settings = settings .. " noexpandtab"
+else
+ settings = settings .. " expandtab"
+end
+
+vim.cmd(settings)
diff --git a/.config/nvim_pack/init.lua b/.config/nvim_pack/init.lua
new file mode 100644
index 0000000..bfc4b5b
--- /dev/null
+++ b/.config/nvim_pack/init.lua
@@ -0,0 +1,10 @@
+-- General configs --
+require("configs.basic")
+require("configs.vim-plug")
+require("configs.lsp")
+
+-- Install plugins with native vim.pack --
+require("plugins.mason")
+require("plugins.marks")
+require("plugins.render-markdown")
+require("plugins.rustaceanvim")
diff --git a/.config/nvim_pack/lsp/bashls.lua b/.config/nvim_pack/lsp/bashls.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.config/nvim_pack/lsp/bashls.lua
diff --git a/.config/nvim_pack/lsp/clangd.lua b/.config/nvim_pack/lsp/clangd.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.config/nvim_pack/lsp/clangd.lua
diff --git a/.config/nvim_pack/lsp/lemminx.lua b/.config/nvim_pack/lsp/lemminx.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.config/nvim_pack/lsp/lemminx.lua
diff --git a/.config/nvim_pack/lsp/lua_ls.lua b/.config/nvim_pack/lsp/lua_ls.lua
new file mode 100644
index 0000000..c0a6d56
--- /dev/null
+++ b/.config/nvim_pack/lsp/lua_ls.lua
@@ -0,0 +1,19 @@
+return {
+ -- Command and arguments to start the server.
+ cmd = { 'lua-language-server' },
+ -- Filetypes to automatically attach to.
+ filetypes = { 'lua' },
+ -- Sets the "workspace" to the directory where any of these files is found.
+ -- Files that share a root directory will reuse the LSP server connection.
+ -- Nested lists indicate equal priority, see |vim.lsp.Config|.
+ root_markers = { { '.luarc.json', '.luarc.jsonc' }, '.git' },
+ -- Specific settings to send to the server. The schema is server-defined.
+ -- Example: https://raw.githubusercontent.com/LuaLS/vscode-lua/master/setting/schema.json
+ settings = {
+ Lua = {
+ runtime = {
+ version = 'LuaJIT',
+ }
+ }
+ }
+}
diff --git a/.config/nvim_pack/lsp/marksman.lua b/.config/nvim_pack/lsp/marksman.lua
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.config/nvim_pack/lsp/marksman.lua
diff --git a/.config/nvim_pack/lsp/pyright.lua b/.config/nvim_pack/lsp/pyright.lua
new file mode 100644
index 0000000..aece9a7
--- /dev/null
+++ b/.config/nvim_pack/lsp/pyright.lua
@@ -0,0 +1,16 @@
+return {
+ cmd = { "pyright-langserver", "--stdio" },
+ filetypes = { "python" },
+ root_dir = function(filename)
+ return util.root_pattern(unpack(root_files))(filename) or util.path.dirname(filename)
+ end,
+ settings = {
+ python = {
+ analysis = {
+ autoSearchPaths = true,
+ diagnosticMode = "workspace",
+ useLibraryCodeForTypes = true
+ }
+ }
+ }
+}
diff --git a/.config/nvim_pack/lua/configs/basic.lua b/.config/nvim_pack/lua/configs/basic.lua
new file mode 100644
index 0000000..b39412c
--- /dev/null
+++ b/.config/nvim_pack/lua/configs/basic.lua
@@ -0,0 +1,83 @@
+-----------
+-- Basic --
+-----------
+vim.g.mapleader = " "
+vim.opt.mouse = ''
+vim.opt.wrap = true
+vim.opt.number = true
+vim.opt.relativenumber = true
+vim.opt.laststatus = 2
+vim.opt.hlsearch = true
+vim.opt.incsearch = true
+-- Directory for swap files
+vim.opt.directory = vim.fn.expand("~/.local/share/nvim/swap//")
+-- Search into subfolders
+-- Provides tab completion for file related tasks
+vim.opt.path:append '**'
+-- Display all matching files when we tab complete
+vim.opt.wildmenu = true
+vim.cmd("filetype plugin on")
+vim.api.nvim_set_keymap('v', '<C-c>', '"+y', { noremap = true, silent = true })
+
+------------------------------------
+-- Native Neovim tabs and windows --
+------------------------------------
+vim.keymap.set('n', '<leader>f', '<cmd>Explore<CR>', { desc = 'Open Neotree' })
+vim.keymap.set("n", '<leader>c',function()
+ vim.cmd("Tex")
+ vim.cmd("wincmd r")
+end, { desc = "Open tab"})
+vim.keymap.set("n", '<leader>v', function()
+ vim.cmd("Vex")
+ vim.cmd("wincmd x")
+ vim.cmd("wincmd l")
+ vim.cmd("enew")
+end, { desc = "Open vertical split" })
+vim.keymap.set("n", '<leader>h', function()
+ vim.cmd("Sex")
+ vim.cmd("wincmd x")
+ vim.cmd("wincmd j")
+end, { desc = "Open horizontal split" })
+-- Open terminal
+local term_buf = nil
+vim.keymap.set('n', '<leader>t', function()
+ if term_buf and vim.api.nvim_buf_is_valid(term_buf) then
+ -- Reuse existing terminal
+ vim.cmd('rightbelow vsplit')
+ vim.cmd('buffer ' .. term_buf)
+ else
+ -- Create a new terminal
+ vim.cmd('rightbelow vsplit | terminal')
+ term_buf = vim.api.nvim_get_current_buf()
+ end
+ vim.cmd('startinsert')
+end, { desc = 'Open terminal in vertical split' })
+vim.keymap.set('t', '<Esc>', [[<C-\><C-n>:q<CR>]], { desc = 'Exit terminal mode' })
+vim.keymap.set('n', '<C-l>', '<cmd>tabnext +<CR>', { desc = 'Switch next tab' })
+vim.keymap.set('n', '<C-h>', '<cmd>tabnext -<CR>', { desc = 'Switch prev tab' })
+vim.keymap.set('n', '<C-A-h>', '<cmd>tabmove -1<CR>', { desc = 'Move current tab left' })
+vim.keymap.set('n', '<C-A-l>', '<cmd>tabmove +1<CR>', { desc = 'Move current tab right' })
+vim.keymap.set('n', '<A-k>', '<cmd>wincmd k<CR>', { desc = 'Move cursor to window above' })
+vim.keymap.set('n', '<A-j>', '<cmd>wincmd j<CR>', { desc = 'Move cursor to window below' })
+vim.keymap.set('n', '<A-h>', '<cmd>wincmd h<CR>', { desc = 'Move cursor to window left' })
+vim.keymap.set('n', '<A-l>', '<cmd>wincmd l<CR>', { desc = 'Move cursor to window right' })
+
+-----------------
+-- Diagnostics --
+-----------------
+vim.diagnostic.config({
+ virtual_text = false, -- Disable inline text diagnostics
+ signs = true, -- Keep signs in the sign column
+ update_in_insert = false,
+ underline = true,
+ severity_sort = true,
+})
+
+-- Show diagnostics on hover
+vim.o.updatetime = 250 -- Faster update time for hover
+vim.api.nvim_create_autocmd("CursorHold", {
+ pattern = "*",
+ callback = function()
+ vim.diagnostic.open_float(nil, { focus = false, scope = "cursor" })
+ end,
+})
diff --git a/.config/nvim_pack/lua/configs/lsp.lua b/.config/nvim_pack/lua/configs/lsp.lua
new file mode 100644
index 0000000..7acbeba
--- /dev/null
+++ b/.config/nvim_pack/lua/configs/lsp.lua
@@ -0,0 +1,48 @@
+-- Language server for specified languages
+-- Hover with 'K'
+-- Goto definition with :Goto
+-- Open code action with :Codeact
+
+local servers = {
+ "lua_ls", "bashls", "clangd", "marksman", "pyright", "lemminx",
+}
+
+vim.pack.add({
+ {
+ src = "https://github.com/mason-org/mason.nvim.git",
+ version = 'main',
+ },
+ {
+ src = "https://github.com/mason-org/mason-lspconfig.nvim.git",
+ version = 'main',
+ },
+})
+
+require("mason").setup({})
+require("mason-lspconfig").setup({
+ ensure_installed = servers,
+ automatic_installation = true,
+ automatic_enable = true,
+})
+
+-- Key mapping
+-- Hover for definition
+vim.keymap.set('n', 'K', vim.lsp.buf.hover, {})
+
+-- Move to definition
+vim.api.nvim_create_user_command(
+ "Goto",
+ function()
+ vim.lsp.buf.definition()
+ end,
+ {}
+)
+
+-- Code action
+vim.api.nvim_create_user_command(
+ "Codeact",
+ function()
+ vim.lsp.buf.code_action()
+ end,
+ {}
+)
diff --git a/.config/nvim_pack/lua/configs/vim-plug.lua b/.config/nvim_pack/lua/configs/vim-plug.lua
new file mode 100644
index 0000000..01620e1
--- /dev/null
+++ b/.config/nvim_pack/lua/configs/vim-plug.lua
@@ -0,0 +1,8 @@
+vim.api.nvim_create_user_command(
+ "Update",
+ function()
+ vim.pack.update()
+ end,
+ {}
+)
+
diff --git a/.config/nvim_pack/lua/plugins/marks.lua b/.config/nvim_pack/lua/plugins/marks.lua
new file mode 100644
index 0000000..841d390
--- /dev/null
+++ b/.config/nvim_pack/lua/plugins/marks.lua
@@ -0,0 +1,11 @@
+vim.pack.add({
+ {
+ src = 'https://github.com/chentoast/marks.nvim.git',
+ version = 'main',
+ },
+})
+
+require("marks").setup({
+ event = "VeryLazy",
+ opts = {},
+})
diff --git a/.config/nvim_pack/lua/plugins/mason.lua b/.config/nvim_pack/lua/plugins/mason.lua
new file mode 100644
index 0000000..c085313
--- /dev/null
+++ b/.config/nvim_pack/lua/plugins/mason.lua
@@ -0,0 +1,10 @@
+vim.pack.add({
+ {
+ src = "https://github.com/mason-org/mason.nvim.git",
+ version = 'main',
+ },
+ {
+ src = "https://github.com/mason-org/mason-lspconfig.nvim.git",
+ version = 'main',
+ },
+})
diff --git a/.config/nvim_pack/lua/plugins/render-markdown.lua b/.config/nvim_pack/lua/plugins/render-markdown.lua
new file mode 100644
index 0000000..3f2a800
--- /dev/null
+++ b/.config/nvim_pack/lua/plugins/render-markdown.lua
@@ -0,0 +1,8 @@
+vim.pack.add({
+ 'https://github.com/nvim-treesitter/nvim-treesitter',
+ 'https://github.com/nvim-mini/mini.nvim', -- if you use the mini.nvim suite
+ -- 'https://github.com/nvim-mini/mini.icons', -- if you use standalone mini plugins
+ -- 'https://github.com/nvim-tree/nvim-web-devicons', -- if you prefer nvim-web-devicons
+ 'https://github.com/MeanderingProgrammer/render-markdown.nvim',
+})
+require('render-markdown').setup({}) -- only mandatory if you want to set custom options
diff --git a/.config/nvim_pack/lua/plugins/rustaceanvim.lua b/.config/nvim_pack/lua/plugins/rustaceanvim.lua
new file mode 100644
index 0000000..dee1dc1
--- /dev/null
+++ b/.config/nvim_pack/lua/plugins/rustaceanvim.lua
@@ -0,0 +1,53 @@
+vim.pack.add({
+ {
+ src = 'https://github.com/mrcjkb/rustaceanvim.git',
+ version = 'master',
+ lazy = false, -- This plugin is already lazy
+ },
+})
+
+vim.g.rustaceanvim = {
+ -- Plugin configuration
+ tools = {
+ },
+ -- LSP configuration
+ server = {
+ default_settings = {
+ -- rust-analyzer language server configuration
+ -- https://rust-analyzer.github.io/book/configuration.html
+ ['rust-analyzer'] = {
+ checkOnSave = true,
+ check = {
+ enable = true,
+ command = "clippy",
+ features = "all",
+ },
+ completion = {
+ autoimport = {
+ enable = false;
+ }
+ },
+ files = {
+ exclude = {
+ "build-dir/",
+ ".flatpak-builder",
+ }
+ }
+ --settings = {
+ -- cargo = { allFeatures = true },
+ -- imports = { group = { enable = false } },
+ -- completion = { postfix = { enable = false } },
+ -- -- https://www.reddit.com/r/rust/comments/1e978l7/comment/led7ibp/
+ -- -- checkOnSave = { command = "clippy" },
+ -- checkOnSave = { command = false },
+
+ -- diagnostics = { enable = true },
+ -- rustfmt = { enable = true },
+ --}
+ },
+ },
+ },
+ -- DAP configuration
+ dap = {
+ },
+}
diff --git a/.config/nvim_pack/nvim-pack-lock.json b/.config/nvim_pack/nvim-pack-lock.json
new file mode 100644
index 0000000..f9b72cb
--- /dev/null
+++ b/.config/nvim_pack/nvim-pack-lock.json
@@ -0,0 +1,40 @@
+{
+ "plugins": {
+ "marks": {
+ "rev": "f353e8c08c50f39e99a9ed474172df7eddd89b72",
+ "src": "https://github.com/chentoast/marks.nvim.git"
+ },
+ "marks.nvim": {
+ "rev": "f353e8c08c50f39e99a9ed474172df7eddd89b72",
+ "src": "https://github.com/chentoast/marks.nvim.git",
+ "version": "'main'"
+ },
+ "mason-lspconfig.nvim": {
+ "rev": "4cfe411526a7a99c18281135e8b4765ae6330d15",
+ "src": "https://github.com/mason-org/mason-lspconfig.nvim.git",
+ "version": "'main'"
+ },
+ "mason.nvim": {
+ "rev": "57e5a8addb8c71fb063ee4acda466c7cf6ad2800",
+ "src": "https://github.com/mason-org/mason.nvim.git",
+ "version": "'main'"
+ },
+ "mini.nvim": {
+ "rev": "43ec25063430196d36f5fff5758c9101775f3d57",
+ "src": "https://github.com/nvim-mini/mini.nvim"
+ },
+ "nvim-treesitter": {
+ "rev": "c6dd314086f7b471bf6c9110092a94ce1c06d220",
+ "src": "https://github.com/nvim-treesitter/nvim-treesitter"
+ },
+ "render-markdown.nvim": {
+ "rev": "07d088bf8bdadd159eb807b90eaee86a4778383f",
+ "src": "https://github.com/MeanderingProgrammer/render-markdown.nvim"
+ },
+ "rustaceanvim": {
+ "rev": "f8bf440870c138bf45bc82c42f55d280569964b8",
+ "src": "https://github.com/mrcjkb/rustaceanvim.git",
+ "version": "'master'"
+ }
+ }
+} \ No newline at end of file