aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2023-10-30 22:29:25 +0800
committercrupest <crupest@outlook.com>2023-10-30 22:29:25 +0800
commit78c906b053d233e19d0b4ba005ab6836c7bb84b3 (patch)
tree34f2ee14454041de0d8289e622f6a99791db80df
parent376f33a464c5b4d3dfd48c36a48443126c004f82 (diff)
downloadcrupest-78c906b053d233e19d0b4ba005ab6836c7bb84b3.tar.gz
crupest-78c906b053d233e19d0b4ba005ab6836c7bb84b3.tar.bz2
crupest-78c906b053d233e19d0b4ba005ab6836c7bb84b3.zip
Update nvim config, more detect for omnisharp.
-rw-r--r--configs/nvim/lazy-lock.json22
-rw-r--r--configs/nvim/lua/crupest/nvim/lsp/csharp.lua17
-rw-r--r--configs/nvim/lua/crupest/system.lua4
-rw-r--r--configs/nvim/lua/crupest/system/find.lua21
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,
}
-