From a0e37ee21395753620f1fa00edcfc68b8f005c28 Mon Sep 17 00:00:00 2001 From: "David T. Sadler" Date: Sat, 1 Aug 2026 21:06:05 +0100 Subject: Add asm lsp and formatter --- nvim/.config/nvim/ftplugin/asm.lua | 26 +++++++++++++++++++++++ nvim/.config/nvim/lua/config/keymaps.lua | 2 +- nvim/.config/nvim/lua/plugins/conform.lua | 1 + nvim/.config/nvim/lua/plugins/nvim-treesitter.lua | 1 + 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 nvim/.config/nvim/ftplugin/asm.lua diff --git a/nvim/.config/nvim/ftplugin/asm.lua b/nvim/.config/nvim/ftplugin/asm.lua new file mode 100644 index 0000000..6fd271e --- /dev/null +++ b/nvim/.config/nvim/ftplugin/asm.lua @@ -0,0 +1,26 @@ +-- https://github.com/grahambates/m68k-lsp +-- Guard check: Only boot the server if the binary is visible in the current shell. +if vim.fn.executable("m68k-lsp-server") == 1 then + vim.lsp.start({ + name = "m68k-lsp", + cmd = { "m68k-lsp-server", "--stdio" }, + root_dir = vim.fs.dirname(vim.fs.find({ ".git", "shell.nix" }, { upward = true })[1]), + init_options = { + processors = { "mc68000" }, + vasm = { + provideDiagnostics = true, + binPath = "vasmm68k_mot", + args = { "-devpac", "-Fhunk" }, + }, + }, + }) +else + vim.diagnostic.set(vim.api.nvim_create_namespace("m68k_notice"), vim.api.nvim_get_current_buf(), { + { + lnum = 0, + col = 0, + severity = vim.diagnostic.severity.WARN, + message = "Amiga Assembler detected, but m68k-lsp-server was not found. Did you forget to enter the nix-shell?", + }, + }) +end diff --git a/nvim/.config/nvim/lua/config/keymaps.lua b/nvim/.config/nvim/lua/config/keymaps.lua index a9bf961..f4e1706 100644 --- a/nvim/.config/nvim/lua/config/keymaps.lua +++ b/nvim/.config/nvim/lua/config/keymaps.lua @@ -247,7 +247,7 @@ end, { desc = "Quickfix List" }) -- Language Formatting and Linting. set("n", "lf", function() - require("conform").format({ bufnr = 0 }) + require("conform").format({ bufnr = 0, lsp_format = "fallback" }) end, { desc = "Format File" }) set("n", "ll", function() require("lint").try_lint() diff --git a/nvim/.config/nvim/lua/plugins/conform.lua b/nvim/.config/nvim/lua/plugins/conform.lua index 94bdb06..dec12cc 100644 --- a/nvim/.config/nvim/lua/plugins/conform.lua +++ b/nvim/.config/nvim/lua/plugins/conform.lua @@ -12,6 +12,7 @@ require("conform").setup({ typescript = { "biome", "prettier", stop_after_first = true }, javascriptreact = { "biome", "prettier", stop_after_first = true }, typescriptreact = { "biome", "prettier", stop_after_first = true }, + asm = { "lsp" }, }, formatters = { php_cs_fixer = { diff --git a/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua b/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua index e646c1b..8a1a474 100644 --- a/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua +++ b/nvim/.config/nvim/lua/plugins/nvim-treesitter.lua @@ -1,6 +1,7 @@ vim.pack.add({ "https://github.com/nvim-treesitter/nvim-treesitter" }) require("nvim-treesitter").install({ + "asm", "bash", "git_config", "git_rebase", -- cgit v1.2.3-13-gbd6f