From 8192ad5f946f1b555e5adc89074130e27226d58d Mon Sep 17 00:00:00 2001 From: Hoang Nguyen Date: Sat, 30 Mar 2024 00:00:00 +0700 Subject: [PATCH] pkgs: manually compile rescript-language-server It depends on an internal rescript-editor-analysis binary. The precompiled one doesn't run on AlpineLinux. --- lazy-lock.json | 83 +++++++++++----------- lua/user/plugins/lsp/lspconfig/servers.lua | 2 +- lua/user/plugins/tools/init.lua | 9 ++- lua/user/themes/nord/groups/plugins.lua | 1 + pkgs.yaml | 36 +++++++++- 5 files changed, 86 insertions(+), 45 deletions(-) diff --git a/lazy-lock.json b/lazy-lock.json index 7a9b3cd..c71d61b 100644 --- a/lazy-lock.json +++ b/lazy-lock.json @@ -1,35 +1,36 @@ { "LuaSnip": { "branch": "master", "commit": "a7a4b4682c4b3e2ba82b82a4e6e5f5a0e79dec32" }, - "SchemaStore.nvim": { "branch": "main", "commit": "9f74c6a52f4f6adaf3b3d64b15d2363219afefae" }, - "aerial.nvim": { "branch": "master", "commit": "993142d49274092c64a2d475aa726df3c323949d" }, + "SchemaStore.nvim": { "branch": "main", "commit": "4ce271f0db8b5224b4d69a43a75c13f5b4dcba43" }, + "aerial.nvim": { "branch": "master", "commit": "24ebacab5821107c50f628e8e7774f105c08fe9b" }, "alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" }, "better-escape.nvim": { "branch": "master", "commit": "7e86edafb8c7e73699e0320f225464a298b96d12" }, "carbon-now.nvim": { "branch": "main", "commit": "4524d2b347830257bb9357d45c4f934960058476" }, - "ccc.nvim": { "branch": "main", "commit": "f3d9d31aab7990d50ae6922fd7c1e3a9eb7da183" }, - "cmp-async-path": { "branch": "main", "commit": "46714d1bed484be0d5ac7d1b078ad4be0f1a7efa" }, + "ccc.nvim": { "branch": "main", "commit": "b95dccc8a7a199728e52f92dfae71e0fe8a08730" }, + "cmp-async-path": { "branch": "main", "commit": "7df7f3721c45aac26b6e0474087538f4681c9c7a" }, "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, "cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" }, "cmp-fish": { "branch": "main", "commit": "8ae7bfb1b3251d433c4adf4e64396ef929fbd91f" }, "cmp-nvim-lsp": { "branch": "main", "commit": "5af77f54de1b16c34b23cba810150689a3a90312" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "conform.nvim": { "branch": "master", "commit": "67ee2258e08ccb91345d52f62484b657feccef25" }, + "conform.nvim": { "branch": "master", "commit": "9d5ba06d6ee7418c674f498634617416d15b6239" }, "dial.nvim": { "branch": "master", "commit": "27eb570085db2ef44bff4f620d3806039184651c" }, "diffview.nvim": { "branch": "main", "commit": "3dc498c9777fe79156f3d32dddd483b8b3dbd95f" }, "dressing.nvim": { "branch": "master", "commit": "18e5beb3845f085b6a33c24112b37988f3f93c06" }, - "emmylua-nvim": { "branch": "master", "commit": "66d21c64e0b361f43ec4fe8f288206399bb005ca" }, + "emmylua-nvim": { "branch": "master", "commit": "d0ff4b6dd748cde1c066e6c109b1ab5e480cac6f" }, "flash.nvim": { "branch": "main", "commit": "48817af25f51c0590653bbc290866e4890fe1cbe" }, "flatten.nvim": { "branch": "main", "commit": "92c59ae6200e6b04aff167577ebb8a9035a6d2b3" }, "friendly-snippets": { "branch": "main", "commit": "dcd4a586439a1c81357d5b9d26319ae218cc9479" }, "git-conflict.nvim": { "branch": "main", "commit": "4c8e252b87d54d944c1e56bfb477f78b6fdaf661" }, - "gitsigns.nvim": { "branch": "main", "commit": "4e348641b8206c3b8d23080999e3ddbe4ca90efc" }, + "gitsigns.nvim": { "branch": "main", "commit": "70584ff9aae8078b64430c574079d79620b8f06d" }, "headlines.nvim": { "branch": "master", "commit": "618ef1b2502c565c82254ef7d5b04402194d9ce3" }, "heirline.nvim": { "branch": "master", "commit": "03cff30d7e7d3ba6fdc00925f015822f79cef908" }, "icon-picker.nvim": { "branch": "master", "commit": "3ee9a0ea9feeef08ae35e40c8be6a2fa2c20f2d3" }, "inc-rename.nvim": { "branch": "main", "commit": "6f9b5f9cb237e12935144cdc535322b8c93c1b25" }, "indent-blankline.nvim": { "branch": "master", "commit": "3d08501caef2329aba5121b753e903904088f7e6" }, "iswap.nvim": { "branch": "master", "commit": "ff4f4671909ad859366f96981a617acee3762641" }, - "lazy.nvim": { "branch": "main", "commit": "83493db50a434a4c5c648faf41e2ead80f96e478" }, + "lazy.nvim": { "branch": "main", "commit": "bef521ac89c8d423f9d092e37b58e8af0c099309" }, "lsp_lines.nvim": { "branch": "main", "commit": "6f3defec73f7c87939e800e9afa5d0571b19b401" }, + "luarocks.nvim": { "branch": "main", "commit": "d73f4bbbeea9eeb9b66a0c6431db402654f43cb8" }, "markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" }, "mini.ai": { "branch": "main", "commit": "ee9446a17c160aba6a04ff22097389c41872c878" }, "mini.align": { "branch": "main", "commit": "f845218c5fea89e49074e48270dc5e1b9511a0f9" }, @@ -38,67 +39,67 @@ "mini.comment": { "branch": "main", "commit": "a4b7e46deb9ad2feb8902cc5dbf087eced112ee5" }, "mini.move": { "branch": "main", "commit": "251d541a8ab745e81295a53c128829cb2bff18e3" }, "mini.pairs": { "branch": "main", "commit": "04f58f2545ed80ac3b52dd4826e93f33e15b2af6" }, - "mini.surround": { "branch": "main", "commit": "a1b590cc3b676512de507328d6bbab5e43794720" }, - "neo-tree.nvim": { "branch": "main", "commit": "403a9c5014624dc517b850a360f345340139307c" }, - "neoconf.nvim": { "branch": "main", "commit": "68753daced3b41d6b5e4a441b10a69c1ec33523c" }, - "neogen": { "branch": "main", "commit": "b95347a588401a755eadd17482edc1662876bd58" }, - "neogit": { "branch": "master", "commit": "bc6aca9242bdcf61ea8aa4355e24f7bffb2aa8f3" }, - "neotest": { "branch": "master", "commit": "4440cc2227894c2ae9b0673a30e6cc6f1836e8c2" }, + "mini.surround": { "branch": "main", "commit": "49e0364b8c9a3258b485c5ece40bb0f3a5e94b1c" }, + "neo-tree.nvim": { "branch": "main", "commit": "16d1b194376bf1fc2acd89ccb3c29ba8315bfcea" }, + "neoconf.nvim": { "branch": "main", "commit": "ef304c29977b85c99382fcba821b3f710e144a74" }, + "neogen": { "branch": "main", "commit": "0daffcec249bf42275e322361fe55b89a05ff278" }, + "neogit": { "branch": "master", "commit": "2f2dbbed4920b11f7fb7e3d9b0e1806de1a1503e" }, + "neotest": { "branch": "master", "commit": "e07fe8241112274aae9947b98d255763738a1d52" }, "neotest-go": { "branch": "main", "commit": "6a2f996d89fe4631942e035b1c114544ee045043" }, - "neotest-jest": { "branch": "main", "commit": "959d45b133de938c79e3f064db188680eaf69055" }, + "neotest-jest": { "branch": "main", "commit": "514fd4eae7da15fd409133086bb8e029b65ac43f" }, "neotest-python": { "branch": "master", "commit": "2e83d2bc00acbcc1fd529dbf0a0e677cabfe6b50" }, "neotest-vitest": { "branch": "main", "commit": "102e7494bbe0f205d28c31a3fd75a9dfbcc78c73" }, "neotest-zig": { "branch": "main", "commit": "742f97f971a39d44b4832b432083608834a0e59c" }, - "noice.nvim": { "branch": "main", "commit": "bf67d70bd7265d075191e7812d8eb42b9791f737" }, - "nui.nvim": { "branch": "main", "commit": "3dc46d725f7b94bee5117c0a699b57b1902b5d65" }, - "nvim-cmp": { "branch": "main", "commit": "04e0ca376d6abdbfc8b52180f8ea236cbfddf782" }, - "nvim-cokeline": { "branch": "main", "commit": "7310f192af74c6912ca7a40ae1b16253aa95e50e" }, - "nvim-coverage": { "branch": "main", "commit": "cf4b5c61dfac977026a51a2bcad9173c272986ce" }, - "nvim-dap": { "branch": "master", "commit": "c43c2473ecb482a9d91f32c1d4c0098fffad3c7d" }, + "noice.nvim": { "branch": "main", "commit": "0cbe3f88d038320bdbda3c4c5c95f43a13c3aa12" }, + "nui.nvim": { "branch": "main", "commit": "cbd2668414331c10039278f558630ed19b93e69b" }, + "nvim-cmp": { "branch": "main", "commit": "97dc716fc914c46577a4f254035ebef1aa72558a" }, + "nvim-cokeline": { "branch": "main", "commit": "32929480b1753a5c2a99435e891da9be1e61e0b9" }, + "nvim-coverage": { "branch": "main", "commit": "aa4b4400588e2259e87e372b1e4e90ae13cf5a39" }, + "nvim-dap": { "branch": "master", "commit": "405df1dcc2e395ab5173a9c3d00e03942c023074" }, "nvim-dap-repl-highlights": { "branch": "master", "commit": "902d533b2682c26d6be4f8a4d1dfd895cbba4840" }, - "nvim-dap-ui": { "branch": "master", "commit": "9720eb5fa2f41988e8770f973cd11b76dd568a5d" }, + "nvim-dap-ui": { "branch": "master", "commit": "edfa93f60b189e5952c016eee262d0685d838450" }, "nvim-dap-virtual-text": { "branch": "master", "commit": "baa5b0dc6663284cce32e0d00ac1f2511b13496f" }, - "nvim-lint": { "branch": "master", "commit": "03b1fc593638098a35de26d768d5f43b0fe57041" }, - "nvim-lspconfig": { "branch": "master", "commit": "5b364bd4db0fb68a56ffe427a370920854acb834" }, + "nvim-lint": { "branch": "master", "commit": "2669aabb8362fdc36aced5ba864b7135636ea863" }, + "nvim-lspconfig": { "branch": "master", "commit": "f4619ab31fc4676001ea05ae8200846e6e7700c7" }, "nvim-notify": { "branch": "master", "commit": "5371f4bfc1f6d3adf4fe9d62cd3a9d44356bfd15" }, "nvim-scrollbar": { "branch": "main", "commit": "35f99d559041c7c0eff3a41f9093581ceea534e8" }, - "nvim-spectre": { "branch": "master", "commit": "d1db6c1d37252b5a38f199e2f590c5a1617d9254" }, - "nvim-treesitter": { "branch": "master", "commit": "5b8458c5aa533803febabe31c018030826f86ac7" }, - "nvim-treesitter-context": { "branch": "master", "commit": "b8b7e52c1517d401d7c519787d5dc4528c41291a" }, + "nvim-spectre": { "branch": "master", "commit": "2b012554a2536465243c0dff3605b5927c49ed23" }, + "nvim-treesitter": { "branch": "master", "commit": "6e0b031ebb212e7082bc3007f8b9614cb393465c" }, + "nvim-treesitter-context": { "branch": "master", "commit": "f19766163c18515fb4d3c12d572bf9cba6cdb990" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "d2a4ffc22d9d38d44edb73da007b3cf43451e9b4" }, "nvim-ts-autotag": { "branch": "main", "commit": "531f48334c422222aebc888fd36e7d109cb354cd" }, - "nvim-ts-context-commentstring": { "branch": "main", "commit": "7ab799a9792f7cf3883cf28c6a00ad431f3d382a" }, - "nvim-web-devicons": { "branch": "master", "commit": "cb0c967c9723a76ccb1be0cc3a9a10e577d2f6ec" }, + "nvim-ts-context-commentstring": { "branch": "main", "commit": "734ebad31c81c6198dfe102aa23280937c937c42" }, + "nvim-web-devicons": { "branch": "master", "commit": "3ee60deaa539360518eaab93a6c701fe9f4d82ef" }, "nvim-window-picker": { "branch": "main", "commit": "41cfaa428577c53552200a404ae9b3a0b5719706" }, - "oil.nvim": { "branch": "master", "commit": "32e18df30f937e02135398c270b72a4d24b40120" }, - "orgmode": { "branch": "master", "commit": "c4eeb3d9caa6403583e6d2285627126d70aef691" }, - "overseer.nvim": { "branch": "master", "commit": "b72f6d23ce47ccd427be2341f389c63448278f17" }, + "oil.nvim": { "branch": "master", "commit": "e462a3446505185adf063566f5007771b69027a1" }, + "orgmode": { "branch": "master", "commit": "c79e06c6aa6b0a9a897ba132aca14c77685fedb4" }, + "overseer.nvim": { "branch": "master", "commit": "b04b0b105c07b4f02b3073ea3a98d6eca90bf152" }, "pantran.nvim": { "branch": "main", "commit": "461799624948bfb66f73b20b6fffa7e4c8ca6d08" }, "parinfer-rust": { "branch": "master", "commit": "0e4d52e712641ad351a1bfe6cee3d34d63ed087b" }, "persistence.nvim": { "branch": "main", "commit": "4982499c1636eac254b72923ab826ee7827b3084" }, - "plenary.nvim": { "branch": "master", "commit": "f7adfc4b3f4f91aab6caebf42b3682945fbc35be" }, + "plenary.nvim": { "branch": "master", "commit": "8aad4396840be7fc42896e3011751b7609ca4119" }, "project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" }, - "rainbow-delimiters.nvim": { "branch": "master", "commit": "2200900e3c1aae21dadb65c2ea2e91bcc39ca368" }, - "rest.nvim": { "branch": "main", "commit": "1ce984c694345f3801bc656072f9a8dd51286a04" }, + "rainbow-delimiters.nvim": { "branch": "master", "commit": "580bc045c7ab3ab3ebd267774038c0d8cc19c789" }, + "rest.nvim": { "branch": "main", "commit": "a1221086cfdeb58de393f4bbae11063c6c8c075c" }, "scope.nvim": { "branch": "main", "commit": "cd27af77ad61a7199af5c28d27013fb956eb0e3e" }, - "sniprun": { "branch": "master", "commit": "0079f9c4675a6825f84e108bbff866f67dd8762f" }, + "sniprun": { "branch": "master", "commit": "97daa506e2faa3939e0491642103635f9d22cd04" }, "ssr.nvim": { "branch": "main", "commit": "bb323ba621ac647b4ac5638b47666e3ef3c279e1" }, "stickybuf.nvim": { "branch": "master", "commit": "2160fcd536d81f5fa43f7167dba6634e814e3154" }, - "telescope-file-browser.nvim": { "branch": "master", "commit": "8839e3f8070dfafa5b0c0e4652700298e7b872c4" }, + "telescope-file-browser.nvim": { "branch": "master", "commit": "5ee5002373655fd684a4ad0d47a3de876ceacf9a" }, "telescope-fzf-native.nvim": { "branch": "main", "commit": "9ef21b2e6bb6ebeaf349a0781745549bbb870d27" }, "telescope-tabs": { "branch": "master", "commit": "0a678eefcb71ebe5cb0876aa71dd2e2583d27fd3" }, - "telescope.nvim": { "branch": "master", "commit": "e9e01d699843af530ef4ad2c8679a7e273bb3dd1" }, - "todo-comments.nvim": { "branch": "main", "commit": "833d8dd8b07eeda37a09e99460f72a02616935cb" }, + "telescope.nvim": { "branch": "master", "commit": "1bb28df3cfc241b961331f00dcb8d5b45fe3e4f0" }, + "todo-comments.nvim": { "branch": "main", "commit": "a7e39ae9e74f2c8c6dc4eea6d40c3971ae84752d" }, "toggleterm.nvim": { "branch": "main", "commit": "193786e0371e3286d3bc9aa0079da1cd41beaa62" }, "treesj": { "branch": "main", "commit": "60e27280030f9cd8dfb6ceb335922c6ff76682cc" }, - "trouble.nvim": { "branch": "main", "commit": "f1168feada93c0154ede4d1fe9183bf69bac54ea" }, + "trouble.nvim": { "branch": "main", "commit": "b9cf677f20bb2faa2dacfa870b084e568dca9572" }, "twilight.nvim": { "branch": "main", "commit": "8b7b50c0cb2dc781b2f4262a5ddd57571556d1e4" }, "undotree": { "branch": "master", "commit": "aa93a7e5890dbbebbc064cd22260721a6db1a196" }, "venn.nvim": { "branch": "main", "commit": "e4d68341a73dd56c64955058821a58295fb337b1" }, "vim-log-highlighting": { "branch": "master", "commit": "1037e26f3120e6a6a2c0c33b14a84336dee2a78f" }, "vim-matchup": { "branch": "master", "commit": "2d660e4aa7c566014c667af2cda0458043527902" }, "vim-repeat": { "branch": "master", "commit": "24afe922e6a05891756ecf331f39a1f6743d3d5a" }, - "vim-startuptime": { "branch": "master", "commit": "308b0088a864c4711a96e45b6734cf9294074f65" }, + "vim-startuptime": { "branch": "master", "commit": "ac2cccb5be617672add1f4f3c0a55ce99ba34e01" }, "which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }, "zen-mode.nvim": { "branch": "main", "commit": "78557d972b4bfbb7488e17b5703d25164ae64e6a" } } \ No newline at end of file diff --git a/lua/user/plugins/lsp/lspconfig/servers.lua b/lua/user/plugins/lsp/lspconfig/servers.lua index 056ffcd..c7aef0a 100644 --- a/lua/user/plugins/lsp/lspconfig/servers.lua +++ b/lua/user/plugins/lsp/lspconfig/servers.lua @@ -273,7 +273,7 @@ return { }, rescriptls = { - cmd = { servers_path .. '/rescriptls/node_modules/.bin/rescript-language-server', '--stdio' }, + cmd = { servers_path .. '/rescriptls/server/out/cli.js', '--stdio' }, init_options = { extensionConfiguration = { allowBuiltInFormatter = true, diff --git a/lua/user/plugins/tools/init.lua b/lua/user/plugins/tools/init.lua index 129a8db..bfdf54d 100644 --- a/lua/user/plugins/tools/init.lua +++ b/lua/user/plugins/tools/init.lua @@ -1,6 +1,7 @@ local vars = require('user.config.vars') return { + { 'vhyrro/luarocks.nvim', priority = 1000, config = true }, { 'echasnovski/mini.bufremove', opts = { silent = true }, @@ -274,10 +275,16 @@ return { }, { 'rest-nvim/rest.nvim', + ft = 'http', keys = { { 'gu', function() require('rest-nvim').run() end, desc = 'cURL request under cursor' }, }, - opts = { result_split_in_place = true }, + dependencies = 'luarocks.nvim', + config = function() + require('rest-nvim').setup { + result = { split = { in_place = true } }, + } + end, }, { 'mbbill/undotree', diff --git a/lua/user/themes/nord/groups/plugins.lua b/lua/user/themes/nord/groups/plugins.lua index a6674f2..c1b02e1 100644 --- a/lua/user/themes/nord/groups/plugins.lua +++ b/lua/user/themes/nord/groups/plugins.lua @@ -113,6 +113,7 @@ return { WhichKeyValue = { link = 'Comment' }, -- nvim-notify + NotifyBackground = { bg = 'NONE' }, NotifyERRORBorder = { fg = c.red }, NotifyWARNBorder = { fg = c.yellow }, NotifyINFOBorder = { fg = c.blue }, diff --git a/pkgs.yaml b/pkgs.yaml index c5f11cf..74127d9 100644 --- a/pkgs.yaml +++ b/pkgs.yaml @@ -19,6 +19,7 @@ elixirls: fi - &git_checkout | cd "$PKG_INSTALL_DIR" + git restore . && git clean -d -f git fetch --tags --prune --prune-tags git switch --detach "$(git describe --tags "$(git rev-list --tags --max-count=1)")" - mix deps.get @@ -107,9 +108,40 @@ remark_ls: <<: *nodejs_lsp pkgs: [remark-language-server] +# NOTE: a local OPAM switch isn't created here for simplicity. +# It can be done manually after the clone rescriptls: - <<: *nodejs_lsp - pkgs: ['@rescript/language-server'] + category: [lsp] + type: custom + script: + - | + if [ ! -d "$PKG_INSTALL_DIR" ]; then + git clone --depth 1 --single-branch https://github.com/rescript-lang/rescript-vscode.git "$PKG_INSTALL_DIR" + fi + - *git_checkout + - opam install . --deps-only + - dune build -p analysis + - | + case "$(uname)" in + Linux) + mkdir -p server/analysis_binaries/linux + cp _build/default/analysis/bin/main.exe server/analysis_binaries/linux/rescript-editor-analysis.exe + ;; + Darwin) + if [ "$(uname -m)" = "arm64" ]; then + mkdir -p server/analysis_binaries/darwinarm64 + cp _build/default/analysis/bin/main.exe server/analysis_binaries/darwinarm64/rescript-editor-analysis.exe + else + mkdir -p server/analysis_binaries/darwin + cp _build/default/analysis/bin/main.exe server/analysis_binaries/darwin/rescript-editor-analysis.exe + fi + ;; + esac + - sed -i '/postinstall/d' package.json + - pnpm install -D + - pnpm install -C server + - pnpm install -C server vscode-languageserver-types + - pnpm run bundle-server ruff_lsp: category: [lsp]