add: nvim: add LS of JETls

This commit is contained in:
qwjyh 2023-03-14 13:55:41 +09:00
parent cca93ec5cc
commit 3c1ac240af
3 changed files with 93 additions and 0 deletions

View file

@ -25,6 +25,7 @@ mkdir -p ~/.config/nvim/lua
ln -sf $(pwd)/dotfiles/neovim/lua/lualine_setup.lua ~/.config/nvim/lua/lualine_setup.lua
mkdir -p ~/.config/nvim/lua/lspconfig/server_configurations
ln -sf $(pwd)/dotfiles/neovim/lua/lspconfig/server_configurations/satysfi_ls.lua ~/.config/nvim/lua/lspconfig/server_configurations/satysfi_ls.lua
ln -sf $(pwd)/dotfiles/neovim/lua/lspconfig/server_configurations/jetls.lua ~/.config/nvim/lua/lspconfig/server_configurations/jetls.lua
mkdir -p ~/.config/nvim/after/ftplugin
ln -sf $(pwd)/dotfiles/neovim/after/ftplugin/satysfi.lua ~/.config/nvim/after/ftplugin/satysfi.lua
ln -sf $(pwd)/dotfiles/neovim/after/ftplugin/tex.lua ~/.config/nvim/after/ftplugin/tex.lua

View file

@ -50,6 +50,28 @@ require('lazy').setup({
'lervag/vimtex',
ft = { 'tex', 'latex' },
},
{
-- 'kdheepak/JET.nvim',
'qwjyh/JET.nvim',
dir = '~/work/julia/JET.nvim',
dev = false, -- set true to use dir
lazy = true,
dependencies = {
'jose-elias-alvarez/null-ls.nvim',
},
config = function()
require("jet").setup {
timeout = 15000,
-- disable setup since null-ls doesn't support lspconfig
-- https://github.com/jose-elias-alvarez/null-ls.nvim/commit/656e5cb554fed1eb2f398f325511601fab988ce0
setup_lspconfig = false,
debug = true,
}
end,
-- build process(make environments and add JET.jl)
build = [[mkdir -p ~/.julia/environments/nvim-null-ls && julia --startup-file=no --project=~/.julia/environments/nvim-null-ls -e 'using Pkg; Pkg.add("JET")']],
-- ft = { 'julia', },
},
{ 'lewis6991/gitsigns.nvim', },
'neovim/nvim-lspconfig',
{
@ -378,6 +400,8 @@ lspconfig.texlab.setup {
on_attach = on_attach,
capabilities = capabilities,
}
-- -- jetls
-- lspconfig.jetls.setup {}
-- nvim-cmp setup
local cmp = require 'cmp'

View file

@ -0,0 +1,68 @@
-- local cmd = {
-- 'julia',
-- '--startup-file=no',
-- '--history-file=no',
-- '-e',
-- [[
-- # Load JETLS.jl: attempt to load from ~/.julia/environments/nvim-lspconfig
-- # with the regular load path as a fallback
-- jet_install_path = joinpath(
-- get(DEPOT_PATH, 1, joinpath(homedir(), ".julia")),
-- "environments", "nvim-lspconfig"
-- )
-- pushfirst!(LOAD_PATH, jet_install_path)
-- using JETLS
-- popfirst!(LOAD_PATH)
-- depot_path = get(ENV, "JULIA_DEPOT_PATH", "")
-- 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
-- @info "Running JETLS language server" VERSION pwd() project_path
-- @info "not running yet"
-- JETLS.runserver(stdin, stdout)
-- ]],
-- }
local cmd = {
'julia',
'--startup-file=no',
'--history-file=no',
'-e',
[[
println("===STARTING JETLS===")
using JETLS
JETLS.runserver(stdin, stdout)
@info "Running JETLS" VERSION pwd() project_path
@info "============================"
]],
}
return {
default_config = {
cmd = cmd,
filetypes = { 'julia' },
root_dir = function(fname)
local util = require 'lspconfig.util'
return util.root_pattern 'Project.toml' (fname) or util.find_git_ancestor(fname) or
util.path.dirname(fname)
end,
},
docs = {
description = [[
TBW
]],
},
}