Compare commits

...

6 commits

Author SHA1 Message Date
b6222e3682 Add delta styling for moved code 2025-03-18 21:52:08 +01:00
6d801bcb4e Move formatting configuration to separate file 2025-03-18 21:51:14 +01:00
6adb1f506f Add additional configuration for lua lsp 2025-03-18 20:16:43 +01:00
0dc654ae2e Remove excluded clients
Should be disabled in LSP configuration
2025-03-18 19:56:11 +01:00
d174718477 Include tmux project init script 2025-03-18 19:50:29 +01:00
747a1fe584 Replace formatting code 2025-03-18 19:49:26 +01:00
7 changed files with 73 additions and 47 deletions

33
files/tmux.sh Executable file
View file

@ -0,0 +1,33 @@
#!/bin/bash
session_name=${PWD##*/}
project_directory="$HOME/development/$session_name"
enable_formatting=""
tmux has-session -t $session_name
if [ $? != 0 ];
then
tmux new-session \
-c $project_directory \
-ds $session_name \
-e "project_dir=$project_directory"
# FIRST WINDOW
tmux send-keys -t $session_name:0 'source ./env/bin/activate' C-m
tmux send-keys -t $session_name:0 'nvim' C-m
# SECOND WINDOW
tmux new-window -t $session_name
# THIRD WINDOW
tmux new-window -t $session_name
# FOURTH WINDOW
tmux new-window -t $session_name
# SELECT DEFAULT PANE AFTER OPENING
tmux select-window -t $session_name:0
fi
tmux attach -t $session_name

View file

@ -29,7 +29,7 @@ language_servers:
- package: lua-language-server
server_name: 'lua_ls'
auto_setup: true
auto_setup: false
- package: yaml-language-server
server_name: 'yamlls'

View file

@ -120,3 +120,6 @@
- src: 'templates/nvim/lua/filetype.lua.j2'
dest: '{{ xdg_config_dir }}/nvim/lua/_filetype.lua'
- src: 'templates/nvim/lua/formatting.lua.j2'
dest: '{{ xdg_config_dir }}/nvim/lua/formatting.lua'

View file

@ -50,4 +50,5 @@ autocorrect = prompt
navigate = true
hyperlinks = true
line-numbers = true
map-styles = bold purple => syntax magenta, bold cyan => syntax blue, bold yellow => syntax yellow
{% endif %}

View file

@ -1,6 +1,5 @@
-- {{ ansible_managed }}
-- TODO: load environment vars from .env files
require('options')
require('_filetype')
require('colorscheme')
@ -12,3 +11,4 @@ require('indent-blankline')
require('_nvim-tree')
require('lua-line')
require('_source-link')
require('formatting')

View file

@ -0,0 +1,22 @@
local enable_formatting = os.getenv("enable_formatting") == 'true';
if (enable_formatting) then
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('lsp', { clear = true }),
callback = function(args)
local client = vim.lsp.get_client_by_id(args.data.client_id)
if client.server_capabilities.documentFormattingProvider then
vim.api.nvim_create_autocmd('BufWritePre', {
buffer = args.buf,
callback = function()
vim.lsp.buf.format {
async = false,
id = args.data.client_id
}
end,
})
end
end
})
end

View file

@ -95,6 +95,18 @@ nvim_lsp.jsonls.setup {
capabilities = snippet_capabilities,
}
nvim_lsp.lua_ls.setup {
on_attach = on_attach,
capabilities = snippet_capabilities,
settings = {
Lua = {
diagnostics = {
globals = { 'vim' }
}
}
}
}
{% endif %}
nvim_lsp.yamlls.setup {
on_attach = on_attach,
@ -175,48 +187,3 @@ vim.diagnostic.config {
end
},
}
local enable_formatting = os.getenv("ENABLE_FORMATTING")
-- format buffers before saving for specific LSPs
if (enable_formatting) then
local excluded_clients = { 'pyright' }
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('lsp', { clear = true }),
callback = function(args)
vim.api.nvim_create_autocmd('BufWritePre', {
buffer = args.buf,
callback = function()
local formatting_clients = vim.lsp.get_clients {
bufnr = args.buf,
method = 'textDocument/formatting'
}
local filtered_clients = {}
for _, client in pairs(formatting_clients) do
if vim.list_contains(excluded_clients, client.name) then
goto skip
end
table.insert(filtered_clients, client.name)
::skip::
end
if #filtered_clients == 0 then
return
end
vim.lsp.buf.format {
filter = function(client)
return vim.list_contains(filtered_clients, client.name)
end,
async = false,
id = args.data.client_id
}
end,
})
end
})
end