summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.bashrc2
-rw-r--r--.config/i3/config11
-rw-r--r--.config/nvim/lua/user/\13
-rw-r--r--.config/nvim/lua/user/lsp/cxx.lua12
-rw-r--r--.config/nvim/lua/user/lsp/rust.lua22
-rw-r--r--.config/nvim/lua/user/options.lua4
-rw-r--r--.config/nvim/lua/user/remaps.lua44
-rw-r--r--.config/nvim/lua/user/treesitter.lua8
8 files changed, 86 insertions, 30 deletions
diff --git a/.bashrc b/.bashrc
index 25d7ed8..6d4c311 100644
--- a/.bashrc
+++ b/.bashrc
@@ -8,7 +8,7 @@ alias psiphon="psiphon-console-client"
alias cppreference="microsoft-edge-dev /usr/share/doc/cppreference/en/cpp.html"
alias nv=nvim
alias whatsapp=whatsie
-alias lan="bash zerotierconnect.sh"
+alias lan="/home/main/zerotierconnect.sh"
alias python=/home/main/coding/py/venv/bin/python3
alias copy="xclip -selection clipboard"
alias ""="g++"
diff --git a/.config/i3/config b/.config/i3/config
index 7b7bac3..b4305c6 100644
--- a/.config/i3/config
+++ b/.config/i3/config
@@ -12,9 +12,8 @@ font pango:monospace 8
# https://wiki.archlinux.org/index.php/XDG_Autostart
exec --no-startup-id dex --autostart --environment i3
-# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
-# screen before suspend. Use loginctl lock-session to lock your screen.
-exec --no-startup-id xss-lock --transfer-sleep-lock -- $lock_cmd --nofork
+# REMOVED TEMPORARY
+# exec --no-startup-id xss-lock --transfer-sleep-lock -- $lock_cmd --nofork
# NetworkManager is the most popular way to manage wireless networks on Linux,
# and nm-applet is a desktop environment-independent system tray GUI for it.
@@ -127,7 +126,7 @@ set $ws3 "3: messengers"
set $ws4 "4: file manager"
set $ws5 "5: office"
set $ws6 "6"
-set $ws7 "7"
+set $ws7 "7: games"
set $ws8 "8: media player"
set $ws9 "9: code assisting"
set $ws10 "10: code editors"
@@ -173,6 +172,8 @@ assign [class="pm"] workspace $ws5
assign [class="vlc"] workspace $ws8
assign [class="libreoffice"] workspace $ws5
assign [class="steam"] workspace $ws9
+assign [class="org-tlauncher-tlauncher-rmo-TLauncher"] workspace $ws7
+assign [class="^Minecraft.*$"] workspace $ws7
#assign [class="GigaQt"] workspace $ws9
@@ -183,7 +184,7 @@ workspace $ws3 output $monitor_primary
# workspace $ws4 output $monitor_primary
workspace $ws5 output $monitor_primary
workspace $ws6 output $monitor_secondary
-workspace $ws7 output $monitor_secondary
+workspace $ws7 output $monitor_primary
workspace $ws8 output $monitor_secondary
workspace $ws9 output $monitor_secondary
workspace $ws10 output $monitor_primary
diff --git a/.config/nvim/lua/user/\ b/.config/nvim/lua/user/\
new file mode 100644
index 0000000..2baf779
--- /dev/null
+++ b/.config/nvim/lua/user/\
@@ -0,0 +1,13 @@
+lsp = require 'lspconfig'
+
+lsp.clangd.setup {
+ cmd = {"clangd", "--background-index", "--suggest-missing-includes", "--clang-tidy"},
+ filetypes = {"c", "cpp", "cxx", "h", "hpp", "hxx", "inc", "objc", "objcpp"},
+ root_dir = lspconfig.utill.root_pattern("CMakeLists.txt", "Makefile", "qmake.pro", ".git"),
+ init_options = {
+ clangdFileStatus = true,
+ usePlaceholders = true,
+ completeUnimported = true,
+ semanticHighlighting = true,
+ },
+}
diff --git a/.config/nvim/lua/user/lsp/cxx.lua b/.config/nvim/lua/user/lsp/cxx.lua
index 5cd4a2e..afc98b4 100644
--- a/.config/nvim/lua/user/lsp/cxx.lua
+++ b/.config/nvim/lua/user/lsp/cxx.lua
@@ -1 +1,13 @@
lsp = require 'lspconfig'
+
+lsp.clangd.setup {
+ cmd = {"clangd", "--background-index", "--suggest-missing-includes", "--clang-tidy"},
+ filetypes = {"c", "cpp", "cxx", "h", "hpp", "hxx", "inc", "objc", "objcpp"},
+ root_dir = lsp.util.root_pattern("compile_commands.json", "CMakeLists.txt", "Makefile", "qmake.pro", ".git"),
+ init_options = {
+ clangdFileStatus = true,
+ usePlaceholders = true,
+ completeUnimported = true,
+ semanticHighlighting = true,
+ },
+}
diff --git a/.config/nvim/lua/user/lsp/rust.lua b/.config/nvim/lua/user/lsp/rust.lua
index 41cb03c..83c1f2c 100644
--- a/.config/nvim/lua/user/lsp/rust.lua
+++ b/.config/nvim/lua/user/lsp/rust.lua
@@ -1,28 +1,6 @@
local lsp = require 'lspconfig'
local rust = require 'rust-tools'
--- vim.cmd [[
--- autocmd FileType rust highlight link rustLifetime SpecialComment
--- ]]
-
--- vim.cmd [[
--- autocmd FileType rust setlocal inccommand=nosplit
--- ]]
-
--- lsp.rust_analyzer.setup{
--- cmd = {"rust-analyzer"},
--- filetypes = {"rust", "rs"},
--- root_dir = lsp.util.root_pattern("Cargo.toml"),
--- -- fucking magic
--- capabilities = require('cmp_nvim_lsp').default_capabilities(vim.lsp.protocol.make_client_capabilities()),
--- settings = {
--- ["rust-analyzer"] = {
--- disgnostics = { enable = true },
--- inlayHints = { typeHints = true },
--- },
--- },
--- }
-
rust.setup{
server = {
on_attach = function(_, bufnr)
diff --git a/.config/nvim/lua/user/options.lua b/.config/nvim/lua/user/options.lua
index 44c3599..098277d 100644
--- a/.config/nvim/lua/user/options.lua
+++ b/.config/nvim/lua/user/options.lua
@@ -28,7 +28,9 @@ local options = {
splitbelow = true,
splitright = true,
-- autocompletion
- completeopt = { 'menuone', 'noselect', 'noinsert' }
+ completeopt = { 'menuone', 'noselect', 'noinsert' },
+ -- treesitter
+ foldlevel = 3,
}
for key, val in pairs(options) do
diff --git a/.config/nvim/lua/user/remaps.lua b/.config/nvim/lua/user/remaps.lua
index e5a465c..6400957 100644
--- a/.config/nvim/lua/user/remaps.lua
+++ b/.config/nvim/lua/user/remaps.lua
@@ -3,6 +3,7 @@
local opt = { noremap = true, silent = true }
local map = vim.api.nvim_set_keymap
+local lmap = vim.keymap.set
map("", "\\", "<Nop>", opt)
vim.g.mapleader = "\\"
@@ -57,6 +58,10 @@ map("v", ">", ">gv", opt)
map("n", "<A-j>", ":m .-2<CR>==", opt) -- SWITCHED K AND J
map("n", "<A-k>", ":m .+1<CR>==", opt) -- SWITCHED K AND J
+-- moving buffer
+map("n", "<A-Down>", "<C-e>", opt)
+map("n", "<A-Up>", "<C-y>", opt)
+
-- duplicating lines
map("n", "<C-A-Up>", ":.,.t.-1<CR>==", opt)
map("n", "<C-A-Down>", ":.,.t.<CR>==", opt)
@@ -74,3 +79,42 @@ map("c", "w!!", "w !sudo tee % > /dev/null", opt)
map("n", "G", "G$", opt)
map("n", "gg", "gg0", opt)
+-- treesitter remaps
+map("n", "<leader>h", "zC", opt)
+map("n", "<leader>l", "zO", opt)
+map("n", "<leader>H", "zM", opt)
+map("n", "<leader>L", "zR", opt)
+map("n", "<leader>f", "za", opt)
+
+-- disgnostic remaps
+lmap("n", "<leader>d", vim.diagnostic.open_float)
+lmap("n", "d[", vim.diagnostic.goto_prev)
+lmap("n", "d]", vim.diagnostic.goto_next)
+
+-- language server remaps
+-- enable only after attaching language server to buffer
+vim.api.nvim_create_autocmd('LspAttach', {
+ group = vim.api.nvim_create_augroup('UserLspConfig', {}),
+ callback = function(event)
+ -- i don't know whether i should enable this
+ -- vim.bo[event.buf].omnifunc = 'v:lua.vim.lsp.omnifunc'
+ local opts = { buffer = event.buf }
+ vim.keymap.set('n', 'gD', vim.lsp.buf.declaration, opts)
+ vim.keymap.set('n', 'gd', vim.lsp.buf.definition, opts)
+ vim.keymap.set('n', 'K', vim.lsp.buf.hover, opts)
+ vim.keymap.set('n', 'gi', vim.lsp.buf.implementation, opts)
+ vim.keymap.set('n', '<leader><C-k>', vim.lsp.buf.signature_help, opts)
+ vim.keymap.set('n', '<leader>wa', vim.lsp.buf.add_workspace_folder, opts)
+ vim.keymap.set('n', '<leader>wr', vim.lsp.buf.remove_workspace_folder, opts)
+ vim.keymap.set('n', '<leader>wl', function()
+ print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
+ end, opts)
+ vim.keymap.set('n', '<leader>D', vim.lsp.buf.type_definition, opts)
+ vim.keymap.set('n', '<leader>r', vim.lsp.buf.rename, opts)
+ vim.keymap.set({ 'n', 'v' }, '<leader>a', vim.lsp.buf.code_action, opts)
+ vim.keymap.set('n', 'gr', vim.lsp.buf.references, opts)
+ vim.keymap.set('n', '<leader>F', function()
+ vim.lsp.buf.format { async = true }
+ end, opts)
+ end,
+})
diff --git a/.config/nvim/lua/user/treesitter.lua b/.config/nvim/lua/user/treesitter.lua
index b98311f..74b8f56 100644
--- a/.config/nvim/lua/user/treesitter.lua
+++ b/.config/nvim/lua/user/treesitter.lua
@@ -4,8 +4,11 @@
local ts = require 'nvim-treesitter'
local tsc = require 'nvim-treesitter.configs'
+vim.wo.foldmethod = 'expr'
+vim.wo.foldexpr = 'nvim_treesitter#foldexpr()'
+
tsc.setup{
- ensure_installed = { "rust" },
+ ensure_installed = { "rust", "cpp", "python" },
auto_install = true,
highlight = {
enable = true,
@@ -17,4 +20,7 @@ tsc.setup{
extended_mode = true,
max_file_lines = 1024,
},
+ fold = {
+ enable = true,
+ }
}