From 47e0a0b2865add67d381d671f4e8202e8d3808b3 Mon Sep 17 00:00:00 2001 From: Youwen Wu Date: Sat, 1 Mar 2025 21:32:04 -0800 Subject: [PATCH] feat: add purescript support for real --- flake.nix | 3 +++ fnl/lsp/init.fnl | 7 ++++++- fnl/plugins/lz-spec.fnl | 1 + lua/lsp/init.lua | 2 +- lua/plugins/lz-spec.lua | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/flake.nix b/flake.nix index 883dbfb..f7612f0 100644 --- a/flake.nix +++ b/flake.nix @@ -237,6 +237,9 @@ # fennel nfnl + + # purescript + purescript-vim ]; }; diff --git a/fnl/lsp/init.fnl b/fnl/lsp/init.fnl index 4524d19..6199f97 100644 --- a/fnl/lsp/init.fnl +++ b/fnl/lsp/init.fnl @@ -22,5 +22,10 @@ :typst]}) (lspconfig.fennel_ls.setup {}) (lspconfig.elmls.setup {}) - (lspconfig.purescriptls.setup {})) + (lspconfig.purescriptls.setup {:command :purescript-language-server + :args [:stdio "--config {}"] + :filetypes [:purescript] + :rootPatterns [:bower.json + :psc-package.json + :spago.dhall]})) {})} diff --git a/fnl/plugins/lz-spec.fnl b/fnl/plugins/lz-spec.fnl index 6429d1f..4f7ec1f 100644 --- a/fnl/plugins/lz-spec.fnl +++ b/fnl/plugins/lz-spec.fnl @@ -15,6 +15,7 @@ (require :plugins.obsidian) (require :plugins.starter) [:vim-wakatime] + [:purescript-vim] [:clangd_extensions.nvim] [:vim-sleuth] {1 :nvim-lspconfig :after (. (require :lsp) :setup) :event :BufEnter} diff --git a/lua/lsp/init.lua b/lua/lsp/init.lua index b315af7..80e9278 100644 --- a/lua/lsp/init.lua +++ b/lua/lsp/init.lua @@ -19,7 +19,7 @@ local function _1_() lspconfig.vale_ls.setup({filetypes = {"markdown", "text", "tex", "rst", "typst"}}) lspconfig.fennel_ls.setup({}) lspconfig.elmls.setup({}) - lspconfig.purescriptls.setup({}) + lspconfig.purescriptls.setup({command = "purescript-language-server", args = {"stdio", "--config {}"}, filetypes = {"purescript"}, rootPatterns = {"bower.json", "psc-package.json", "spago.dhall"}}) end return {} end diff --git a/lua/plugins/lz-spec.lua b/lua/plugins/lz-spec.lua index dfb0572..567f85d 100644 --- a/lua/plugins/lz-spec.lua +++ b/lua/plugins/lz-spec.lua @@ -103,4 +103,4 @@ local function _25_() end return vim.keymap.set("n", "fe", _28_) end -return {require("plugins.blink-cmp"), require("plugins.telescope"), require("plugins.oil"), require("plugins.harpoon"), require("plugins.lualine"), require("plugins.conform"), require("plugins.lsp-progress"), require("plugins.gitsigns"), require("plugins.autopairs"), require("plugins.trouble"), require("plugins.render-markdown"), require("plugins.toggleterm"), require("plugins.by-lang.latex"), require("plugins.neogit"), require("plugins.obsidian"), require("plugins.starter"), {"vim-wakatime"}, {"clangd_extensions.nvim"}, {"vim-sleuth"}, {"nvim-lspconfig", after = require("lsp").setup, event = "BufEnter"}, {"which-key.nvim", after = _1_}, {"nvim-web-devicons"}, {"markdown-preview.nvim", filetypes = {"markdown"}}, {"typst-preview.nvim", after = _2_, filetypes = {"*.typ"}}, {"mini.ai", after = _3_, event = "BufEnter"}, {"mini.surround", after = _4_, event = "BufEnter"}, {"fidget.nvim", after = _5_}, {"cellular-automaton.nvim", cmd = "CellularAutomaton", keys = {{"mr", _6_, desc = "A surprise!", mode = "n"}, {"bruh", _7_, desc = "A surprise!", mode = "n"}}}, {"indent-blankline.nvim", after = _8_}, {"mini.bufremove", after = _9_, keys = {{"bd", _10_, desc = "Close buffer", mode = {"n", "v"}}}}, {"mini.hipatterns", after = _11_, event = "BufEnter"}, {"undotree", cmd = "UndotreeToggle", keys = {{"u", _12_, desc = "Toggle undotree", mode = "n"}}}, {"neocord", after = _13_, event = "BufEnter"}, {"crates.nvim", after = _14_, event = "BufRead Cargo.toml"}, {"rustaceanvim"}, {"haskell-tools.nvim", after = _15_}, {"typescript-tools.nvim", after = _17_, filetypes = {"typescriptreact", "typescript", "javascript", "svelte", "javascriptreact"}}, {"lsp_lines.nvim", after = _18_, event = "LspAttach"}, {"tailwind-tools.nvim", after = _19_}, {"blink-ripgrep", lazy = true}, {"blink.compat", lazy = true}, {"lazydev.nvim", after = _21_, filetypes = {"lua"}}, {"rose-pine", colorscheme = {"rose-pine", "rose-pine-dawn", "rose-pine-moon", "rose-pine-main"}}, {"oxocarbon.nvim", colorscheme = {"oxocarbon"}}, {"pomo-nvim", after = _22_, cmd = {"TimerStart", "TimerRepeat", "TimerSession"}, keys = {{"fp", _23_, desc = "Manage Pomodori Timers"}}}, {"dropbar.nvim", after = _24_}, {"mini.files", after = _25_}, {"nfnl", ft = {"fennel"}}} +return {require("plugins.blink-cmp"), require("plugins.telescope"), require("plugins.oil"), require("plugins.harpoon"), require("plugins.lualine"), require("plugins.conform"), require("plugins.lsp-progress"), require("plugins.gitsigns"), require("plugins.autopairs"), require("plugins.trouble"), require("plugins.render-markdown"), require("plugins.toggleterm"), require("plugins.by-lang.latex"), require("plugins.neogit"), require("plugins.obsidian"), require("plugins.starter"), {"vim-wakatime"}, {"purescript-vim"}, {"clangd_extensions.nvim"}, {"vim-sleuth"}, {"nvim-lspconfig", after = require("lsp").setup, event = "BufEnter"}, {"which-key.nvim", after = _1_}, {"nvim-web-devicons"}, {"markdown-preview.nvim", filetypes = {"markdown"}}, {"typst-preview.nvim", after = _2_, filetypes = {"*.typ"}}, {"mini.ai", after = _3_, event = "BufEnter"}, {"mini.surround", after = _4_, event = "BufEnter"}, {"fidget.nvim", after = _5_}, {"cellular-automaton.nvim", cmd = "CellularAutomaton", keys = {{"mr", _6_, desc = "A surprise!", mode = "n"}, {"bruh", _7_, desc = "A surprise!", mode = "n"}}}, {"indent-blankline.nvim", after = _8_}, {"mini.bufremove", after = _9_, keys = {{"bd", _10_, desc = "Close buffer", mode = {"n", "v"}}}}, {"mini.hipatterns", after = _11_, event = "BufEnter"}, {"undotree", cmd = "UndotreeToggle", keys = {{"u", _12_, desc = "Toggle undotree", mode = "n"}}}, {"neocord", after = _13_, event = "BufEnter"}, {"crates.nvim", after = _14_, event = "BufRead Cargo.toml"}, {"rustaceanvim"}, {"haskell-tools.nvim", after = _15_}, {"typescript-tools.nvim", after = _17_, filetypes = {"typescriptreact", "typescript", "javascript", "svelte", "javascriptreact"}}, {"lsp_lines.nvim", after = _18_, event = "LspAttach"}, {"tailwind-tools.nvim", after = _19_}, {"blink-ripgrep", lazy = true}, {"blink.compat", lazy = true}, {"lazydev.nvim", after = _21_, filetypes = {"lua"}}, {"rose-pine", colorscheme = {"rose-pine", "rose-pine-dawn", "rose-pine-moon", "rose-pine-main"}}, {"oxocarbon.nvim", colorscheme = {"oxocarbon"}}, {"pomo-nvim", after = _22_, cmd = {"TimerStart", "TimerRepeat", "TimerSession"}, keys = {{"fp", _23_, desc = "Manage Pomodori Timers"}}}, {"dropbar.nvim", after = _24_}, {"mini.files", after = _25_}, {"nfnl", ft = {"fennel"}}}