Merge remote-tracking branch 'origin/rolling'

This commit is contained in:
kylo252 2021-12-21 09:11:30 +01:00
commit 427ad868d4
13 changed files with 41 additions and 335 deletions

View file

@ -40,8 +40,7 @@ function M:init()
local lvim_lsp_config = require "lvim.lsp.config"
lvim.lsp = apply_defaults(lvim.lsp, vim.deepcopy(lvim_lsp_config))
local supported_languages = require "lvim.config.supported_languages"
require("lvim.lsp.manager").init_defaults(supported_languages)
require("lvim.lsp.manager").init_defaults()
end
local function handle_deprecated_settings()

View file

@ -1,95 +0,0 @@
return {
"asm",
"bash",
"beancount",
"bibtex",
"bicep",
"c",
"c_sharp",
"clojure",
"cmake",
"comment",
"commonlisp",
"cpp",
"crystal",
"cs",
"css",
"cuda",
"d",
"dart",
"dockerfile",
"dot",
"elixir",
"elm",
"emmet",
"erlang",
"fennel",
"fish",
"fortran",
"fsharp",
"gdscript",
"glimmer",
"go",
"gomod",
"graphql",
"haskell",
"hcl",
"heex",
"html",
"java",
"javascript",
"javascriptreact",
"jsdoc",
"json",
"json5",
"jsonc",
"julia",
"kotlin",
"latex",
"ledger",
"less",
"lua",
"markdown",
"nginx",
"nix",
"ocaml",
"ocaml_interface",
"perl",
"php",
"pioasm",
"ps1",
"puppet",
"python",
"ql",
"query",
"r",
"regex",
"rst",
"ruby",
"rust",
"scala",
"scss",
"sh",
"solidity",
"sparql",
"sql",
"supercollider",
"surface",
"svelte",
"swift",
"tailwindcss",
"terraform",
"tex",
"tlaplus",
"toml",
"tsx",
"turtle",
"typescript",
"typescriptreact",
"verilog",
"vim",
"vue",
"yaml",
"yang",
"zig",
}

View file

@ -85,14 +85,6 @@ M.setup = function()
end),
}
local cmp_status_ok, cmp = pcall(require, "cmp")
if cmp_status_ok then
-- If you want insert `(` after select function or method item
local cmp_autopairs = require "nvim-autopairs.completion.cmp"
local map_char = lvim.builtin.autopairs.map_char
cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done { map_char = map_char })
end
require("nvim-treesitter.configs").setup { autopairs = { enable = true } }
local ts_conds = require "nvim-autopairs.ts-conds"

View file

@ -43,7 +43,9 @@ end
-- @param content_provider A function accepting the popup's layout and returning the content to display
function Popup:display(content_provider)
self.win_id = vim.api.nvim_open_win(self.buffer, true, self.layout)
vim.lsp.util.close_preview_autocmd({ "BufHidden", "BufLeave" }, self.win_id)
vim.api.nvim_command(
string.format("autocmd BufHidden,BufLeave <buffer> ++once lua pcall(vim.api.nvim_win_close, %d, true)", self.win_id)
)
local lines = content_provider(self.layout)
vim.api.nvim_buf_set_lines(self.bufnr, 0, -1, false, lines)

View file

