diff options
author | crupest <crupest@outlook.com> | 2023-10-30 22:29:25 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2023-10-30 22:29:25 +0800 |
commit | 78c906b053d233e19d0b4ba005ab6836c7bb84b3 (patch) | |
tree | 34f2ee14454041de0d8289e622f6a99791db80df | |
parent | 376f33a464c5b4d3dfd48c36a48443126c004f82 (diff) | |
download | crupest-78c906b053d233e19d0b4ba005ab6836c7bb84b3.tar.gz crupest-78c906b053d233e19d0b4ba005ab6836c7bb84b3.tar.bz2 crupest-78c906b053d233e19d0b4ba005ab6836c7bb84b3.zip |
Update nvim config, more detect for omnisharp.
-rw-r--r-- | configs/nvim/lazy-lock.json | 22 | ||||
-rw-r--r-- | configs/nvim/lua/crupest/nvim/lsp/csharp.lua | 17 | ||||
-rw-r--r-- | configs/nvim/lua/crupest/system.lua | 4 | ||||
-rw-r--r-- | configs/nvim/lua/crupest/system/find.lua | 21 |
4 files changed, 42 insertions, 22 deletions
diff --git a/configs/nvim/lazy-lock.json b/configs/nvim/lazy-lock.json index 5069f37..2deb237 100644 --- a/configs/nvim/lazy-lock.json +++ b/configs/nvim/lazy-lock.json @@ -5,20 +5,20 @@ "cmp-nvim-lsp": { "branch": "main", "commit": "44b16d11215dce86f253ce0c30949813c0a90765" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "everforest": { "branch": "master", "commit": "83b666410d7ae0eccf96dbbe3b4b6ac5b8172d38" }, + "everforest": { "branch": "master", "commit": "72f101bd63228a1a45012325e39c5280ec22c828" }, "formatter.nvim": { "branch": "master", "commit": "34dcdfa0c75df667743b2a50dd99c84a557376f0" }, - "gitsigns.nvim": { "branch": "main", "commit": "5a9a6ac29a7805c4783cda21b80a1e361964b3f2" }, - "lazy.nvim": { "branch": "main", "commit": "4c75c8eeb957a99aa44ce8e526c04340ab358c5e" }, - "lualine.nvim": { "branch": "master", "commit": "7533b0ead663d80452210c0c089e5105089697e5" }, - "neo-tree.nvim": { "branch": "main", "commit": "63ebe879ad4798b66d29c0b2c8d04942389d438e" }, + "gitsigns.nvim": { "branch": "main", "commit": "af0f583cd35286dd6f0e3ed52622728703237e50" }, + "lazy.nvim": { "branch": "main", "commit": "16603c6917435d8446f7357cb61095138a417085" }, + "lualine.nvim": { "branch": "master", "commit": "2248ef254d0a1488a72041cfb45ca9caada6d994" }, + "neo-tree.nvim": { "branch": "main", "commit": "936b029e514adc1fa7ab51c6c1a8a2c872a58797" }, "nui.nvim": { "branch": "main", "commit": "c0c8e347ceac53030f5c1ece1c5a5b6a17a25b32" }, - "nvim-autopairs": { "branch": "master", "commit": "f6c71641f6f183427a651c0ce4ba3fb89404fa9e" }, - "nvim-cmp": { "branch": "main", "commit": "d3a3056204e1a9dbb7c7fe36c114dc43b681768c" }, - "nvim-lint": { "branch": "master", "commit": "7c8b50a2bb62b544eb91434fd008a34c4b51fd6d" }, - "nvim-lspconfig": { "branch": "master", "commit": "e49b1e90c1781ce372013de3fa93a91ea29fc34a" }, - "nvim-web-devicons": { "branch": "master", "commit": "3af745113ea537f58c4b1573b64a429fefad9e07" }, + "nvim-autopairs": { "branch": "master", "commit": "0f04d78619cce9a5af4f355968040f7d675854a1" }, + "nvim-cmp": { "branch": "main", "commit": "51260c02a8ffded8e16162dcf41a23ec90cfba62" }, + "nvim-lint": { "branch": "master", "commit": "962a76877a4479a535b935bd7ef35ad41ba308b2" }, + "nvim-lspconfig": { "branch": "master", "commit": "d0467b9574b48429debf83f8248d8cee79562586" }, + "nvim-web-devicons": { "branch": "master", "commit": "5de460ca7595806044eced31e3c36c159a493857" }, "omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "53edfb413a54c9e55dcddc9e9fa4977a897e4425" }, "plenary.nvim": { "branch": "master", "commit": "50012918b2fc8357b87cff2a7f7f0446e47da174" }, - "telescope.nvim": { "branch": "master", "commit": "74ce793a60759e3db0d265174f137fb627430355" }, + "telescope.nvim": { "branch": "master", "commit": "4522d7e3ea75ffddabdc39957168a8a7060b5df0" }, "toggleterm.nvim": { "branch": "main", "commit": "c80844fd52ba76f48fabf83e2b9f9b93273f418d" } }
\ No newline at end of file diff --git a/configs/nvim/lua/crupest/nvim/lsp/csharp.lua b/configs/nvim/lua/crupest/nvim/lsp/csharp.lua index 413e41d..066f305 100644 --- a/configs/nvim/lua/crupest/nvim/lsp/csharp.lua +++ b/configs/nvim/lua/crupest/nvim/lsp/csharp.lua @@ -2,15 +2,24 @@ local lspconfig = require("lspconfig"); local capabilities = require("cmp_nvim_lsp").default_capabilities() local is_win = require("crupest.system").is_win +local is_mac = require("crupest.system").is_mac +local first_exe = require("crupest.system.find").first_exe + +local win_paths = { "C:/Users/crupest/Programs/omnisharp-win-x64/OmniSharp.exe" } +local mac_paths = { "/usr/local/opt/omnisharp/OmniSharp" } local function setup_lsp_csharp() - local omnisharp_cmd = nil + local paths = {} if is_win then - omnisharp_cmd = { "C:/Users/crupest/Programs/omnisharp-win-x64/OmniSharp.exe" } + paths = win_paths + elseif is_mac then + paths = mac_paths end - if omnisharp_cmd then + local omnisharp_path = first_exe(paths) + + if omnisharp_path then lspconfig.omnisharp.setup { capabilities = capabilities, @@ -18,7 +27,7 @@ local function setup_lsp_csharp() ["textDocument/definition"] = require('omnisharp_extended').handler, }, - cmd = omnisharp_cmd, + cmd = { omnisharp_path }, -- Enables support for reading code style, naming convention and analyzer -- settings from .editorconfig. diff --git a/configs/nvim/lua/crupest/system.lua b/configs/nvim/lua/crupest/system.lua index f05b230..982aaa4 100644 --- a/configs/nvim/lua/crupest/system.lua +++ b/configs/nvim/lua/crupest/system.lua @@ -1,5 +1,7 @@ local is_win = vim.fn.has("win32") ~= 0 +local is_mac = vim.fn.has("mac") ~= 0 return { - is_win = is_win + is_win = is_win, + is_mac = is_mac } diff --git a/configs/nvim/lua/crupest/system/find.lua b/configs/nvim/lua/crupest/system/find.lua index 16237ec..a2631a6 100644 --- a/configs/nvim/lua/crupest/system/find.lua +++ b/configs/nvim/lua/crupest/system/find.lua @@ -5,12 +5,12 @@ local function get_exe(path) if system.is_win then local exts = { "exe", "CMD", "cmd", "ps1" } for _, ext in ipairs(exts) do - if string.find(path, "%."..ext.."$") and fs.isfile(path) then + if string.find(path, "%." .. ext .. "$") and fs.isfile(path) then return path end end for _, ext in ipairs(exts) do - local p = path.."."..ext + local p = path .. "." .. ext if fs.isfile(p) then return p end end return nil @@ -23,9 +23,18 @@ local function get_exe(path) return nil end +local function first_exe(paths) + for _, v in ipairs(paths) do + local exe = get_exe(v) + if exe then return exe end + end + + return nil +end + local function find_node_modules(path) - return fs.walk_up(path, function (current_path) - local node_modules_path = current_path.."/node_modules" + return fs.walk_up(path, function(current_path) + local node_modules_path = current_path .. "/node_modules" if fs.isdir(node_modules_path) then return node_modules_path end @@ -36,7 +45,7 @@ end local function find_npm_exe(path, exe) local node_modules_path = find_node_modules(path) if not node_modules_path then return nil end - local try_exe_path = node_modules_path.."/.bin/"..exe + local try_exe_path = node_modules_path .. "/.bin/" .. exe local exe_path = get_exe(try_exe_path) if exe_path then return exe_path end return nil @@ -44,7 +53,7 @@ end return { get_exe = get_exe, + first_exe = first_exe, find_node_modules = find_node_modules, find_npm_exe = find_npm_exe, } - |