feat: fix eslint and add ts/js debugging

This commit is contained in:
Stevan Freeborn
2025-01-17 13:43:53 -06:00
parent 45646f8956
commit f074fcd53e
3 changed files with 182 additions and 112 deletions
+78 -39
View File
@@ -1,46 +1,85 @@
return { return {
"mfussenegger/nvim-dap", "mfussenegger/nvim-dap",
dependencies = { dependencies = {
"rcarriga/nvim-dap-ui", "rcarriga/nvim-dap-ui",
"nvim-neotest/nvim-nio", "nvim-neotest/nvim-nio",
}, },
config = function() config = function()
local dap = require("dap") local dap = require("dap")
local dapui = require("dapui") local dapui = require("dapui")
dapui.setup() dapui.setup()
dap.adapters.coreclr = { dap.adapters["pwa-node"] = {
type = 'executable', type = "server",
command = 'C:/Users/sfree/AppData/Local/nvim-data/mason/packages/netcoredbg/netcoredbg/netcoredbg.exe', host = "localhost",
args = {'--interpreter=vscode'} port = "${port}",
} executable = {
command = "node",
args = { "C:/Users/sfree/AppData/Local/nvim-data/vscode-js-debug/src/dapDebugServer.js", "${port}" },
},
}
dap.configurations.cs = { for _, language in ipairs({ "typescript", "javascript" }) do
{ dap.configurations[language] = {
type = "coreclr", {
name = "launch - netcoredbg", type = "pwa-node",
request = "launch", request = "launch",
program = function() name = "Launch file",
return vim.fn.input('Path to dll', vim.fn.getcwd() .. '/bin/Debug/', 'file') program = "${file}",
end, cwd = "${workspaceFolder}",
}, },
} {
type = "pwa-node",
dap.listeners.before.attach.dapui_config = function() request = "attach",
dapui.open() name = "Attach",
end processId = require('dap.utils').pick_process,
dap.listeners.before.launch.dapui_config = function() cwd = "${workspaceFolder}",
dapui.open() }
end }
dap.listeners.before.event_terminated.dapui_config = function()
dapui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
dapui.close()
end end
vim.keymap.set("n", "<Leader>dt", dap.toggle_breakpoint, {}) dap.configurations.javascript = {
vim.keymap.set("n", "<Leader>dc", dap.continue, {}) {
end, type = "pwa-node",
request = "launch",
name = "Launch file",
program = "${file}",
cwd = "${workspaceFolder}",
},
}
dap.adapters.coreclr = {
type = "executable",
command = "C:/Users/sfree/AppData/Local/nvim-data/mason/packages/netcoredbg/netcoredbg/netcoredbg.exe",
args = { "--interpreter=vscode" },
}
dap.configurations.cs = {
{
type = "coreclr",
name = "launch - netcoredbg",
request = "launch",
program = function()
return vim.fn.input("Path to dll", vim.fn.getcwd() .. "/bin/Debug/", "file")
end,
},
}
dap.listeners.before.attach.dapui_config = function()
dapui.open()
end
dap.listeners.before.launch.dapui_config = function()
dapui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
dapui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
dapui.close()
end
vim.keymap.set("n", "<Leader>dt", dap.toggle_breakpoint, {})
vim.keymap.set("n", "<Leader>dc", dap.continue, {})
end,
} }
+104 -69
View File
@@ -1,81 +1,116 @@
return { return {
{ {
"williamboman/mason.nvim", "williamboman/mason.nvim",
config = function() config = function()
require("mason").setup() require("mason").setup()
end end,
}, },
{ {
"williamboman/mason-lspconfig.nvim", "williamboman/mason-lspconfig.nvim",
lazy = false, lazy = false,
opts = { opts = {
auto_install = true, auto_install = true,
} },
}, },
{ {
"neovim/nvim-lspconfig", "neovim/nvim-lspconfig",
dependencies = { 'hoffs/omnisharp-extended-lsp.nvim' }, dependencies = { "hoffs/omnisharp-extended-lsp.nvim" },
lazy = false, lazy = false,
config = function() config = function()
local lspconfig = require("lspconfig") local lspconfig = require("lspconfig")
local capabilities = require("cmp_nvim_lsp").default_capabilities() local capabilities = require("cmp_nvim_lsp").default_capabilities()
lspconfig.omnisharp.setup({ lspconfig.eslint.setup({
handlers = { on_attach = function(_, bufnr)
["textDocument/definition"] = require("omnisharp_extended").handler, vim.api.nvim_create_autocmd("BufWritePre", {
}, buffer = bufnr,
cmd = { "dotnet", "C:/Users/sfree/AppData/Local/nvim-data/omnisharp/OmniSharp.dll" }, command = "EslintFixAll",
capabilities = capabilities, })
settings = { end,
FormattingOptions = {
EnableEditorConfigSupport = true,
OrganizeImports = true,
},
Sdk = {
IncludePrereleases = true,
},
},
}) })
lspconfig.lua_ls.setup({ lspconfig.omnisharp.setup({
capabilities = capabilities, handlers = {
}) ["textDocument/definition"] = require("omnisharp_extended").handler,
},
cmd = { "dotnet", "C:/Users/sfree/AppData/Local/nvim-data/omnisharp/OmniSharp.dll" },
capabilities = capabilities,
settings = {
FormattingOptions = {
EnableEditorConfigSupport = true,
OrganizeImports = true,
},
Sdk = {
IncludePrereleases = true,
},
},
})
lspconfig.ts_ls.setup({ lspconfig.lua_ls.setup({
capabilities = capabilities, capabilities = capabilities,
}) })
lspconfig.html.setup({ lspconfig.ts_ls.setup({
capabilities = capabilities, capabilities = capabilities,
}) })
lspconfig.cssls.setup({ lspconfig.html.setup({
capabilities = capabilities, capabilities = capabilities,
}) })
lspconfig.cssmodules_ls.setup({ lspconfig.cssls.setup({
capabilities = capabilities, capabilities = capabilities,
}) })
vim.api.nvim_create_autocmd('LspAttach', { vim.api.nvim_create_autocmd("LspAttach", {
group = vim.api.nvim_create_augroup('UserLspConfig', {}), group = vim.api.nvim_create_augroup("UserLspConfig", {}),
callback = function(ev) callback = function(ev)
local client = vim.lsp.get_client_by_id(ev.data.client_id) local client = vim.lsp.get_client_by_id(ev.data.client_id)
local omnisharp = require('omnisharp_extended'); local omnisharp = require("omnisharp_extended")
if client.name == "omnisharp" then if client.name == "omnisharp" then
vim.keymap.set('n', 'gd', omnisharp.lsp_definition, { desc = "Go to definition", buffer = ev.buf }) vim.keymap.set(
vim.keymap.set('n', 'gi', omnisharp.lsp_implementation, { desc = "Go to implementation", buffer = ev.buf }) "n",
vim.keymap.set('n', '<leader>D', omnisharp.lsp_type_definition, { desc = "Go to type definition", buffer = ev.buf }) "gd",
else omnisharp.lsp_definition,
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, { desc = "Go to definition", buffer = ev.buf }) { desc = "Go to definition", buffer = ev.buf }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, { desc = "Go to declaration", buffer = ev.buf }) )
vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, { desc = "Go to implementation", buffer = ev.buf }) vim.keymap.set(
end "n",
"gi",
omnisharp.lsp_implementation,
{ desc = "Go to implementation", buffer = ev.buf }
)
vim.keymap.set(
"n",
"<leader>D",
omnisharp.lsp_type_definition,
{ desc = "Go to type definition", buffer = ev.buf }
)
else
vim.keymap.set(
"n",
"gd",
vim.lsp.buf.definition,
{ desc = "Go to definition", buffer = ev.buf }
)
vim.keymap.set(
"n",
"gD",
vim.lsp.buf.declaration,
{ desc = "Go to declaration", buffer = ev.buf }
)
vim.keymap.set(
"n",
"gi",
vim.lsp.buf.implementation,
{ desc = "Go to implementation", buffer = ev.buf }
)
end
vim.keymap.set('n', 'K', vim.lsp.buf.hover, { desc = "Display symbol info", buffer = ev.buf }) vim.keymap.set("n", "K", vim.lsp.buf.hover, { desc = "Display symbol info", buffer = ev.buf })
end end,
}) })
end end,
} },
} }
-4
View File
@@ -1,8 +1,5 @@
return { return {
"nvimtools/none-ls.nvim", "nvimtools/none-ls.nvim",
dependencies = {
"nvimtools/none-ls-extras.nvim",
},
config = function() config = function()
local null_ls = require("null-ls") local null_ls = require("null-ls")
@@ -12,7 +9,6 @@ return {
null_ls.builtins.formatting.prettier, null_ls.builtins.formatting.prettier,
null_ls.builtins.formatting.black, null_ls.builtins.formatting.black,
null_ls.builtins.formatting.isort, null_ls.builtins.formatting.isort,
require("none-ls.diagnostics.eslint_d"),
null_ls.builtins.diagnostics.pylint, null_ls.builtins.diagnostics.pylint,
null_ls.builtins.completion.spell, null_ls.builtins.completion.spell,
} }