summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorIan Griffin <migriffin@disroot.org>2025-03-25 23:13:50 +0800
committerIan Griffin <migriffin@disroot.org>2025-03-25 23:13:50 +0800
commit19bded245ee0685120ea3d2095c0abcdf5c22692 (patch)
treedb595355f93c31e24f35931428e7e67560a597fb /lua
parent93e008c73586b239b2e11ad897c4bda081c023d7 (diff)
migrated to lazy.nvim, cleanup and fixes
Diffstat (limited to 'lua')
-rw-r--r--lua/defs.lua6
-rw-r--r--lua/ide.lua249
-rw-r--r--lua/lazy_conf.lua14
-rw-r--r--lua/misc.lua19
-rw-r--r--lua/plugins/10_ide.lua234
-rw-r--r--lua/plugins/50_ui.lua53
-rw-r--r--lua/plugins/90_misc.lua19
-rw-r--r--lua/ui.lua76
8 files changed, 323 insertions, 347 deletions
diff --git a/lua/defs.lua b/lua/defs.lua
index 11c5c3e..cf02255 100644
--- a/lua/defs.lua
+++ b/lua/defs.lua
@@ -1,7 +1,7 @@
return {
template_dir = '~/templates',
- external_term = 'kgx',
- external_filemgr = 'nautilus',
- external_pdfviewer = 'evince',
+ external_term = 'xfce4-terminal',
+ external_filemgr = 'thunar',
+ external_pdfviewer = 'atril',
lsp_path = vim.env.HOME .. '/.local/share/lsp_servers'
}
diff --git a/lua/ide.lua b/lua/ide.lua
deleted file mode 100644
index 4a1d252..0000000
--- a/lua/ide.lua
+++ /dev/null
@@ -1,249 +0,0 @@
---
--- IDE-like features
---
-
--- Load required tools
-local pk_use = require 'packer'.use
-
---
--- Tree Sitter
---
-pk_use {
- 'nvim-treesitter/nvim-treesitter',
- run = ':TSUpdate',
- config = function()
- require('nvim-treesitter.configs').setup {
- ensure_installed = {
- "bash",
- "bibtex",
- "c",
- "cpp",
- "css",
- "go",
- "html",
- "http",
- "javascript",
- "json",
- "latex",
- "lua",
- "python",
- "typescript",
- "tsx",
- "vim",
- },
- sync_install = false,
- highlight = {
- enable = true,
- }
- }
- end
-}
-
---
--- Autocompletion
---
-pk_use {
- 'ms-jpq/coq_nvim',
- branch = 'coq',
- config = function()
- vim.cmd([[autocmd VimEnter * COQnow -s]])
- end
-}
-
-pk_use {
- 'ms-jpq/coq.artifacts',
- branch = 'artifacts'
-}
-
---
--- Language Configurations
---
-pk_use 'ap/vim-css-color'
--- close tags in html languages
-pk_use {
- 'alvan/closetag.vim',
- ft = { "html", "vue", "typescriptreact" }
-}
-
--- pk_use {
--- 'fatih/vim-go',
--- ft = 'go'
--- }
-
-pk_use {
- 'udalov/kotlin-vim',
- ft = 'kotlin'
-}
-
-pk_use 'bellinitte/uxntal.vim'
-
---
--- Language Server
---
-
--- Basic commands
-pk_use 'nanotee/nvim-lsp-basics'
-
--- Show Code Outline/Symbols tree window
-pk_use {
- 'stevearc/aerial.nvim',
- config = function()
- require('conftool').map('n', '<Leader>e', ':AerialToggle<LF>')
- require('aerial').setup({
- backends = { 'lsp', 'markdown', 'man' },
- layout = {
- min_width = 25
- }
- })
- end
-}
-
--- Language Server Installer
-pk_use {
- 'williamboman/mason.nvim',
- config = function()
- require('mason').setup {
- ui = {
- icons = {
- package_installed = "i",
- package_pending = "p",
- package_uninstalled = "u"
- }
- }
- }
- end
-}
-pk_use {
- 'williamboman/mason-lspconfig.nvim',
- requires = {
- 'neovim/nvim-lspconfig',
- 'williamboman/mason.nvim',
- 'ms-jpq/coq_nvim',
- 'stevearc/aerial.nvim'
- },
- config = function()
- local masonlsp = require 'mason-lspconfig'
- --[[
- masonlsp.setup {
- ensure_installed = {
- "bashls",
- "clangd",
- "html",
- "jsonls",
- "lua_ls",
- "pyright",
- "texlab",
- "tsserver"
- },
- }
- --]]
- masonlsp.setup_handlers {
- function(server_name)
- require('lspconfig')[server_name].setup(require('coq').lsp_ensure_capabilities {
- on_attach = function(client, bufnr)
- local basics = require('lsp_basics')
- basics.make_lsp_commands(client, bufnr)
- basics.make_lsp_mappings(client, bufnr)
- end
- })
- end
- }
- end
-}
-
-pk_use {
- 'neovim/nvim-lspconfig',
- config = function()
- -- disable inline error messages
- vim.diagnostic.config({ virtual_text = false })
- end
-}
-
--- Show code diagnostics in a separate buffer window
-pk_use {
- 'folke/trouble.nvim',
- config = function()
- require('trouble').setup {
- height = 6,
- icons = false,
- fold_open = "v",
- fold_closed = ">",
- signs = {
- error = "E:",
- warning = "W:",
- hint = "H:",
- information = "I:"
- },
- use_diagnostic_signs = false
- }
-
- require('conftool').map('n', '<Leader>t', ':TroubleToggle<CR>')
- end
-}
-
---[[
--- Latex Live Preview
---
-pk_use {
- 'xuhdev/vim-latex-live-preview',
- ft = 'tex',
- setup = function()
- vim.g.livepreview_previewer = require('defs').external_pdfviewer
- vim.g.livepreview_engine = "xelatex"
- end
-}]]
-
---
--- Markdown Live Preview
---
-pk_use {
- "iamcco/markdown-preview.nvim",
- ft = 'markdown',
- run = function()
- vim.fn["mkdp#util#install"]()
- end,
- config = function()
- vim.g.mkdp_theme = 'light'
- end
-}
-
--- Debugger Adapter Protocol
---[[
-pk_use {
- 'mfussenegger/nvim-dap',
- config = function()
- local dap = require('dap')
-
- end
-}
---]]
-
---
--- Misc
---
-pk_use {
- "rest-nvim/rest.nvim",
- requires = { "nvim-lua/plenary.nvim" },
- config = function()
-
- -- commands
- local ct = require('conftool')
- ct.defcmd('RestNvim', 'lua require(\'rest-nvim\').run()<CR>')
- ct.defcmd('RestNvimPreview', 'lua require(\'rest-nvim\').run(true)<CR>')
- ct.defcmd('RestNvimLast', 'lua require(\'rest-nvim\').last()<CR>')
-
- ct.map('n', '<Leader>r', '<Plug>RestNvim<CR>')
- ct.map('n', '<Leader>R', '<Plug>RestNvimLast<CR>')
- ct.map('n', '<Leader><A-r>', '<Plug>RestNvimPreview<CR>')
-
- require("rest-nvim").setup({
- -- Open request results in a horizontal split
- result_split_horizontal = true,
- -- Keep the http file buffer above|left when split horizontal|vertical
- result_split_in_place = true,
- result = {
- show_curl_command = false,
- }
- })
- end
-}
diff --git a/lua/lazy_conf.lua b/lua/lazy_conf.lua
new file mode 100644
index 0000000..5398756
--- /dev/null
+++ b/lua/lazy_conf.lua
@@ -0,0 +1,14 @@
+require("lazy").setup({
+ defaults = {
+ lazy = true,
+ },
+ spec = {
+ -- import your plugins
+ { import = "plugins" },
+ },
+ -- Configure any other settings here. See the documentation for more details.
+ -- colorscheme that will be used when installing plugins.
+ install = { colorscheme = { "onedark" } },
+ -- automatically check for plugin updates
+ checker = { enabled = true },
+})
diff --git a/lua/misc.lua b/lua/misc.lua
index abe5d07..1fe2c30 100644
--- a/lua/misc.lua
+++ b/lua/misc.lua
@@ -1,5 +1,4 @@
local ct = require('conftool')
-local pk_use = require('packer').use
--
-- Encoding
@@ -29,23 +28,6 @@ ct.augroup('AutoSaveFolds', {
--
ct.set({'spelllang', {'en', 'cjk', 'id'}})
ct.set({'spellsuggest', {'best', 5}})
-
---
--- Focus Mode
---
-pk_use {
- 'junegunn/goyo.vim',
- cmd = 'Goyo'
-}
-
---
--- Multi-cursor
---
-pk_use {
- 'mg979/vim-visual-multi',
- keys = {"<C-Up>", "<C-Down>"}
-}
-
--
-- Netrw built-in file manager
--
@@ -66,4 +48,3 @@ vim.cmd('autocmd BufEnter * silent! lcd %:p:h')
-- highlighting for other langs in markdown docs
vim.g.markdown_fenced_languages = {'html', 'vim', 'python', 'c', 'bash=sh'}
-- auto close delimiters (eg. parentheses, brackets)
-pk_use 'Raimondi/delimitMate'
diff --git a/lua/plugins/10_ide.lua b/lua/plugins/10_ide.lua
new file mode 100644
index 0000000..73ae12f
--- /dev/null
+++ b/lua/plugins/10_ide.lua
@@ -0,0 +1,234 @@
+return {
+ {
+ 'nvim-treesitter/nvim-treesitter',
+ build = ':TSUpdate',
+ event = { "VeryLazy" },
+ lazy = vim.fn.argc(-1) == 0,
+ opts = {
+ ensure_installed = {
+ "bash",
+ "bibtex",
+ "c",
+ "cpp",
+ "css",
+ "go",
+ "html",
+ "http",
+ "javascript",
+ "json",
+ "latex",
+ "lua",
+ "python",
+ "typescript",
+ "tsx",
+ "vim",
+ },
+ sync_install = false,
+ highlight = {
+ enable = true,
+ },
+ },
+ },
+
+ --
+ -- Autocompletion
+ --
+ {
+ 'ms-jpq/coq.artifacts',
+ branch = 'artifacts'
+ },
+ {
+ 'ms-jpq/coq_nvim',
+ dependencies = { 'ms-jpq/coq.artifacts' },
+ branch = 'coq',
+ build = ':COQdeps',
+ config = function()
+ vim.cmd([[autocmd VimEnter * COQnow -s]])
+ end
+ },
+
+ --
+ -- Language Configurations
+ --
+ { 'ap/vim-css-color', lazy = false },
+ -- close tags in html languages
+ {
+ 'alvan/closetag.vim',
+ ft = { "html", "vue", "typescriptreact" },
+ },
+
+ {
+ 'udalov/kotlin-vim',
+ ft = 'kotlin'
+ },
+
+ { 'bellinitte/uxntal.vim', lazy = false },
+
+ --
+ -- Language Server
+ --
+
+ -- Show Code Outline/Symbols tree window
+ {
+ 'stevearc/aerial.nvim',
+ opts = {
+ backends = { 'lsp', 'markdown', 'man' },
+ layout = {
+ min_width = 25
+ },
+ },
+ keys = {
+ {'<Leader>e', ':AerialToggle<LF>'},
+ }
+ },
+
+ -- Language Server Installer
+ {
+ 'williamboman/mason.nvim',
+ cmd = {
+ "Mason",
+ "MasonInstall",
+ "MasonUpdate",
+
+ },
+ opts = {
+ ui = {
+ icons = {
+ package_installed = "i",
+ package_pending = "p",
+ package_uninstalled = "u"
+ },
+ },
+ },
+ },
+ {
+ 'neovim/nvim-lspconfig',
+ config = function()
+ -- disable inline error messages
+ vim.diagnostic.config({ virtual_text = false })
+ end
+ },
+ {
+ 'williamboman/mason-lspconfig.nvim',
+ dependencies = {
+ 'ms-jpq/coq_nvim',
+ 'nanotee/nvim-lsp-basics',
+ 'neovim/nvim-lspconfig',
+ 'stevearc/aerial.nvim',
+ 'williamboman/mason.nvim',
+ },
+ opts = {
+ ensure_installed = {
+ "bashls",
+ "clangd",
+ "ast_grep",
+ "gopls",
+ "html",
+ "jsonls",
+ "lua_ls",
+ "pyright",
+ "texlab",
+ "tsserver"
+ },
+ },
+ ft = {
+ "bash",
+ "c",
+ "cpp",
+ "dart",
+ "go",
+ "html",
+ "javascript",
+ "javascriptreact",
+ "json",
+ "lua",
+ "python",
+ "tex",
+ "typescript",
+ "typescriptreact",
+ },
+ config = function()
+ local masonlsp = require 'mason-lspconfig'
+ --[[
+ masonlsp.setup
+ --]]
+ masonlsp.setup_handlers {
+ function(server_name)
+ require('lspconfig')[server_name].setup(require('coq').lsp_ensure_capabilities {
+ on_attach = function(client, bufnr)
+ local basics = require('lsp_basics')
+ basics.make_lsp_commands(client, bufnr)
+ basics.make_lsp_mappings(client, bufnr)
+ end
+ })
+ end
+ }
+ end
+ },
+
+ -- Show code diagnostics in a separate buffer window
+ {
+ 'folke/trouble.nvim',
+ opts = {
+ height = 6,
+ icons = false,
+ fold_open = "v",
+ fold_closed = ">",
+ signs = {
+ error = "E:",
+ warning = "W:",
+ hint = "H:",
+ information = "I:"
+ },
+ use_diagnostic_signs = false
+ },
+
+ cmd = {
+ "TroubleToggle",
+ },
+
+ keys = {
+ {'<Leader>t', ':TroubleToggle<CR>'},
+ }
+ },
+ --
+ -- Markdown Live Preview
+ --
+ {
+ "iamcco/markdown-preview.nvim",
+ ft = 'markdown',
+ config = function()
+ vim.fn["mkdp#util#install"]()
+ vim.g.mkdp_theme = 'light'
+ end
+ },
+
+ --
+ -- Misc
+ --
+ {
+ "rest-nvim/rest.nvim",
+ dependencies = { "nvim-lua/plenary.nvim" },
+ opts = {
+ -- Open request results in a horizontal split
+ result_split_horizontal = true,
+ -- Keep the http file buffer above|left when split horizontal|vertical
+ result_split_in_place = true,
+ result = {
+ show_curl_command = false,
+ },
+ },
+ keys = {
+ {'<Leader>r', '<Plug>RestNvim<CR>'},
+ {'<Leader>R', '<Plug>RestNvimLast<CR>'},
+ {'<Leader><A-r>', '<Plug>RestNvimPreview<CR>'},
+ },
+ config = function()
+ -- commands
+ local ct = require('conftool')
+ ct.defcmd('RestNvim', 'lua require(\'rest-nvim\').run()<CR>')
+ ct.defcmd('RestNvimPreview', 'lua require(\'rest-nvim\').run(true)<CR>')
+ ct.defcmd('RestNvimLast', 'lua require(\'rest-nvim\').last()<CR>')
+ end,
+ },
+}
diff --git a/lua/plugins/50_ui.lua b/lua/plugins/50_ui.lua
new file mode 100644
index 0000000..1382bf1
--- /dev/null
+++ b/lua/plugins/50_ui.lua
@@ -0,0 +1,53 @@
+return {
+ --
+ -- Theme
+ --
+ {
+ 'navarasu/onedark.nvim',
+ lazy = false,
+ config = function()
+ local ct = require('conftool')
+ ct.set({'background', 'light'})
+ vim.cmd [[colo onedark]]
+ end,
+ keys = {
+ {
+ '<Leader>c',
+ function()
+ if vim.o.background == 'light' then
+ vim.o.background = 'dark'
+ else
+ vim.o.background = 'light'
+ -- vim.api.nvim_set_hl(0, 'ColorColumn', {bg = '#c0bfbc'})
+ vim.cmd('redraw')
+ vim.cmd('redraw')
+ end
+ end,
+ desc = 'toggle color themes'
+ },
+ },
+
+ },
+
+ --
+ -- Indentation
+ --
+ {
+ 'nathanaelkane/vim-indent-guides',
+ lazy = false,
+ setup = function()
+ vim.g.indent_guides_guide_size = 1
+ vim.g.indent_guides_tab_guides = 0
+ vim.g.indent_guides_start_level = 2
+ vim.g.indent_guides_enable_on_vim_startup = 1
+ end
+ },
+ --
+ -- Delimiters
+ --
+ {
+ 'hiphish/rainbow-delimiters.nvim',
+ lazy = false,
+ }
+
+}
diff --git a/lua/plugins/90_misc.lua b/lua/plugins/90_misc.lua
new file mode 100644
index 0000000..41acb67
--- /dev/null
+++ b/lua/plugins/90_misc.lua
@@ -0,0 +1,19 @@
+return {
+ --
+ -- Focus Mode
+ --
+ {
+ 'junegunn/goyo.vim',
+ cmd = 'Goyo'
+ },
+
+ --
+ -- Multi-cursor
+ --
+ {
+ 'mg979/vim-visual-multi',
+ lazy = false
+ },
+ { 'Raimondi/delimitMate', lazy = false }
+}
+
diff --git a/lua/ui.lua b/lua/ui.lua
index c9c0bfb..f856e00 100644
--- a/lua/ui.lua
+++ b/lua/ui.lua
@@ -1,68 +1,6 @@
-local pk_use = require 'packer'.use
local ct = require 'conftool'
--
--- Theme
---
-
-pk_use {
- 'Mofiqul/adwaita.nvim',
- config = function()
- local ct = require('conftool')
- ct.set({'background', 'dark'})
- -- vim.g.adwaita_darker = true
- vim.cmd [[colo adwaita]]
- vim.keymap.set(
- 'n',
- '<Leader>c',
- function()
- if vim.o.background == 'light' then
- vim.o.background = 'dark'
- else
- vim.o.background = 'light'
- vim.api.nvim_set_hl(0, 'ColorColumn', {bg = '#c0bfbc'})
- vim.cmd('redraw')
- vim.cmd('redraw')
- end
- end,
- {noremap = true}
- )
-
- end
-}
-
-
---
--- Buffer Bar
---
---[[
-pk_use {
- 'romgrk/barbar.nvim',
- config = function()
- require('bufferline').setup {
- animation = false,
- auto_hide = true,
- icons = {
- filetype = {
- custom_colors = false,
- enabled = false
- },
- inactive = {left = ' '},
- modified = {button = '*'},
- -- separator = {left = '|'},
- pinned = {button = '!'},
- button = 'X'
- },
- sidebar_filetypes = {
- aerial = true,
- netrw = true
- }
- }
- end
-}
---]]
-
---
-- Indentation
--
vim.cmd('filetype plugin indent on')
@@ -74,15 +12,6 @@ ct.set({'tabstop', 5}, {'shiftwidth', 5})
--
vim.opt.list = true
--vim.cmd([[set lcs=tab:\|\ ]])
-pk_use {
- 'nathanaelkane/vim-indent-guides',
- setup = function()
- vim.g.indent_guides_guide_size = 1
- vim.g.indent_guides_tab_guides = 0
- vim.g.indent_guides_start_level = 2
- vim.g.indent_guides_enable_on_vim_startup = 1
- end
-}
--
-- Misc.
@@ -98,11 +27,6 @@ ct.set(
{'wrapmargin', 0}
)
--- Rainbow Delimiters
-pk_use {
- 'hiphish/rainbow-delimiters.nvim',
-}
-
-- dont show line number in terminal window
vim.cmd('autocmd TermOpen * setlocal nonu')
-- turn on mouse