Merge branch 'main' into deriv-1

This commit is contained in:
qwjyh 2025-05-30 16:54:19 +09:00 committed by GitHub
commit c400854189
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 271 additions and 167 deletions

View file

@ -54,6 +54,8 @@ scoop import .\bin\windows\scoop_apps\scoop_minimal_apps.json
New-Item -ItemType SymbolicLink -Path ~\AppData\Local\nvim\init.lua -Target (Resolve-Path .\dotfiles\neovim\init.lua) -Force
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\lsp_config.lua -Target (Resolve-Path .\dotfiles\neovim\lua\lsp_config.lua) -Force
New-Item -ItemType SymbolicLink -Path ~\AppData\Local\nvim\lua\local_settings.lua -Target (Resolve-Path .\dotfiles\neovim\lua\local_settings.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
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)

View file

@ -10,41 +10,49 @@ set -eu
# exit 1
# fi
# TODO: check git in path
cd $(git rev-parse --show-toplevel)
cd "$(git rev-parse --show-toplevel)"
# =========================================================
# links
# =========================================================
mkdir -p ~/.config/fish
ln -sf $(pwd)/dotfiles/fish/config.fish ~/.config/fish/config.fish
ln -sf $(pwd)/dotfiles/starship/starship.toml ~/.config/starship.toml
ln -sf $(pwd)/dotfiles/tmux.conf ~/.tmux.conf
ln -sf "$(pwd)/dotfiles/fish/config.fish" ~/.config/fish/config.fish
ln -sf "$(pwd)/dotfiles/starship/starship.toml" ~/.config/starship.toml
ln -sf "$(pwd)/dotfiles/tmux.conf" ~/.tmux.conf
# ln -s $(pwd)/dotfiles/neovim ~/.config/nvim
mkdir -p ~/.config/nvim
ln -sf $(pwd)/dotfiles/neovim/init.lua ~/.config/nvim/init.lua
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
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/lsp_config.lua" ~/.config/nvim/lua/lsp_config.lua
ln -sf "$(pwd)/dotfiles/neovim/lua/pluto_nvim.lua" ~/.config/nvim/lua/pluto_nvim.lua
ln -sf "$(pwd)/dotfiles/neovim/lua/local_settings.lua" ~/.config/nvim/lua/local_settings.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/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
ln -sf $(pwd)/dotfiles/neovim/after/ftplugin/typst.lua ~/.config/nvim/after/ftplugin/typst.lua
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
ln -sf "$(pwd)/dotfiles/neovim/after/ftplugin/typst.lua" ~/.config/nvim/after/ftplugin/typst.lua
ln -sf "$(pwd)/dotfiles/neovim/after/ftplugin/org.lua" ~/.config/nvim/after/ftplugin/org.lua
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
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
ln -sf "$(pwd)/dotfiles/neovim/luasnippets/all.lua" ~/.config/nvim/luasnippets/all.lua
mkdir -p ~/.config/nvim/luasnippets/satysfi
ln -sf $(pwd)/dotfiles/neovim/luasnippets/satysfi/math.lua ~/.config/nvim/luasnippets/satysfi/math.lua
ln -sf "$(pwd)/dotfiles/neovim/luasnippets/satysfi/math.lua" ~/.config/nvim/luasnippets/satysfi/math.lua
mkdir -p ~/.julia/config
ln -sf $(pwd)/dotfiles/startup_linux.jl ~/.julia/config/startup.jl
ln -sf "$(pwd)/dotfiles/startup_linux.jl" ~/.julia/config/startup.jl
curl -o ~/.julia/config/catppuccin.jl https://raw.githubusercontent.com/catppuccin/ohmyrepl/refs/heads/main/catppuccin.jl
mkdir -p ~/.config/lf
ln -sf $(pwd)/dotfiles/lf/lfrc ~/.config/lf/lfrc
ln -sf "$(pwd)/dotfiles/lf/lfrc" ~/.config/lf/lfrc
ln -sf "$(pwd)/dotfiles/bat/config" "$(bat --config-file)"

View file

