aboutsummaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorTrey Bastian <hello@treybastian.com>2026-02-19 11:27:04 +0000
committerTrey Bastian <hello@treybastian.com>2026-02-19 11:27:04 +0000
commit7f72818a2a8b79dd0f88157bfff430a2c08b0242 (patch)
treefa8ad2ad1255aa3b3a73f400fef0f4d8c295abbf /lua
parent6edc72539468ed40101c56288ba6a4c10c85d382 (diff)
streamlined lsp formatter linter and debugger setup
Diffstat (limited to 'lua')
-rw-r--r--lua/config/conform.lua6
-rw-r--r--lua/config/init.lua3
-rw-r--r--lua/config/java.lua171
-rw-r--r--lua/config/keys.lua16
-rw-r--r--lua/config/lint.lua11
-rw-r--r--lua/config/lsp.lua30
-rw-r--r--lua/config/mason.lua62
-rw-r--r--lua/config/plugins.lua10
8 files changed, 186 insertions, 123 deletions
diff --git a/lua/config/conform.lua b/lua/config/conform.lua
index 9668b44..e426483 100644
--- a/lua/config/conform.lua
+++ b/lua/config/conform.lua
@@ -11,10 +11,8 @@ end)
require("conform").setup({
formatters_by_ft = {
- lua = { "stylua" }, -- os package manager stylua
- swift = { "swift" }, -- included with swift
- -- prettierd -- os package manager prettierd or npm i -g @fsouza/prettierd
- -- prettier -- should be installed in the project
+ lua = { "stylua" },
+ swift = { "swift" },
javascript = { "prettierd", "prettier" },
javascriptreact = { "prettierd", "prettier" },
typescript = { "prettierd", "prettier" },
diff --git a/lua/config/init.lua b/lua/config/init.lua
index 5cd83e1..96de944 100644
--- a/lua/config/init.lua
+++ b/lua/config/init.lua
@@ -2,7 +2,8 @@ require("config.opts")
require("config.keys")
require("config.git")
require("config.plugins")
-require("config.lsp")
+require("config.mason")
+require("config.lint")
require("config.treesitter")
require("config.telescope")
require("config.conform")
diff --git a/lua/config/java.lua b/lua/config/java.lua
index c2e9de3..a59b495 100644
--- a/lua/config/java.lua
+++ b/lua/config/java.lua
@@ -1,94 +1,91 @@
-vim.pack.add({
- "https://github.com/nvim-java/nvim-java",
- "https://github.com/JavaHello/spring-boot.nvim",
- "https://github.com/iamkarasik/sonarqube.nvim",
-})
+-- only if we have java on our sytem
+if vim.fn.executable("java") == 1 then
+ vim.pack.add({
+ "https://github.com/nvim-java/nvim-java",
+ "https://github.com/JavaHello/spring-boot.nvim",
+ "https://github.com/iamkarasik/sonarqube.nvim",
+ })
-require("java").setup()
+ require("java").setup()
-local function path_to_class(path)
- local name = path:gsub("%.java$", "")
- local class_path = name:match(".*/java/(.*)") or name
- class_path = class_path:gsub("/", ".")
- return class_path
-end
+ local function path_to_class(path)
+ local name = path:gsub("%.java$", "")
+ local class_path = name:match(".*/java/(.*)") or name
+ class_path = class_path:gsub("/", ".")
+ return class_path
+ end
--- find java files only
--- inspired by
--- https://github.com/MuriloGhignatti/nvim-config/blob/main/lua/safe/plugins/fuzzy_finder.lua
-vim.keymap.set("n", "<leader>jc", function()
- require("telescope.builtin").find_files({
- prompt_title = "Java Classes",
- cwd = vim.fn.getcwd(),
- find_command = {
- "rg",
- "--files",
- "--type",
- "java",
- "--glob",
- "!*.properties",
- "--glob",
- "!*Test.java",
- "--glob",
- "!**/test/**",
- },
- path_display = function(_, path)
- return path_to_class(path)
- end,
- previewer = true,
- })
-end)
+ -- find java files only
+ -- inspired by
+ -- https://github.com/MuriloGhignatti/nvim-config/blob/main/lua/safe/plugins/fuzzy_finder.lua
+ vim.keymap.set("n", "<leader>jc", function()
+ require("telescope.builtin").find_files({
+ prompt_title = "Java Classes",
+ cwd = vim.fn.getcwd(),
+ find_command = {
+ "rg",
+ "--files",
+ "--type",
+ "java",
+ "--glob",
+ "!*.properties",
+ "--glob",
+ "!*Test.java",
+ "--glob",
+ "!**/test/**",
+ },
+ path_display = function(_, path)
+ return path_to_class(path)
+ end,
+ previewer = true,
+ })
+ end)
-vim.keymap.set("n", "<leader>jt", function()
- require("telescope.builtin").find_files({
- prompt_title = "Java Tests",
- cwd = vim.fn.getcwd(),
- find_command = {
- "rg",
- "--files",
- "--type",
- "java",
- "--glob",
- "!*.properties",
- "--glob",
- "*Test*.java",
- "--glob",
- "**/test/**.java",
- },
- path_display = function(_, path)
- return path_to_class(path)
- end,
- previewer = true,
- })
-end)
+ vim.keymap.set("n", "<leader>jt", function()
+ require("telescope.builtin").find_files({
+ prompt_title = "Java Tests",
+ cwd = vim.fn.getcwd(),
+ find_command = {
+ "rg",
+ "--files",
+ "--type",
+ "java",
+ "--glob",
+ "!*.properties",
+ "--glob",
+ "*Test*.java",
+ "--glob",
+ "**/test/**.java",
+ },
+ path_display = function(_, path)
+ return path_to_class(path)
+ end,
+ previewer = true,
+ })
+ end)
--- mason sonarqube config
-local extension_path = vim.fn.stdpath("data") .. "/mason/packages/sonarlint-language-server/extension"
+ -- mason sonarqube config
+ local extension_path = vim.fn.stdpath("data") .. "/mason/packages/sonarlint-language-server/extension"
-require("sonarqube").setup({
- lsp = {
- cmd = {
- vim.fn.exepath("java"),
- "-jar",
- extension_path .. "/server/sonarlint-ls.jar",
- "-stdio",
- "-analyzers",
- extension_path .. "/analyzers/sonargo.jar",
- extension_path .. "/analyzers/sonarhtml.jar",
- extension_path .. "/analyzers/sonariac.jar",
- extension_path .. "/analyzers/sonarjava.jar",
- extension_path .. "/analyzers/sonarjavasymbolicexecution.jar",
- extension_path .. "/analyzers/sonarjs.jar",
- extension_path .. "/analyzers/sonarphp.jar",
- extension_path .. "/analyzers/sonarpython.jar",
- extension_path .. "/analyzers/sonartext.jar",
- extension_path .. "/analyzers/sonarxml.jar",
+ require("sonarqube").setup({
+ lsp = {
+ cmd = {
+ vim.fn.exepath("java"),
+ "-jar",
+ extension_path .. "/server/sonarlint-ls.jar",
+ "-stdio",
+ "-analyzers",
+ extension_path .. "/analyzers/sonargo.jar",
+ extension_path .. "/analyzers/sonarhtml.jar",
+ extension_path .. "/analyzers/sonariac.jar",
+ extension_path .. "/analyzers/sonarjava.jar",
+ extension_path .. "/analyzers/sonarjavasymbolicexecution.jar",
+ extension_path .. "/analyzers/sonarjs.jar",
+ extension_path .. "/analyzers/sonarphp.jar",
+ extension_path .. "/analyzers/sonarpython.jar",
+ extension_path .. "/analyzers/sonartext.jar",
+ extension_path .. "/analyzers/sonarxml.jar",
+ },
},
- },
- csharp = {
- enabled = true,
- omnisharpDirectory = extension_path .. "/omnisharp",
- csharpOssPath = extension_path .. "/analyzers/sonarcsharp.jar",
- csharpEnterprisePath = extension_path .. "/analyzers/csharpenterprise.jar",
- },
-})
+ })
+end
diff --git a/lua/config/keys.lua b/lua/config/keys.lua
index 19045c1..8570d93 100644
--- a/lua/config/keys.lua
+++ b/lua/config/keys.lua
@@ -11,3 +11,19 @@ vim.keymap.set("v", "<S-Tab>", "<gv")
vim.keymap.set("n", "<Tab>", "v><C-\\><C-N>")
vim.keymap.set("n", "<S-Tab>", "v<<C-\\><C-N>")
vim.keymap.set("i", "<S-Tab>", "<C-\\><C-N>v<<C-\\><C-N>^i")
+
+vim.keymap.set("n", "grd", function()
+ vim.lsp.buf.definition()
+end)
+
+vim.keymap.set("n", "grl", function()
+ vim.diagnostic.open_float()
+end)
+
+vim.keymap.set("n", "[d", function()
+ vim.diagnostic.jump({ count = -1, float = true })
+end)
+
+vim.keymap.set("n", "]d", function()
+ vim.diagnostic.jump({ count = 1, float = true })
+end)
diff --git a/lua/config/lint.lua b/lua/config/lint.lua
new file mode 100644
index 0000000..344e84e
--- /dev/null
+++ b/lua/config/lint.lua
@@ -0,0 +1,11 @@
+vim.pack.add({ "https://codeberg.org/mfussenegger/nvim-lint" })
+
+require("lint").linters_by_ft = {
+ markdown = { "vale" },
+}
+
+vim.api.nvim_create_autocmd({ "BufWritePost" }, {
+ callback = function()
+ require("lint").try_lint()
+ end,
+})
diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua
deleted file mode 100644
index 2d2db8a..0000000
--- a/lua/config/lsp.lua
+++ /dev/null
@@ -1,30 +0,0 @@
-vim.pack.add({
- { src = "https://github.com/saghen/blink.cmp", version = vim.version.range("*") },
- "https://github.com/neovim/nvim-lspconfig",
- "https://github.com/rafamadriz/friendly-snippets",
- "https://github.com/mason-org/mason-lspconfig.nvim",
- "https://github.com/mason-org/mason.nvim",
-})
-
-require("mason").setup()
-require("mason-lspconfig").setup()
-
-require("blink.cmp").setup({
- signature = { enabled = true },
-})
-
-vim.keymap.set("n", "grd", function()
- vim.lsp.buf.definition()
-end)
-
-vim.keymap.set("n", "grl", function()
- vim.diagnostic.open_float()
-end)
-
-vim.keymap.set("n", "[d", function()
- vim.diagnostic.jump({ count = -1, float = true })
-end)
-
-vim.keymap.set("n", "]d", function()
- vim.diagnostic.jump({ count = 1, float = true })
-end)
diff --git a/lua/config/mason.lua b/lua/config/mason.lua
new file mode 100644
index 0000000..b32bd47
--- /dev/null
+++ b/lua/config/mason.lua
@@ -0,0 +1,62 @@
+vim.pack.add({
+ "https://github.com/mason-org/mason-lspconfig.nvim",
+ "https://github.com/mason-org/mason.nvim",
+ "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim",
+ -- "https://github.com/jay-babu/mason-nvim-dap.nvim",
+})
+
+require("mason").setup()
+-- require("mason-nvim-dap").setup()
+require("mason-lspconfig").setup()
+
+require("mason-tool-installer").setup({
+ ensure_installed = {
+ "vale",
+ "lua_ls",
+ "stylua",
+ "bashls",
+ "emmet-language-server",
+ "ts_ls",
+ "astro",
+ "prettier",
+ "prettierd",
+ "eslint_d",
+ {
+ "jdtls",
+ condition = function()
+ return vim.fn.executable("java") == 1
+ end,
+ },
+ {
+ "vscode-spring-boot-tools",
+ condition = function()
+ return vim.fn.executable("java") == 1
+ end,
+ },
+ {
+ "lemminx",
+ condition = function()
+ return vim.fn.executable("java") == 1
+ end,
+ },
+ {
+ "sonarlint-language-server",
+ condition = function()
+ return vim.fn.executable("java") == 1
+ end,
+ },
+ {
+ "gradle_ls",
+ condition = function()
+ return vim.fn.executable("java") == 1
+ end,
+ },
+ {
+ -- cobol language server requires java
+ "cobol_ls",
+ condition = function()
+ return vim.fn.executable("java") == 1
+ end,
+ },
+ },
+})
diff --git a/lua/config/plugins.lua b/lua/config/plugins.lua
index 2d62c65..784150a 100644
--- a/lua/config/plugins.lua
+++ b/lua/config/plugins.lua
@@ -1,4 +1,4 @@
--- plugins that require no configuration
+-- plugins that require little no configuration
vim.pack.add({
"https://github.com/tpope/vim-eunuch",
"https://github.com/jessarcher/vim-heritage",
@@ -9,9 +9,17 @@ vim.pack.add({
"https://github.com/MunifTanjim/nui.nvim",
"https://github.com/nvim-neotest/nvim-nio",
"https://github.com/nvim-lua/plenary.nvim",
+ "https://github.com/j-hui/fidget.nvim",
+ "https://github.com/neovim/nvim-lspconfig",
+ "https://github.com/rafamadriz/friendly-snippets",
+ { src = "https://github.com/saghen/blink.cmp", version = vim.version.range("*") },
})
require("nvim-autopairs").setup()
require("nvim-surround").setup()
+require("fidget").setup()
+require("blink.cmp").setup({
+ signature = { enabled = true },
+})
vim.cmd([[colorscheme gruvbox]])