Compare commits

..

4 commits
work ... main

11 changed files with 172 additions and 74 deletions

View file

@ -15,31 +15,13 @@ shopt -s histappend
[[ -f $HOME/.bash_colors ]] && source "$HOME/.bash_colors"
[[ -f $HOME/.bash_functions ]] && source "$HOME/.bash_functions"
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
while read -r completion ; do source "$completion" ; done < <(find $HOME/.bash_completion/*)
# Save working dir on every prompt.
export PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"; pwd > $HOME/.cwd'
export PS1="${Red}\d \A ${Blue}\u@\h: ${Off}\w ${BGreen}\$(parse_branch git)${BPurple}\$(parse_branch fossil)${Off}\n-$ "
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
export PS1="${Yellow}\d \A ${Off}${Green}\u@\h: ${Off}\w ${Red}\$(parse_branch git)${BRed}\$(parse_branch fossil)${Off}\n-$ "
# Use fzf if installed.
export FZF_DEFAULT_OPTS='--border=horizontal --info=inline --no-reverse --height=30%'
hash fzf 2>/dev/null && eval "$(fzf --bash)"
export FZF_DEFAULT_OPTS='--border=horizontal --info=inline --no-reverse --height=50%'
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"

View file

@ -1,9 +1,9 @@
live_config_reload = true
working_directory = "None"
[general]
import = [
"~/.config/alacritty/light.toml"
]
live_config_reload = true
working_directory = "None"
[cursor]
thickness = 0.2
@ -13,7 +13,7 @@ style = "Block"
TERM = "alacritty"
[font]
size = 10
size = 11
[font.bold]
family = "monospace"
@ -414,7 +414,7 @@ history = 100000
save_to_clipboard = true
semantic_escape_chars = ",│`|:\"' ()[]{}<>\t"
[shell]
[terminal.shell]
program = "/bin/bash"
[window]

View file

@ -1,4 +1,4 @@
[storage]
driver = "overlay"
runroot = "/run/user/1000"
graphroot = "/home/vladanpopovic/.local/share/containers/storage"
graphroot = "/home/vladan/.local/share/containers/storage"

View file

@ -1,5 +1,5 @@
[user]
email = vladan.popovic@hm.com
email = vladanovic@gmail.com
name = Vladan Popovic
[core]
excludesfile = /home/vladan/.config/git/ignore

View file

@ -19,7 +19,6 @@ local common_on_attach = function(client, bufnr)
end,
})
end
-- Use vim's default coloring.
client.server_capabilities.semanticTokensProvider = nil
for _, group in ipairs(vim.fn.getcompletion("@lsp", "highlight")) do
@ -27,29 +26,29 @@ local common_on_attach = function(client, bufnr)
end
end
local nvim_lsp = require('lspconfig')
local capabilities = vim.lsp.protocol.make_client_capabilities()
-- LSP diagnostics.
vim.lsp.handlers["textDocument/publishDiagnostics"] =
vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = false,
underline = true,
signs = true,
update_in_insert = false
})
-- LSPs
local servers = {
"clangd",
"gleam",
"lua_ls",
"ocamllsp",
"pyright",
"rnix",
"terraformls",
"vimls",
}
for _, lsp in ipairs(servers) do
nvim_lsp[lsp].setup { capabilities = capabilities, on_attach = common_on_attach }
end
nvim_lsp.rust_analyzer.setup({
on_attach = common_on_attach,
capabilities = capabilities,
settings = {
["rust-analyzer"] = {
-- Setup rust outside of lspconfig.
vim.g.rustaceanvim = function()
return {
-- Plugin configuration.
tools = {
},
-- LSP configuration.
server = {
on_attach = function(client, bufnr)
common_on_attach(client, bufnr)
end,
default_settings = {
-- rust-analyzer language server configuration
['rust-analyzer'] = {
imports = {
granularity = {
group = "module",
@ -67,9 +66,31 @@ nvim_lsp.rust_analyzer.setup({
checkOnSave = {
command = "clippy",
},
},
},
-- DAP configuration.
dap = {
},
}
}
})
end
local nvim_lsp = require('lspconfig')
local capabilities = vim.lsp.protocol.make_client_capabilities()
-- LSPs
local servers = {
"clangd",
"lua_ls",
"ocamllsp",
"pyright",
"rnix",
"terraformls",
"vimls",
}
for _, lsp in ipairs(servers) do
nvim_lsp[lsp].setup { capabilities = capabilities, on_attach = common_on_attach }
end
nvim_lsp.ruff.setup({
on_attach = function (client)
@ -84,12 +105,3 @@ nvim_lsp.ruff.setup({
}
},
})
-- LSP diagnostics.
vim.lsp.handlers["textDocument/publishDiagnostics"] =
vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
virtual_text = false,
underline = true,
signs = true,
update_in_insert = false
})

View file

@ -0,0 +1,89 @@
local dap, dapui = require('dap'), require('dapui')
-- Open dapui once dap starts.
dapui.setup()
dap.listeners.before.attach.dapui_config = function()
dapui.open()
end
dap.listeners.before.launch.dapui_config = function()
dapui.open()
end
dap.listeners.before.event_terminated.dapui_config = function()
dapui.close()
end
dap.listeners.before.event_exited.dapui_config = function()
dapui.close()
end
-- Keybindings used in probably all editors/IDEs.
vim.keymap.set('n', '<F5>', dap.continue)
vim.keymap.set('n', '<F10>', dap.step_over)
vim.keymap.set('n', '<F11>', dap.step_into)
vim.keymap.set('n', '<F12>', dap.step_out)
-- Breakpoints.
vim.keymap.set('n', '<Leader>b', dap.toggle_breakpoint)
vim.keymap.set('n', '<Leader>B', dap.set_breakpoint)
vim.keymap.set('n', '<Leader>lp', function() dap.set_breakpoint(nil, nil, vim.fn.input('Log point message: ')) end)
-- Repl, run and dap-ui bindings.
vim.keymap.set('n', '<Leader>dr', dap.repl.open)
vim.keymap.set('n', '<Leader>dl', dap.run_last)
vim.keymap.set({'n', 'v'}, '<Leader>dh', function() require('dap.ui.widgets').hover() end)
vim.keymap.set({'n', 'v'}, '<Leader>dp', function() require('dap.ui.widgets').preview() end)
vim.keymap.set('n', '<Leader>df', function() local widgets = require('dap.ui.widgets') widgets.centered_float(widgets.frames) end)
vim.keymap.set('n', '<Leader>ds', function() local widgets = require('dap.ui.widgets') widgets.centered_float(widgets.scopes) end)
vim.fn.sign_define('DapBreakpoint', {text='󰬪', texthl='', linehl='', numhl=''})
-- Set up lldb (LLVM debugger)
-- Install archlinux: sudo pacman -S lldb
-- Install ubuntu: sudo apt
dap.adapters.lldb = {
type = 'server',
port = "${port}",
executable = {
command = '/usr/bin/lldb-dap',
args = { "--port", "${port}" },
},
}
-- Custom debuggable build runs (on top of rust-analyzer debuggables).
local ExecTypes = {
TEST = "cargo build --tests -q --message-format=json",
BIN = "cargo build -q --message-format=json"
}
local function runBuild(type)
local lines = vim.fn.systemlist(type)
local output = table.concat(lines, "\n")
local filename = output:match('^.*"executable":"(.*)",.*\n.*,"success":true}$')
if filename == nil then
return error("failed to build cargo project")
end
return filename
end
-- Custom debuggable configurations.
dap.configurations.rust = {
{
name = "Debug Test",
type = "lldb",
request = "launch",
program = function ()
return runBuild(ExecTypes.TEST)
end,
cwd = "${workspaceFolder}",
stopOnEntry = false,
showDisassembly = "never"
},
{
name = "Debug Bin",
type = "lldb",
request = "launch",
program = function ()
return runBuild(ExecTypes.BIN)
end,
cwd = "${workspaceFolder}",
stopOnEntry = false,
showDisassembly = "never"
}
}

View file

@ -3,6 +3,7 @@ require('plugins.packer_setup')
require('packer').startup(function()
-- Packer can manage itself as an optional plugin
use { 'wbthomason/packer.nvim', opt = true }
use { 'glepnir/nerdicons.nvim', cmd = 'NerdIcons', config = function() require('nerdicons').setup({}) end }
-- Fuzzy finder
use {
@ -38,14 +39,29 @@ require('packer').startup(function()
-- LSP and related
use { 'neovim/nvim-lspconfig' }
use { 'aznhe21/actions-preview.nvim' }
use { 'folke/trouble.nvim' } -- lsp diagnostics
use { 'folke/trouble.nvim' } -- diagnostics
-- Plugins to extend builtin language support
-- Plugins to extend builtin lsp
use { 'cespare/vim-toml' }
use { 'gleam-lang/gleam.vim' }
use { 'rust-lang/rust.vim' }
use { 'folke/neodev.nvim' }
use { 'hashivim/vim-terraform' }
use {
'mrcjkb/rustaceanvim',
requires = {
'mfussenegger/nvim-dap'
}
}
-- Debugging
use { 'mfussenegger/nvim-dap' }
use {
"rcarriga/nvim-dap-ui",
requires = {
"mfussenegger/nvim-dap",
"nvim-neotest/nvim-nio",
}
}
-- Git
use {
@ -70,6 +86,7 @@ end)
require('plugins.catppuccin')
require('plugins.cmp')
require('plugins.dap')
require('plugins.gitsigns')
require('plugins.luasnip_config')
require('plugins.neogit')

View file

@ -122,9 +122,9 @@
bindsym $mod+z exec swaylock -c 000000
# Take full screen screenshot with PrtScr
bindsym Print exec grim -t png "~/screenshot-$(date +%Y-%m-%d-%H%M%S).png"
bindsym Print exec grim -t png ~/screenshot-$(date +%Y-%m-%d-%H%M%S).png
# Take area screenshot with Shift+PrtScr
bindsym Shift+Print exec grim -g "$(slurp)" "~/screenshot-$(date +%Y-%m-%d-%H%M%S).png"
bindsym Shift+Print exec grim -g "$(slurp)" ~/screenshot-$(date +%Y-%m-%d-%H%M%S).png
#
# Resizing containers:

View file

@ -21,7 +21,7 @@
},
"network": {
"tooltip": false,
"interface": "wlp*",
"interface": "wlp3s0*",
"format-wifi": " {essid} ({signalStrength}%)",
"format-ethernet": "{ifname}: {ipaddr}/{cidr}",
"format-linked": "{ifname} (No IP)",

View file

@ -20,5 +20,3 @@ add_path() case :$PATH: in *:$1:*) ;; *) PATH=$1:$PATH;; esac
add_path $HOME/.local/bin
add_path $PYTHONUSERBASE/bin
add_path $HOME/.cargo/bin
add_path $HOME/.kubectl-plugins:$PATH
add_path $PATH:/opt/gradle/gradle-8.8/bin

View file

@ -1,5 +1,5 @@
default-cache-ttl 3600
pinentry-program /usr/bin/pinentry-gnome3
pinentry-program /usr/bin/pinentry-qt5
max-cache-ttl 72000
default-cache-ttl 72000
max-cache-ttl-ssh 72000