@ -6,27 +6,26 @@ using Pkg
# add LanguageServer.jl
Pkg.add("LanguageServer")
# add dependencies of LanguageServer.jl
pkg_ls = Pkg.project().dependencies["LanguageServer"]
pkg_ls_deps = Pkg.dependencies()[pkg_ls].dependencies |> keys
foreach(Pkg.add, pkg_ls_deps)
# add PackageCompiler.jl
Pkg.add("PackageCompiler")
# add extra dependencies
# these packages are manually collected
pkg_extra = ["Logging", "Sockets", "DataStructures", "Tar", "ArgTools", "Dates", "Downloads", "TOML"]
foreach(Pkg.add, pkg_extra)
@info "dependency added"
pkg_extra = ["Logging", "Sockets", "DataStructures", "Tar", "ArgTools", "Dates", "Downloads", "TOML", "JSONRPC", "SymbolServer", "CSTParser", "StaticLint", "JSON"]
Pkg.add(pkg_extra)
@info "added dependencies"
# Extra package to be executed in precompiled code
pkg_precompiled = ["Pkg"]
# save pkgs to be used for precompile functions with traced script
out_path = joinpath(Pkg.project().path |> dirname, "precompile_exec_head.jl")
@info "writing $(out_path)"
open(out_path, "w") do io
println(io, "using LanguageServer")
println(io, "using " * join(pkg_ls_deps, ", "))
println(io, "using " * join(pkg_extra, ", "))
if Sys.iswindows()
println(io, "using " * join(pkg_precompiled, ", "))
println(io, "import FileWatching")
end
end
@info "finished writing precompile head file"

View file

@ -5,7 +5,8 @@ if !ispath(project_path)
@info "Created $(project_path)"
touch(joinpath(project_path, "tracecompile.jl"))
end
cmd = `julia --project=$(project_path) $(@__DIR__)/add_dependencies.jl`
@info cmd
run(cmd)
using Pkg
Pkg.activate(project_path)
include("$(@__DIR__)/add_dependencies.jl")

View file

