diff --git a/bin/install.ps1 b/bin/install.ps1 index bcc5fce..989928e 100644 --- a/bin/install.ps1 +++ b/bin/install.ps1 @@ -55,6 +55,7 @@ New-Item -ItemType SymbolicLink -Path ~\AppData\Local\nvim\init.lua -Target (Res New-Item -ItemType SymbolicLink -Path ~\AppData\Local\nvim\lua\lualine_setup.lua -Target (Resolve-Path .\dotfiles\neovim\lua\lualine_setup.lua) -Force New-Item -ItemType SymbolicLink -Path ~\AppData\Local\nvim\lua\term_powershell.lua -Target (Resolve-Path .\dotfiles\neovim\lua\term_powershell.lua) -Force New-Item -ItemType SymbolicLink -Path ~\AppData\Local\nvim\lua\lspconfig\server_configurations\satysfi_ls.lua -Target (Resolve-Path .\dotfiles\neovim\lua\lspconfig\server_configurations\satysfi_ls.lua) -Force +New-Item -ItemType SymbolicLink -Path ~\AppData\Local\nvim\lua\lspconfig\server_configurations\jetls.lua -Target (Resolve-Path .\dotfiles\neovim\lua\lspconfig\server_configurations\jetls.lua) -Force mkdir $env:LOCALAPPDATA\nvim\after\ftplugin New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\nvim\after\ftplugin\satysfi.lua -Target (Resolve-Path .\dotfiles\neovim\after\ftplugin\satysfi.lua) New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\nvim\after\ftplugin\tex.lua -Target (Resolve-Path .\dotfiles\neovim\after\ftplugin\tex.lua) @@ -62,8 +63,6 @@ mkdir $env:LOCALAPPDATA\nvim\after\queries\satysfi Invoke-WebRequest -Uri "https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/highlights.scm" -OutFile $env:LOCALAPPDATA\nvim\after\queries\satysfi\highlights.scm Invoke-WebRequest -Uri "https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/indents.scm" -OutFile $env:LOCALAPPDATA\nvim\after\queries\satysfi\indents.scm Invoke-WebRequest -Uri "https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/matchup.scm" -OutFile $env:LOCALAPPDATA\nvim\after\queries\satysfi\matchup.scm -mkdir $env:LOCALAPPDATA\nvim\after\queries\julia -New-Item -ItemType SymbolicLink -Path $env:LOCALAPPDATA\nvim\after\queries\julia\injections.scm -Target (Resolve-Path .\dotfiles\neovim\after\queries\julia\injections.scm) # pwsh New-Item -ItemType SymbolicLink -Path $PROFILE -Target (Resolve-Path .\dotfiles\pwsh\powershell_profile.ps1) -Force New-Item -ItemType SymbolicLink -Path ~\.config\powershell\chezmoi_completion.ps1 -Target (Resolve-Path .\dotfiles\pwsh\chezmoi_completion.ps1) -Force diff --git a/bin/install.sh b/bin/install.sh index 09fca0c..166cc7e 100755 --- a/bin/install.sh +++ b/bin/install.sh @@ -25,9 +25,9 @@ ln -sf $(pwd)/dotfiles/neovim/init.lua ~/.config/nvim/init.lua mkdir -p ~/.config/nvim/lua ln -sf $(pwd)/dotfiles/neovim/lua/lualine_setup.lua ~/.config/nvim/lua/lualine_setup.lua ln -sf $(pwd)/dotfiles/neovim/lua/term_powershell.lua ~/.config/nvim/lua/term_powershell.lua -ln -sf $(pwd)/dotfiles/neovim/lua/pluto_nvim.lua ~/.config/nvim/lua/pluto_nvim.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 @@ -35,8 +35,6 @@ mkdir -p ~/.config/nvim/after/queries/satysfi curl -o ~/.config/nvim/after/queries/satysfi/highlights.scm https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/highlights.scm curl -o ~/.config/nvim/after/queries/satysfi/indents.scm https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/indents.scm curl -o ~/.config/nvim/after/queries/satysfi/matchup.scm https://raw.githubusercontent.com/monaqa/tree-sitter-satysfi/master/queries/matchup.scm -mkdir -p ~/.config/nvim/after/queries/julia -ln -sf $(pwd)/dotfiles/neovim/after/queries/julia/injections.scm ~/.config/nvim/after/queries/julia/injections.scm mkdir -p ~/.config/nvim/luasnippets ln -sf $(pwd)/dotfiles/neovim/luasnippets/all.lua ~/.config/nvim/luasnippets/all.lua mkdir -p ~/.config/nvim/luasnippets/satysfi diff --git a/bin/neovim/update_julials.jl b/bin/neovim/update_julials.jl index 935848c..ffb3e1f 100644 --- a/bin/neovim/update_julials.jl +++ b/bin/neovim/update_julials.jl @@ -3,10 +3,7 @@ project_path = joinpath(homedir(), ".julia", "environments", "nvim-lspconfig") cd(project_path) @info "now at " pwd() run(`julia --project=. -e 'using Pkg; Pkg.update()'`) -compile_traces = Iterators.filter(eachline("tracecompile.jl")) do line - !startswith(line, '#') && !occursin(r"\#\d+\#\d+", line) -end |> join -read("precompile_exec_head.jl", String) * compile_traces |> (b -> write("precompile_exec.jl", b)) +read("precompile_exec_head.jl", String) * read("tracecompile.jl", String) |> (b -> write("precompile_exec.jl", b)) @info "compiling sysimage..." run(`julia --project=. -e 'using PackageCompiler; create_sysimage(["LanguageServer"], sysimage_path = "sys-ls.so", precompile_execution_file = ["precompile_exec.jl"])'`) @info "post precompile" diff --git a/dotfiles/neovim/after/queries/julia/injections.scm b/dotfiles/neovim/after/queries/julia/injections.scm deleted file mode 100644 index 60d3f24..0000000 --- a/dotfiles/neovim/after/queries/julia/injections.scm +++ /dev/null @@ -1,7 +0,0 @@ -;; extends - -((prefixed_string_literal - prefix: (identifier) @_prefix) @injection.content - (#eq? @_prefix "md") - (#set! injection.language "markdown") - (#offset! @injection.content 0 2 0 -1)) diff --git a/dotfiles/neovim/init.lua b/dotfiles/neovim/init.lua index 8308575..a952464 100644 --- a/dotfiles/neovim/init.lua +++ b/dotfiles/neovim/init.lua @@ -18,9 +18,6 @@ require('lazy').setup({ { "catppuccin/nvim", name = "catppuccin" }, -- Color scheme { dir = "./lua/term_powershell.lua", - cond = function() - return vim.fn.has('win32') == 1 - end, event = "CmdlineEnter", config = function() require("term_powershell").setup { @@ -62,6 +59,29 @@ 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', }, + }, { 'hkupty/iron.nvim', ft = { 'julia', 'python', 'ruby', 'lua', }, @@ -123,12 +143,6 @@ require('lazy').setup({ 'nvim-lua/plenary.nvim' }, }, - { - 'nvimtools/none-ls.nvim', - dependencies = { - 'nvim-lua/plenary.nvim', - }, - }, { 'folke/trouble.nvim', -- config = function @@ -184,6 +198,9 @@ require('lazy').setup({ }, -- event = 'VeryLazy', -- doesn't work with existing comp and treesitter config = function() + -- Load treesitter grammer for orgmode + require('orgmode').setup_ts_grammar() + -- Setup treesitter require('nvim-treesitter.configs').setup({ highlight = { @@ -601,6 +618,8 @@ lspconfig.powershell_es.setup { bundle_path = '~/scoop/apps/powershell-editorservice/current', capabilities = capabilities, } +-- -- jetls +-- lspconfig.jetls.setup {} -- ccls -- -- csharp -- lspconfig.omnisharp.setup { @@ -626,7 +645,7 @@ lspconfig.rust_analyzer.setup { } local lss = { "pyright", "texlab", "ccls", "clangd", "tsserver", --[["tailwindcss"]] "hls", "cmake", - "csharp_ls", "html", "r_language_server", "ruff_lsp", "cssls", "jsonls", "sqls" } + "csharp_ls", "html", "r_language_server", "ruff_lsp", "cssls" } for _, ls in pairs(lss) do lspconfig[ls].setup { on_attach = on_attach, @@ -634,14 +653,6 @@ for _, ls in pairs(lss) do } end --- none-ls -local null_ls = require('null-ls') -null_ls.setup { - sources = { - null_ls.builtins.diagnostics.fish, - } -} - -- nvim-cmp setup local cmp = require 'cmp' local luasnip = require 'luasnip' @@ -662,8 +673,8 @@ cmp.setup { [''] = cmp.mapping.scroll_docs(4), -- Down [''] = cmp.mapping.complete(), [''] = cmp.mapping.confirm { - behavior = cmp.ConfirmBehavior.Insert, - select = false, + behavior = cmp.ConfirmBehavior.Replace, + select = true, }, [''] = cmp.mapping(function(fallback) if cmp.visible() then diff --git a/dotfiles/neovim/lua/lspconfig/server_configurations/jetls.lua b/dotfiles/neovim/lua/lspconfig/server_configurations/jetls.lua new file mode 100644 index 0000000..6f6f599 --- /dev/null +++ b/dotfiles/neovim/lua/lspconfig/server_configurations/jetls.lua @@ -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 + ]], + }, +} diff --git a/dotfiles/pwsh/powershell_profile.ps1 b/dotfiles/pwsh/powershell_profile.ps1 index b9e0ae5..d7e9a0f 100644 --- a/dotfiles/pwsh/powershell_profile.ps1 +++ b/dotfiles/pwsh/powershell_profile.ps1 @@ -231,3 +231,7 @@ Import-Module WSLTabCompletion Get-ChildItem ~\.config\powershell\completions\ | % { . $_ } +# Automatically appended by pdm scoop package +Get-ChildItem "$PROFILE\..\Completions\" | ForEach-Object { + . $_.FullName +}