broke out angular-language-server config to new lsp protocol
This commit is contained in:
@@ -1 +1,2 @@
|
||||
packer_compiled.lua
|
||||
lazy-lock.json
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
{
|
||||
"LuaSnip": { "branch": "master", "commit": "faf3c94a44508cec1b961406d36cc65113ff3b98" },
|
||||
"auto-session": { "branch": "main", "commit": "00334ee24b9a05001ad50221c8daffbeedaa0842" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "b74fab3656eea9de20a9b8116afa3cfc4ec09657" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "a8912b88ce488f411177fc8aed358b04dc246d7b" },
|
||||
"cmp-nvim-lua": { "branch": "main", "commit": "f12408bdb54c39c23e67cab726264c10db33ada8" },
|
||||
"cmp-path": { "branch": "main", "commit": "c6635aae33a50d6010bf1aa756ac2398a2d54c32" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" },
|
||||
"emmet-vim": { "branch": "master", "commit": "6c511a8d7d2863066f32e25543e2bb99d505172c" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "572f5660cf05f8cd8834e096d7b4c921ba18e175" },
|
||||
"fzf": { "branch": "master", "commit": "d18c0bf6948b4707684fe77631aff26a17cbc4fa" },
|
||||
"fzf-checkout.vim": { "branch": "master", "commit": "db0289a6c8e77b08a0150627733722fd07d5fa62" },
|
||||
"fzf.vim": { "branch": "master", "commit": "3ed6ac56d03fff0389cd5b30dfd1e1f940fe91d0" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "8b729e489f1475615dc6c9737da917b3bc163605" },
|
||||
"hop.nvim": { "branch": "master", "commit": "1a1eceafe54b5081eae4cb91c723abd1d450f34b" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "005b56001b2cb30bfa61b7986bc50657816ba4ba" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" },
|
||||
"lsp-zero.nvim": { "branch": "v1.x", "commit": "d4367a3726dbaa5c67f29c38b186c30d99e6b32c" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "0c6cca9f2c63dadeb9225c45bc92bb95a151d4af" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "d24b3f1612e53f9d54d866b16bedab51813f2bf1" },
|
||||
"mason.nvim": { "branch": "main", "commit": "8024d64e1330b86044fed4c8494ef3dcd483a67c" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "db2a48b79cfcdab8baa5d3f37f21c78b6705c62e" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "4d74e75913832866aa7de35e4202463ddf6efd1b" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "b5311ab3ed9c846b585c0c15b7559be131ec4be9" },
|
||||
"nvim-fzf": { "branch": "master", "commit": "305aa90aeb8409b4bd2af1812a4b6e157ee93953" },
|
||||
"nvim-fzf-commands": { "branch": "master", "commit": "52f9450cd69f462aa1ecc5dc3e05ef3b77840e4f" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "3ea99227e316c5028f57a4d86a1a7fd01dd876d0" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "42fc28ba918343ebfd5565147a42a26580579482" },
|
||||
"nvim-treesitter-context": { "branch": "master", "commit": "404502e607c3b309e405be9112c438c721153372" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "1fb58cca9aebbc4fd32b086cb413548ce132c127" },
|
||||
"playground": { "branch": "master", "commit": "ba48c6a62a280eefb7c85725b0915e021a1a0749" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" },
|
||||
"rnvimr": { "branch": "main", "commit": "57f7a8edd629791557d1315463d9fb2e411a45f1" },
|
||||
"rustaceanvim": { "branch": "master", "commit": "e9c5aaba16fead831379d5f44617547a90b913c7" },
|
||||
"tailwind-tools": { "branch": "master", "commit": "fbe982901d4508b0dcd80e07addf0fcb6dab6c49" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "057ef5d260c1931f1dffd0f052c685dcd14100a3" },
|
||||
"undotree": { "branch": "master", "commit": "b951b87b46c34356d44aa71886aecf9dd7f5788a" },
|
||||
"vim-fugitive": { "branch": "master", "commit": "4a745ea72fa93bb15dd077109afbb3d1809383f2" },
|
||||
"vim-js": { "branch": "master", "commit": "35d9e2ef4d31618237463e3bdf4811b2f8a0dec5" },
|
||||
"vim-jsx-improve": { "branch": "master", "commit": "b179bf9a3901ccc6afcaa3abc9c93bae450f3339" },
|
||||
"vim-jsx-pretty": { "branch": "master", "commit": "6989f1663cc03d7da72b5ef1c03f87e6ddb70b41" },
|
||||
"vim-razor": { "branch": "master", "commit": "305dd1db88c657c0c02effbee1a88048479bb0c4" },
|
||||
"vim-snippets": { "branch": "master", "commit": "f0a3184d9f90b96b044d5914625a25c554d7f301" },
|
||||
"yats.vim": { "branch": "master", "commit": "b325c449a2db4d9ee38aa441afa850a815982e8b" },
|
||||
"zig.vim": { "branch": "master", "commit": "e55a7949561d34822b7cd2290819927b79825dcd" }
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
-- Angular requires a node_modules directory to probe for @angular/language-service and typescript
|
||||
-- in order to use your projects configured versions.
|
||||
|
||||
local root_dir = vim.fn.getcwd()
|
||||
local node_modules_dir = vim.fs.find("node_modules", { path = root_dir })[1]
|
||||
local project_root = node_modules_dir and vim.fs.dirname(node_modules_dir) or "?"
|
||||
local default_probe_dir = project_root and (project_root .. "/node_modules") or ""
|
||||
|
||||
local ngserver_exe = vim.fn.exepath("ngserver")
|
||||
local ngserver_path = #(ngserver_exe or "") > 0 and vim.fs.dirname(vim.uv.fs_realpath(ngserver_exe)) or "?"
|
||||
local extension_path = vim.fs.normalize(vim.fs.joinpath(ngserver_path, "../../../"))
|
||||
|
||||
-- angularls will get module by `require.resolve(PROBE_PATH, MODULE_NAME)` of nodejs
|
||||
local ts_probe_dirs = vim.iter({ extension_path, default_probe_dir }):join(",")
|
||||
local ng_probe_dirs = vim.iter({ extension_path, default_probe_dir })
|
||||
:map(function(p)
|
||||
return vim.fs.joinpath(p, "/@angular/language-server/node_modules")
|
||||
end)
|
||||
:join(",")
|
||||
|
||||
local function get_angular_core_version()
|
||||
if not project_root then
|
||||
return ""
|
||||
end
|
||||
|
||||
local package_json = project_root .. "/package.json"
|
||||
if not vim.uv.fs_stat(package_json) then
|
||||
return ""
|
||||
end
|
||||
|
||||
local contents = io.open(package_json):read("*a")
|
||||
local json = vim.json.decode(contents)
|
||||
if not json.dependencies then
|
||||
return ""
|
||||
end
|
||||
|
||||
local angular_core_version = json.dependencies["@angular/core"]
|
||||
|
||||
angular_core_version = angular_core_version and angular_core_version:match("%d+%.%d+%.%d+")
|
||||
|
||||
return angular_core_version
|
||||
end
|
||||
|
||||
return {
|
||||
cmd = {
|
||||
"ngserver",
|
||||
"--stdio",
|
||||
"--tsProbeLocations",
|
||||
ts_probe_dirs,
|
||||
"--ngProbeLocations",
|
||||
ng_probe_dirs,
|
||||
"--angularCoreVersion",
|
||||
get_angular_core_version(),
|
||||
},
|
||||
filetypes = { "typescript", "html", "typescriptreact", "typescript.tsx", "htmlangular" },
|
||||
root_markers = { "angular.json", "nx.json" },
|
||||
}
|
||||
@@ -119,6 +119,8 @@ opt.foldlevelstart = 30
|
||||
opt.mouse = ""
|
||||
opt.backupcopy = "yes"
|
||||
|
||||
opt.winborder = "rounded"
|
||||
|
||||
vim.cmd([[au BufRead,BufNewFile .env.* set filetype=sh]])
|
||||
vim.cmd([[au BufRead,BufNewFile Dockerfile.* set filetype=dockerfile]])
|
||||
--vim.cmd([[au BufRead,BufNewFile *.html set filetype=html]])
|
||||
|
||||
+31
-17
@@ -500,23 +500,6 @@ function M.lsp_zero()
|
||||
lsp.configure("html", { filetypes = html_filetypes })
|
||||
lsp.configure("htmx", { filetypes = html_filetypes })
|
||||
|
||||
require("mason-lspconfig").setup({
|
||||
automatic_enable = {
|
||||
"pyright",
|
||||
"lua_ls",
|
||||
"bashls",
|
||||
"html",
|
||||
"cssls",
|
||||
"ts_ls",
|
||||
"svelte",
|
||||
"angularls",
|
||||
"tailwindcss",
|
||||
"templ",
|
||||
"gopls",
|
||||
"htmx",
|
||||
},
|
||||
})
|
||||
|
||||
lsp.on_attach(function(client, _)
|
||||
-- diagnostics for other lsp get messed up when formatting is enabled
|
||||
client.server_capabilities.documentFormattingProvider = false
|
||||
@@ -530,12 +513,43 @@ function M.lsp_zero()
|
||||
end,
|
||||
})
|
||||
end
|
||||
|
||||
local function filter_duplicates(array)
|
||||
local unique = {}
|
||||
for _, tableA in ipairs(array) do
|
||||
local is_duplicate = false
|
||||
for _, tableB in ipairs(unique) do
|
||||
if vim.deep_equal(tableA, tableB) then
|
||||
is_duplicate = true
|
||||
break
|
||||
end
|
||||
end
|
||||
if not is_duplicate then
|
||||
table.insert(unique, tableA)
|
||||
end
|
||||
end
|
||||
return unique
|
||||
end
|
||||
|
||||
local function on_list(options)
|
||||
options.items = filter_duplicates(options.items)
|
||||
vim.fn.setqflist({}, " ", options)
|
||||
vim.cmd("botright copen")
|
||||
end
|
||||
|
||||
vim.keymap.set("n", "gr", function()
|
||||
vim.lsp.log.error("GETTING REFERENCES")
|
||||
vim.lsp.buf.references(nil, { on_list = on_list })
|
||||
end, { noremap = true })
|
||||
end)
|
||||
|
||||
-- (Optional) Configure lua language server for neovim
|
||||
lsp.nvim_workspace()
|
||||
|
||||
lsp.setup()
|
||||
|
||||
vim.lsp.log.error("SETTING UP LSP")
|
||||
vim.lsp.enable("angular-language-server")
|
||||
end
|
||||
|
||||
function M.undotree()
|
||||
|
||||
Reference in New Issue
Block a user