@ -1,15 +1,18 @@
#!/usr/bin/julia
project_path = joinpath(homedir(), ".julia", "environments", "nvim-lspconfig")
using Pkg
using PackageCompiler;
cd(project_path) do
@info "now at " pwd()
run(`julia --project=. -e 'using Pkg; Pkg.update()'`)
Pkg.activate(".")
Pkg.update()
compile_traces = Iterators.filter(eachline("tracecompile.jl")) do line
# Remove anonymous functions from compile trace
!startswith(line, '#') && !occursin(r"\#\d+\#\d+", line) && !occursin(r"\#\#printstyled\#", line)
end |> join
read("precompile_exec_head.jl", String) * compile_traces |> (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"])'`)
create_sysimage(["LanguageServer"], sysimage_path = "sys-ls.so", precompile_execution_file = ["precompile_exec.jl"])
@info "post precompile"
run(`julia --project=. -J sys-ls.so -e 'using Pkg; Pkg.precompile()'`)
end

4
dotfiles/bat/config Normal file
View file

@ -0,0 +1,4 @@
# use Catppuccin for bat
# https://github.com/catppuccin/bat
# Installation instruction on the readme
--theme="Catppuccin Mocha"

View file

@ -24,6 +24,25 @@ if status is-interactive
# opam
#source ~/.opam/opam-init/init.fish > /dev/null 2> /dev/null; or true
function rga-fzf
set RG_PREFIX 'rga --files-with-matches'
if test (count $argv) -gt 1
set RG_PREFIX "$RG_PREFIX $argv[1..-2]"
end
set -l file $file
set file (
FZF_DEFAULT_COMMAND="$RG_PREFIX '$argv[-1]'" \
fzf --sort \
--preview='test ! -z {} && \
rga --pretty --context 5 {q} {}' \
--phony -q "$argv[-1]" \
--bind "change:reload:$RG_PREFIX {q}" \
--preview-window='50%:wrap'
) && \
echo "opening $file" && \
open "$file"
end
end
# starship

1
dotfiles/neovim/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
lua/local_settings.lua

View file

@ -0,0 +1,2 @@
vim.o.tabstop = 2
vim.o.shiftwidth = 2

View file

@ -1,46 +1,7 @@
;; extends
((prefixed_string_literal
prefix: (identifier) @_prefix) @injection.content
(#eq? @_prefix "md")
(#set! injection.language "markdown")
(#offset! @injection.content 0 2 0 -1))
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "sql")
; (#set! injection.language "sql")
; (#offset! @injection.content 0 4 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "s")
; (#set! injection.language "sql")
; (#offset! @injection.content 0 3 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "t")
; (#set! injection.language "regex")
; (#offset! @injection.content 0 2 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "ts")
; (#set! injection.language "regex")
; (#offset! @injection.content 0 2 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "tu")
; (#set! injection.language "regex")
; (#offset! @injection.content 0 3 0 -1))
;
; ((prefixed_string_literal
; prefix: (identifier) @_prefix) @injection.content
; (#eq? @_prefix "sql")
; ; (#offset! @injection.content 0 2 0 -1)
; ; (#offset! @injection.content 0 6 0 -3)
; (#gsub! @injection.content "^\"%\"" "%1")
; (#set! injection.language "sql")
; )
(prefixed_string_literal
prefix: (identifier) @_prefix
(content) @injection.content
(#eq? @_prefix "sql")
(#set! injection.language "sql"))

View file

@ -114,6 +114,9 @@ require('lazy').setup({
build = ":TSUpdate",
dependencies = {
"nvim-treesitter/nvim-treesitter-textobjects",
{
"nvim-treesitter/nvim-treesitter-context"
}
},
},
{
@ -122,14 +125,6 @@ require('lazy').setup({
},
{
"andymass/vim-matchup",
config = function()
vim.g.matchup_matchparen_offscreen = { method = "popup" }
require 'nvim-treesitter.configs'.setup {
matchup = {
enable = true,
}
}
end,
},
{
'nvim-telescope/telescope.nvim',
@ -193,29 +188,7 @@ require('lazy').setup({
-- see Julian/lean.nvim readme
opts = {
lsp = {
on_attach = function(client, bufnr)
-- Enable completion triggered by <c-x><c-o>
--vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings
-- See `:help vim.lsp.*` for documentation on any of the below function
local bufopts = { noremap = true, silent = true, buffer = bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'g1', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'grf', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, bufopts)
end,
on_attach = require("lsp_config").on_attach,
},
mappings = true,
},
@ -231,18 +204,9 @@ require('lazy').setup({
},
-- event = 'VeryLazy', -- doesn't work with existing comp and treesitter
config = function()
-- Setup treesitter
require('nvim-treesitter.configs').setup({
highlight = {
enable = true,
additional_vim_regex_highlighting = { 'org' },
},
ensure_installed = { 'org' },
})
-- Setup orgmode
require('orgmode').setup({
org_agenda_files = '~/orgfiles/**/*',
org_agenda_files = require("local_settings").org_agenda_files,
org_default_notes_file = '~/orgfiles/refile.org',
org_todo_keywords = {
"TODO(t)",
@ -279,6 +243,66 @@ require('lazy').setup({
})
end,
},
{
'chomosuke/typst-preview.nvim',
ft = 'typst',
version = 'v1.*',
build = function()
require 'typst-preview'.update()
end,
config = function()
require 'typst-preview'.setup {
-- Setting this true will enable logging debug information to
-- `vim.fn.stdpath 'data' .. '/typst-preview/log.txt'`
debug = true,
-- Custom format string to open the output link provided with %s
-- Example: open_cmd = 'firefox %s -P typst-preview --class typst-preview'
open_cmd = nil,
-- Setting this to 'always' will invert black and white in the preview
-- Setting this to 'auto' will invert depending if the browser has enable
-- dark mode
-- Setting this to '{"rest": "<option>","image": "<option>"}' will apply
-- your choice of color inversion to images and everything else
-- separately.
invert_colors = 'never',
-- Whether the preview will follow the cursor in the source file
follow_cursor = true,
-- Provide the path to binaries for dependencies.
-- Setting this will skip the download of the binary by the plugin.
-- Warning: Be aware that your version might be older than the one
-- required.
dependencies_bin = {
['tinymist'] = 'tinymist',
['websocat'] = nil,
},
-- A list of extra arguments (or nil) to be passed to previewer.
-- For example, extra_args = { "--input=ver=draft", "--ignore-system-fonts" }
extra_args = nil,
-- This function will be called to determine the root of the typst project
get_root = function(path_of_main_file)
-- Use root of git repository as a --root for typst
local rootpath = vim.fs.root(path_of_main_file, '.git')
if rootpath then
return rootpath
else
return vim.fn.fnamemodify(path_of_main_file, ':p:h')
end
end,
-- This function will be called to determine the main file of the typst
-- project.
get_main_file = function(path_of_buffer)
return path_of_buffer
end,
}
end
},
})
-----------------------------------------------------------
@ -330,7 +354,8 @@ vim.keymap.set('n', 'L', '<cmd>tabn<cr>', { desc = 'tab next' })
require('catppuccin').setup({
transparent_background = true,
})
vim.cmd.colorscheme "catppuccin"
vim.cmd.colorscheme "catppuccin-mocha"
-- vim.cmd.colorscheme "catppuccin-latte"
-----------------------------------------------------------
vim.g.mapleader = ' '
@ -400,7 +425,7 @@ require('gitsigns').setup {
---@param mode string|string[]
---@param l string
---@param r any
---@param opts table?
---@param opts vim.keymap.set.Opts?
local function map(mode, l, r, opts)
opts = opts or {}
opts.buffer = bufnr
@ -431,7 +456,12 @@ local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', function() builtin.find_files { sort_lastused = true } end, { desc = "find files" })
vim.keymap.set('n', '<leader>fw', builtin.lsp_workspace_symbols, { desc = "lsp workspace symbols" })
vim.keymap.set('n', '<leader>fd', builtin.lsp_document_symbols, { desc = "lsp document symbols" })
vim.keymap.set('n', '<leader>flr', builtin.lsp_references, { desc = "lsp references for word" })
vim.keymap.set('n', '<leader>fli', builtin.lsp_incoming_calls, { desc = "lsp incoming calls" })
vim.keymap.set('n', '<leader>flo', builtin.lsp_outgoing_calls, { desc = "lsp outgoing calls" })
vim.keymap.set('n', '<leader>fll', builtin.lsp_implementations, { desc = "lsp implementations" })
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = "buffers" })
vim.keymap.set('n', '<leader>fz', builtin.current_buffer_fuzzy_find, { desc = "current buffer fuzzy find" })
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = "grep" })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = "help tags" })
vim.keymap.set('n', '<leader>fc', builtin.git_commits, { desc = "git commit" })
@ -553,35 +583,11 @@ local lspconfig = require 'lspconfig'
-- See `:help vim.diagnostic.* for documentation on any of the below functions
local opts = { noremap = true, silent = true }
vim.keymap.set('n', '<space>e', vim.diagnostic.open_float, opts)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev, opts)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next, opts)
vim.keymap.set('n', '<space>q', vim.diagnostic.setloclist, opts)
-- Use an on_attach function to only map the following keys
-- after the language server attaches to the current buffer
local on_attach = function(client, bufnr)
-- Enable completion triggered by <c-x><c-o>
--vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings
-- See `:help vim.lsp.*` for documentation on any of the below function
local bufopts = { noremap = true, silent = true, buffer = bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, bufopts)
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, bufopts)
vim.keymap.set('n', 'K', vim.lsp.buf.hover, bufopts)
vim.keymap.set('n', 'g1', vim.lsp.buf.implementation, bufopts)
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, bufopts)
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder, bufopts)
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, bufopts)
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, bufopts)
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, bufopts)
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, bufopts)
vim.keymap.set('n', 'grf', vim.lsp.buf.references, bufopts)
vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, bufopts)
end
local on_attach = require("lsp_config").on_attach
-- cmp_nvim_lsp supports additional LSP completion capabilities
local capabilities = require("cmp_nvim_lsp").default_capabilities()
@ -622,10 +628,13 @@ if julials_so_file then -- if sysimage doesn't exist, julials_so_file == nil
end
-- main
lspconfig.julials.setup {
on_attach = on_attach,
on_attach = function(client, bufnr)
on_attach(client, bufnr)
vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
end,
capabilities = capabilities,
cmd = { "julia", "--startup-file=no", "--history-file=no",
julials_so_option[1], julials_so_option[2],
-- julials_so_option[1], julials_so_option[2],
-- use below 2 lines to collect script to be included in sysimage
-- '--trace-compile',
-- vim.env.HOME .. "/.julia/environments/nvim-lspconfig/tracecompile.jl",
@ -665,6 +674,15 @@ lspconfig.julials.setup {
run(server)
]] }
}
-- JETLS
require 'lspconfig.server_configurations.jetls'
lspconfig.jetls.setup {
on_attach = function(client, bufnr)
on_attach(client, bufnr)
vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
end,
capabilities = capabilities,
}
-- SATySFi
require 'lspconfig.server_configurations.satysfi_ls'
lspconfig.satysfi_ls.setup {
@ -684,38 +702,39 @@ lspconfig.powershell_es.setup {
bundle_path = vim.fn.has('win32') == 1 and win_pwsh_es_path or arch_pwsh_es_path,
capabilities = capabilities,
}
-- ccls
-- -- csharp
-- lspconfig.omnisharp.setup {
-- cmd = {'omnisharp'},
-- }
-- lspconfig.typst_lsp.setup {
-- on_attach = on_attach,
-- capabilities = capabilities,
-- single_file_support = true,
-- }
lspconfig.tinymist.setup {
on_attach = on_attach,
capabilities = capabilities,
single_file_support = true,
-- offset_encoding = "utf-8",
settings = {
formatterMode = "typstyle",
},
}
lspconfig.rust_analyzer.setup {
on_attach = on_attach,
on_attach = function(client, bufnr)
on_attach(client, bufnr)
vim.lsp.inlay_hint.enable(true, { bufnr = bufnr })
end,
capabilities = capabilities,
settings = {
['rust-analyzer'] = {
cargo = {
features = "all",
},
check = {
command = "clippy",
}
}
}
},
},
},
}
local lss = { "pyright", "texlab", "ccls", "clangd", "ts_ls", --[["tailwindcss"]] "hls", "cmake",
"csharp_ls", "html", "r_language_server", "cssls", "jsonls", "sqls", "vhdl_ls", "ruff", "svls" }
local lss = { "pyright", "texlab", --[[ "ccls", ]] "clangd", "ts_ls", --[["tailwindcss"]] "hls", "cmake",
"csharp_ls", "html", "r_language_server", "cssls", "jsonls", "sqls", "vhdl_ls", "ruff", "lemminx", "nixd", "nil_ls",
"verible", "svls", "yamlls" }
for _, ls in pairs(lss) do
lspconfig[ls].setup {
on_attach = on_attach,

View file

@ -0,0 +1,37 @@
local M = {}
---Add `desc` to bufopts table.
---@param bufopts vim.keymap.set.Opts
---@param desc string
---@return vim.keymap.set.Opts
local function with_desc(bufopts, desc)
return vim.tbl_extend("error", bufopts, { desc = desc })
end
M.on_attach = function(client, bufnr)
-- Enable completion triggered by <c-x><c-o>
--vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc')
-- Mappings
-- See `:help vim.lsp.*` for documentation on any of the below function
local bufopts = { noremap = true, silent = true, buffer = bufnr }
vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, with_desc(bufopts, "goto declaration"))
vim.keymap.set('n', 'gd', vim.lsp.buf.definition, with_desc(bufopts, "goto definition"))
vim.keymap.set('n', 'gT', vim.lsp.buf.type_definition, with_desc(bufopts, "goto type definition"))
vim.keymap.set('n', 'K', vim.lsp.buf.hover, with_desc(bufopts, "lsp hover"))
vim.keymap.set('n', 'g1', vim.lsp.buf.implementation, with_desc(bufopts, "lsp implementations"))
vim.keymap.set('n', '<C-k>', vim.lsp.buf.signature_help, with_desc(bufopts, "lsp signature help"))
vim.keymap.set('n', '<space>wa', vim.lsp.buf.add_workspace_folder, with_desc(bufopts, "lsp add_workspace_folder"))
vim.keymap.set('n', '<space>wr', vim.lsp.buf.remove_workspace_folder,
with_desc(bufopts, "lsp remove_workspace_folder"))
vim.keymap.set('n', '<space>wl', function()
print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
end, with_desc(bufopts, "lsp list_workspace_folders"))
vim.keymap.set('n', '<space>D', vim.lsp.buf.type_definition, with_desc(bufopts, "lsp type definition"))
vim.keymap.set('n', '<space>rn', vim.lsp.buf.rename, with_desc(bufopts, "lsp rename"))
vim.keymap.set('n', '<space>ca', vim.lsp.buf.code_action, with_desc(bufopts, "lsp code_action"))
vim.keymap.set('n', 'grf', vim.lsp.buf.references, with_desc(bufopts, "lsp references"))
vim.keymap.set('n', '<space>f', function() vim.lsp.buf.format { async = true } end, with_desc(bufopts, "lsp format"))
end
return M

View file

@ -0,0 +1,36 @@
local configs = require 'lspconfig.configs'
local util = require 'lspconfig.util'
local root_files = { 'Project.toml', 'JuliaProject.toml' }
configs.jetls = {
default_config = {
cmd = {
'julia',
'--project=' .. vim.env.HOME .. '/work/julia/JETLS.jl',
'--startup-file=no',
'--history-file=no',
'-e',
[[
using JETLS
runserver(stdin, stdout)
]]
},
filetypes = { 'julia' },
root_dir = function(fname)
return util.root_pattern(unpack(root_files))(fname)
or vim.fs.dirname(vim.fs.find('.git', { path = fname, upward = true, })[1])
end,
single_file_support = true,
},
commands = {
-- JuliaActivateEnv = {
-- activate_env
-- }
},
docs = {
description = [[
JETLS: https://github.com/aviatesk/JETLS.jl
]],
},
}

View file

@ -139,7 +139,7 @@ function Enable-SshAgent {
.OUTPUTS
no outputs
#>
sudo Set-Service -Name ssh-agent -StartupType Manual && Start-Service ssh-agent
sudo run pwsh -c "Set-Service -Name ssh-agent -StartupType Manual && Start-Service ssh-agent"
}
# auto start ssh-agent and do ssh-add
function Invoke-SshAdd {
@ -164,6 +164,8 @@ $env:LESS = "-i -M -R -S -W -z-4 -x4"
$env:JL_SYSIMG_PATH = "$HOME/dotfiles/julia-sysimages"
$env:JL_SYSIMG_PLT = "$HOME/dotfiles/julia-sysimages/sys-plotsmakie.so"
$env:JL_SYSIMG_ETC = "$HOME/dotfiles/julia-sysimages/sys-etc.so"
# yazi file
$env:YAZI_FILE_ONE = "C:\Program Files\Git\usr\bin\file.exe"
# ==============================================================

View file

@ -1,6 +1,8 @@
try
using OhMyREPL
enable_autocomplete_brackets(false)
include("catppuccin.jl")
OhMyREPL.colorscheme!("CatppuccinMocha")
catch e
@warn "Failed to load OhMyREPL"
end

View file

@ -45,14 +45,17 @@ return {
-- },
color_scheme = "iceberg-dark",
-- color_scheme = "catppuccin-macchiato",
-- color_scheme = "catppuccin-latte",
-- color_scheme = "Everforest Dark (Gogh)",
use_fancy_tab_bar = false,
tab_bar_at_bottom = true,
window_background_opacity = 0.85,
window_background_opacity = 0.90,
-- font = wezterm.font 'FirgeNerd Console'
font = wezterm.font_with_fallback {
{
family = 'Juisee HWNF',
weight = 'Bold',
weight = 'Regular',
harfbuzz_features = {
'calt=0', -- disables ligature
'zero=1',

View file

@ -68,6 +68,8 @@ shortcut_config["General"]["findPrevious"] = "Ctrl+Shift+G, Shift+Return"
shortcut_config["General"]["jumpToPage"] = "Ctrl+J, G"
shortcut_config["General"]["nextPage"] = "Space, N"
shortcut_config["General"]["previousPage"] = "Backspace, P"
shortcut_config["General"]["zoomIn"] = "Ctrl+Up, Ctrl++"
shortcut_config["General"]["zoomOut"] = "Ctrl+Down, Ctrl+-"
with open(QPDFVIEW_CONFIG_SHORTCUTS, "w") as file:
shortcut_config.write(file, space_around_delimiters=False)

View file

@ -16,6 +16,9 @@ modmap:
Win_L:
held: Win_L
alone: Key_Chat
- name: left shift
remap:
Capslock: shift_l
keymap:
- name: ZenkakuHankaku to Esc
remap:

@ -1 +1 @@
Subproject commit 98581abe7cb2baecd63e95c337da08778fec60ae
Subproject commit 4661893b2a71e30ee13197ff4fa6291d85d1a012