@ -61,6 +61,7 @@ return {
"angularls",
"ansiblels",
"ccls",
"cssmodules_ls",
"csharp_ls",
"denols",
"ember",
@ -78,6 +79,7 @@ return {
"sqlls",
"sqls",
"solang",
"sourcekit",
"spectral",
"stylelint_lsp",
"tailwindcss",

View file

@ -4,6 +4,7 @@ local Log = require "lvim.core.log"
local lvim_lsp_utils = require "lvim.lsp.utils"
function M.init_defaults(languages)
languages = languages or lvim_lsp_utils.get_all_supported_filetypes()
for _, entry in ipairs(languages) do
if not lvim.lang[entry] then
lvim.lang[entry] = {

View file

@ -53,6 +53,7 @@ function M.generate_templates(servers_names)
for _, server in pairs(available_servers) do
table.insert(servers_names, server.name)
table.sort(servers_names)
end
end

View file

@ -49,12 +49,15 @@ function M.get_client_capabilities(client_id)
return enabled_caps
end
---Get supported filetypes per server
---@param server_name string can be any server supported by nvim-lsp-installer
---@return table supported filestypes as a list of strings
function M.get_supported_filetypes(server_name)
-- temporary workaround: https://github.com/neovim/nvim-lspconfig/pull/1358
if server_name == "dockerls" then
return { "dockerfile" }
local status_ok, lsp_installer_servers = pcall(require, "nvim-lsp-installer.servers")
if not status_ok then
return {}
end
local lsp_installer_servers = require "nvim-lsp-installer.servers"
local server_available, requested_server = lsp_installer_servers.get_server(server_name)
if not server_available then
return {}
@ -63,4 +66,14 @@ function M.get_supported_filetypes(server_name)
return requested_server:get_supported_filetypes()
end
---Get all supported filetypes by nvim-lsp-installer
---@return table supported filestypes as a list of strings
function M.get_all_supported_filetypes()
local status_ok, lsp_installer_filetypes = pcall(require, "nvim-lsp-installer._generated.filetype_map")
if not status_ok then
return {}
end
return vim.tbl_keys(lsp_installer_filetypes or {})
end
return M

View file

@ -17,8 +17,8 @@ local commit = {
nvim_autopairs = "04cd1779f81e9d50d5a116c5dccd054b275bd191",
nvim_cmp = "47d7cfc06abd8661e28dc919882a2fcf01c99729",
nvim_dap = "9b8c27d6dcc21b69834fe9c2d344e49030783390",
nvim_lsp_installer = "d7b10b13d72d4bf8f7b34779ddc3514bcc26b0f2",
nvim_lspconfig = "dd15974986619b1f3143a9e666e36f41763ccdb4",
nvim_lsp_installer = "4d4677739f52b4aeab8909548b37cc88479c315e",
nvim_lspconfig = "c018b1e92e66b3429a2f167d59211846774f1e3b",
nvim_notify = "ef027e34b618eac42fb0111c1db670ba01793039",
nvim_tree = "f408781a463c2edc3a49091b1bca5a18f790ee3d",
nvim_treesitter = "7474cb06c2be750eae92da51ff7791deb3b21397",

View file

@ -210,6 +210,7 @@ function __install_nodejs_deps_npm() {
npm install -g "$dep"
fi
done
echo "All NodeJS dependencies are successfully installed"
}
@ -219,10 +220,22 @@ function __install_nodejs_deps_yarn() {
echo "All NodeJS dependencies are successfully installed"
}
function __validate_node_installation() {
local pkg_manager="$1"
local manager_home
manager_home="$($pkg_manager config get prefix 2>/dev/null)"
if [ ! -d "$manager_home" ] || [ ! -w "$manager_home" ]; then
echo "[ERROR] Unable to install without administrative privilages. Please set you NPM_HOME correctly and try again."
exit 1
fi
}
function install_nodejs_deps() {
local -a pkg_managers=("yarn" "npm")
for pkg_manager in "${pkg_managers[@]}"; do
if command -v "$pkg_manager" &>/dev/null; then
__validate_node_installation "$pkg_manager"
eval "__install_nodejs_deps_$pkg_manager"
return
fi
@ -288,7 +301,7 @@ function backup_old_config() {
touch "$dir/ignore"
msg "Backing up old $dir to $dir.bak"
if command -v rsync &>/dev/null; then
rsync --archive -hh --stats --partial --cvs-exclude "$dir"/ "$dir.bak"
rsync --archive -hh --stats --partial --copy-links --cvs-exclude "$dir"/ "$dir.bak"
else
OS="$(uname -s)"
case "$OS" in

View file

@ -1,182 +0,0 @@
# This file is machine-generated - editing it directly is not advised
[[ArgTools]]
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f"
[[Artifacts]]
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33"
[[Base64]]
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
[[CSTParser]]
deps = ["Tokenize"]
git-tree-sha1 = "9723e1c07c1727082e169ca50789644a552fb023"
uuid = "00ebfdb7-1f24-5e51-bd34-a7502290713f"
version = "3.2.3"
[[Dates]]
deps = ["Printf"]
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a"
[[DocumentFormat]]
deps = ["CSTParser", "FilePathsBase", "Tokenize"]
git-tree-sha1 = "cf048d65cbcdec70f10745e5801eeb0c6478a7f7"
uuid = "ffa9a821-9c82-50df-894e-fbcef3ed31cd"
version = "3.2.4"
[[Downloads]]
deps = ["ArgTools", "LibCURL", "NetworkOptions"]
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6"
[[FilePathsBase]]
deps = ["Dates", "Mmap", "Printf", "Test", "UUIDs"]
git-tree-sha1 = "0f5e8d0cb91a6386ba47bd1527b240bd5725fbae"
uuid = "48062228-2e41-5def-b9a4-89aafe57970f"
version = "0.9.10"
[[InteractiveUtils]]
deps = ["Markdown"]
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
[[JSON]]
deps = ["Dates", "Mmap", "Parsers", "Unicode"]
git-tree-sha1 = "81690084b6198a2e1da36fcfda16eeca9f9f24e4"
uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6"
version = "0.21.1"
[[JSONRPC]]
deps = ["JSON", "UUIDs"]
git-tree-sha1 = "1e9a820a29b37864a6738b8fd00eedf3fb8d772e"
uuid = "b9b8584e-8fd3-41f9-ad0c-7255d428e418"
version = "1.3.3"
[[LanguageServer]]
deps = ["CSTParser", "DocumentFormat", "JSON", "JSONRPC", "Markdown", "Pkg", "REPL", "StaticLint", "SymbolServer", "Tokenize", "URIParser", "UUIDs"]
git-tree-sha1 = "ac9f7da10fbba9cad8455a3436d121eaf8f308f6"
uuid = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7"
version = "4.0.0"
[[LibCURL]]
deps = ["LibCURL_jll", "MozillaCACerts_jll"]
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21"
[[LibCURL_jll]]
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"]
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0"
[[LibGit2]]
deps = ["Base64", "NetworkOptions", "Printf", "SHA"]
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433"
[[LibSSH2_jll]]
deps = ["Artifacts", "Libdl", "MbedTLS_jll"]
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8"
[[Libdl]]
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb"
[[Logging]]
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
[[Markdown]]
deps = ["Base64"]
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
[[MbedTLS_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1"
[[Mmap]]
uuid = "a63ad114-7e13-5084-954f-fe012c677804"
[[MozillaCACerts_jll]]
uuid = "14a3606d-f60d-562e-9121-12d972cd8159"
[[NetworkOptions]]
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908"
[[Parsers]]
deps = ["Dates"]
git-tree-sha1 = "c8abc88faa3f7a3950832ac5d6e690881590d6dc"
uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0"
version = "1.1.0"
[[Pkg]]
deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"]
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
[[Printf]]
deps = ["Unicode"]
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7"
[[REPL]]
deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"]
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb"
[[Random]]
deps = ["Serialization"]
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
[[SHA]]
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce"
[[Serialization]]
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
[[Sockets]]
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
[[StaticLint]]
deps = ["CSTParser", "Serialization", "SymbolServer"]
git-tree-sha1 = "337ca6f234947b31e921a424f7d0ec8dda22ed49"
uuid = "b3cc710f-9c33-5bdb-a03d-a94903873e97"
version = "8.0.0"
[[SymbolServer]]
deps = ["InteractiveUtils", "LibGit2", "Markdown", "Pkg", "REPL", "SHA", "Serialization", "Sockets", "UUIDs"]
git-tree-sha1 = "9053544866f779dfb87027c52a332e2830e868ab"
uuid = "cf896787-08d5-524d-9de7-132aaa0cb996"
version = "7.0.0"
[[TOML]]
deps = ["Dates"]
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76"
[[Tar]]
deps = ["ArgTools", "SHA"]
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e"
[[Test]]
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"]
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
[[Tokenize]]
git-tree-sha1 = "eee92eda3cc8e104b7e56ff4c1fcf0d78ca37c89"
uuid = "0796e94c-ce3b-5d07-9a54-7f471281c624"
version = "0.5.18"
[[URIParser]]
deps = ["Unicode"]
git-tree-sha1 = "53a9f49546b8d2dd2e688d216421d050c9a31d0d"
uuid = "30578b45-9adc-5946-b283-645ec420af67"
version = "0.4.1"
[[UUIDs]]
deps = ["Random", "SHA"]
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4"
[[Unicode]]
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5"
[[Zlib_jll]]
deps = ["Libdl"]
uuid = "83775a58-1f1d-513f-b197-d71354ab007a"
[[nghttp2_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d"
[[p7zip_jll]]
deps = ["Artifacts", "Libdl"]
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0"

View file

@ -1,3 +0,0 @@
[deps]
LanguageServer = "2b0e0bc5-e4fd-59b4-8912-456d1b03d8d7"
SymbolServer = "cf896787-08d5-524d-9de7-132aaa0cb996"

View file

@ -1,37 +0,0 @@
# Load LanguageServer from the project next to this file
## Save old load path
old_load_path = copy(LOAD_PATH)
push!(empty!(LOAD_PATH), @__DIR__)
## Load packages
using LanguageServer, SymbolServer
## Restore old load path
append!(empty!(LOAD_PATH), old_load_path)
# Figure out the active project
## This configuration is a good default
project_path = let
dirname(something(
## 1. Finds an explicitly set project (JULIA_PROJECT)
Base.load_path_expand((
p = get(ENV, "JULIA_PROJECT", nothing);
p === nothing ? nothing : isempty(p) ? nothing : p
)),
## 2. Look for a Project.toml file in the current working directory,
## or parent directories, with $HOME as an upper boundary
Base.current_project(),
## 3. First entry in the load path
get(Base.load_path(), 1, nothing),
## 4. Fallback to default global environment,
## this is more or less unreachable
Base.load_path_expand("@v#.#"),
))
end
# Depot path for the server to index (empty uses default).
depot_path = get(ENV, "JULIA_DEPOT_PATH", "")
# Start the server
@info "Running julia language server" VERSION project_path depot_path
server = LanguageServer.LanguageServerInstance(stdin, stdout, project_path, depot_path)
server.runlinter = true
run(server)