add smb mount on personal darwin for keepass; nvim: add collect lsp, make lualline to reuse gitstatus\'s git diff
parent
150534c512
commit
53928208ea
|
@ -131,8 +131,8 @@ vim.api.nvim_create_autocmd({ "VimEnter" }, {
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
vim.g.gruvbox_contrast_dark="soft";
|
vim.g.gruvbox_contrast_dark = "soft";
|
||||||
vim.g.gruvbox_contrast_light="soft";
|
vim.g.gruvbox_contrast_light = "soft";
|
||||||
vim.opt.ignorecase = true;
|
vim.opt.ignorecase = true;
|
||||||
vim.opt.smartcase = true;
|
vim.opt.smartcase = true;
|
||||||
vim.opt.incsearch = true;
|
vim.opt.incsearch = true;
|
||||||
|
@ -159,7 +159,7 @@ vim.api.nvim_create_user_command('Dark', function(opts)
|
||||||
vim.g.gruvbox_contrast_dark = contrast;
|
vim.g.gruvbox_contrast_dark = contrast;
|
||||||
vim.opt.background = "dark";
|
vim.opt.background = "dark";
|
||||||
end,
|
end,
|
||||||
{nargs = "?";})
|
{ nargs = "?"; })
|
||||||
|
|
||||||
vim.api.nvim_create_user_command('Light', function(opts)
|
vim.api.nvim_create_user_command('Light', function(opts)
|
||||||
-- opts: {name, args: str, fargs: Splited<str>, range, ...}
|
-- opts: {name, args: str, fargs: Splited<str>, range, ...}
|
||||||
|
@ -168,7 +168,7 @@ vim.api.nvim_create_user_command('Light', function(opts)
|
||||||
vim.g.gruvbox_contrast_light = contrast;
|
vim.g.gruvbox_contrast_light = contrast;
|
||||||
vim.opt.background = "light";
|
vim.opt.background = "light";
|
||||||
end,
|
end,
|
||||||
{nargs = "?";})
|
{ nargs = "?"; })
|
||||||
|
|
||||||
vim.opt.lazyredraw = true
|
vim.opt.lazyredraw = true
|
||||||
vim.opt.termguicolors = true
|
vim.opt.termguicolors = true
|
||||||
|
@ -176,7 +176,7 @@ vim.opt.cursorline = true
|
||||||
-- some plugins misbehave when we do swap files
|
-- some plugins misbehave when we do swap files
|
||||||
vim.opt.swapfile = false
|
vim.opt.swapfile = false
|
||||||
vim.opt.backup = false
|
vim.opt.backup = false
|
||||||
vim.opt.undodir = vim.fn.stdpath('state')..'/.vim/undodir'
|
vim.opt.undodir = vim.fn.stdpath('state') .. '/.vim/undodir'
|
||||||
vim.opt.undofile = true
|
vim.opt.undofile = true
|
||||||
vim.opt.completeopt = 'menuone,noselect'
|
vim.opt.completeopt = 'menuone,noselect'
|
||||||
-- vim.opt.clipboard = "unnamedplus"
|
-- vim.opt.clipboard = "unnamedplus"
|
||||||
|
@ -246,6 +246,60 @@ vim.api.nvim_create_user_command(
|
||||||
end,
|
end,
|
||||||
{ nargs = 0 }
|
{ nargs = 0 }
|
||||||
)
|
)
|
||||||
|
|
||||||
|
-- `BufLoadFd {fd-args}`
|
||||||
|
-- WHAT:
|
||||||
|
-- Batch load the result of `fd <args>` into the buffer.
|
||||||
|
--
|
||||||
|
-- WHY;
|
||||||
|
-- This is especially helpful if you want to collect LSP diagnostics in the
|
||||||
|
-- current repository:
|
||||||
|
--
|
||||||
|
-- EXAMPLES:
|
||||||
|
-- `BufLoadFd -e ts -e tsx`: Loads all of tsserver-compatible in the current
|
||||||
|
-- root. Note that `fd` takes account of .gitignore (but not your Git's ignore config)
|
||||||
|
vim.api.nvim_create_user_command(
|
||||||
|
'BufLoadFd',
|
||||||
|
function(opts)
|
||||||
|
local results = vim.fn.systemlist('fd ' .. opts["args"])
|
||||||
|
for _k, v in pairs(results) do
|
||||||
|
vim.cmd("badd " .. v)
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
{ nargs = "*" }
|
||||||
|
)
|
||||||
|
|
||||||
|
-- `CollectLspDiag {fd-args}`
|
||||||
|
-- WHAT:
|
||||||
|
-- Opens files matching fd-args search, and go back to your initial buffer
|
||||||
|
-- This effectively loads files onto your LSP so that you collect Lsp diagnostics.
|
||||||
|
-- To list diagnostics, maybe use `:Trouble` or similar commands
|
||||||
|
--
|
||||||
|
-- WHY:
|
||||||
|
-- LSPs don't perform diagnostics to every file in the workspace, they are
|
||||||
|
-- lazily loaded. Sometimes, it's hard to reproduce the LSP diagnostics with
|
||||||
|
-- the compiler alone, this user command helps collecting all errors and
|
||||||
|
-- potentially filter the files that you want to ignore with an `fd` query.
|
||||||
|
--
|
||||||
|
-- EXAMPLES:
|
||||||
|
-- `CollectLspDiag -e ts -e tsx`: Loads all Typescript files in the current root,
|
||||||
|
-- with account of `.gitignore` into "active buffer" for the LSP to diagnose.
|
||||||
|
vim.api.nvim_create_user_command(
|
||||||
|
'CollectLspDiag',
|
||||||
|
function(opts)
|
||||||
|
--- @type string
|
||||||
|
local original_buf_path = vim.api.nvim_buf_get_name(0);
|
||||||
|
|
||||||
|
local files = vim.fn.systemlist('fd ' .. opts["args"])
|
||||||
|
for _k, file in pairs(files) do
|
||||||
|
vim.cmd("e " .. file)
|
||||||
|
end
|
||||||
|
|
||||||
|
vim.cmd('e ' .. original_buf_path);
|
||||||
|
end,
|
||||||
|
{ nargs = "*" }
|
||||||
|
)
|
||||||
|
|
||||||
vim.api.nvim_create_user_command(
|
vim.api.nvim_create_user_command(
|
||||||
'DoubleSpaces',
|
'DoubleSpaces',
|
||||||
function(opts)
|
function(opts)
|
||||||
|
@ -976,7 +1030,21 @@ require('lualine').setup {
|
||||||
},
|
},
|
||||||
sections = {
|
sections = {
|
||||||
lualine_a = { 'mode' },
|
lualine_a = { 'mode' },
|
||||||
lualine_b = { 'branch', 'diff', 'diagnostics' },
|
lualine_b = {
|
||||||
|
'branch', {
|
||||||
|
'diff', source = function ()
|
||||||
|
local gitsigns = vim.b.gitsigns_status_dict
|
||||||
|
if gitsigns then
|
||||||
|
return {
|
||||||
|
added = gitsigns.added,
|
||||||
|
modified = gitsigns.changed,
|
||||||
|
removed = gitsigns.removed
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
},
|
||||||
|
'diagnostics'
|
||||||
|
},
|
||||||
lualine_c = {
|
lualine_c = {
|
||||||
{ 'filename',
|
{ 'filename',
|
||||||
file_status = true,
|
file_status = true,
|
||||||
|
|
|
@ -43,7 +43,7 @@ let
|
||||||
pkgs.fzf # file name fuzzy search
|
pkgs.fzf # file name fuzzy search
|
||||||
pkgs.ripgrep # content fuzzy search
|
pkgs.ripgrep # content fuzzy search
|
||||||
pkgs.zk # Zettelkasten (limited support)
|
pkgs.zk # Zettelkasten (limited support)
|
||||||
pkgs.fd # Required by a Telescope plugin (?)
|
pkgs.fd # Required by a Telescope plugin - fzf
|
||||||
pkgs.stdenv.cc.cc.lib
|
pkgs.stdenv.cc.cc.lib
|
||||||
pkgs.rnix-lsp # doesn't work, Mason just installs it using cargo
|
pkgs.rnix-lsp # doesn't work, Mason just installs it using cargo
|
||||||
pkgs.rust4cargo
|
pkgs.rust4cargo
|
||||||
|
@ -56,8 +56,8 @@ let
|
||||||
pkgs.python3Packages.pylint
|
pkgs.python3Packages.pylint
|
||||||
pkgs.python3Packages.flake8
|
pkgs.python3Packages.flake8
|
||||||
# pkgs.ansible-lint
|
# pkgs.ansible-lint
|
||||||
pkgs.python38Packages.ansible
|
# pkgs.python38Packages.ansible
|
||||||
pkgs.ansible-language-server
|
# pkgs.ansible-language-server
|
||||||
# TODO: the devShell should provide rust-analyzer so that
|
# TODO: the devShell should provide rust-analyzer so that
|
||||||
# cargo test builds binaries compatible with rust-analyzer
|
# cargo test builds binaries compatible with rust-analyzer
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,15 @@
|
||||||
{
|
{
|
||||||
nixConfig = {
|
nixConfig = {
|
||||||
accept-flake-config = true;
|
accept-flake-config = true;
|
||||||
experimental-features = "nix-command flakes";
|
extra-experimental-features = "nix-command flakes";
|
||||||
extra-substituters = [
|
extra-substituters = [
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://cache.nixos.org"
|
"https://cache.nixos.org"
|
||||||
];
|
];
|
||||||
|
trusted-substituters = [
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://cache.nixos.org"
|
||||||
|
];
|
||||||
extra-trusted-public-keys = [
|
extra-trusted-public-keys = [
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
|
@ -149,7 +153,7 @@
|
||||||
# don't want to deal with GL stuffs on mac yet :/
|
# don't want to deal with GL stuffs on mac yet :/
|
||||||
base.graphics.useNixGL.defaultPackage = null;
|
base.graphics.useNixGL.defaultPackage = null;
|
||||||
# NOTE: this actually does not exist
|
# NOTE: this actually does not exist
|
||||||
base.keepass.path = "/Users/hungtran/keepass.kdbx";
|
base.keepass.path = "/Volumes/PersistentHotStorage/keepass.kdbx";
|
||||||
base.alacritty.font.size = 11.0;
|
base.alacritty.font.size = 11.0;
|
||||||
}
|
}
|
||||||
nerd_font_module
|
nerd_font_module
|
||||||
|
|
|
@ -9,13 +9,13 @@ HOME_MANAGER_DIR="${SCRIPT_DIR}/../nix-conf/home-manager"
|
||||||
|
|
||||||
# Manage nix.conf. Ideally, this should be done with snapshot-based version
|
# Manage nix.conf. Ideally, this should be done with snapshot-based version
|
||||||
# and with preview on-the-spot, with some timeout
|
# and with preview on-the-spot, with some timeout
|
||||||
if [ -f /etc/nix/nix.conf ]; then
|
# if [ -f /etc/nix/nix.conf ]; then
|
||||||
# managed nix.conf
|
# # managed nix.conf
|
||||||
BACKUP_FILE="/etc/nix/nix.conf.backup"
|
# BACKUP_FILE="/etc/nix/nix.conf.backup"
|
||||||
echo "overwriting /etc/nix/nix.conf. Please find latest backup in ${BACKUP_FILE}"
|
# echo "overwriting /etc/nix/nix.conf. Please find latest backup in ${BACKUP_FILE}"
|
||||||
sudo cp /etc/nix/nix.conf ${BACKUP_FILE}
|
# sudo cp /etc/nix/nix.conf ${BACKUP_FILE}
|
||||||
sudo cp "${HOME_MANAGER_DIR}/hwtr/nix.conf" /etc/nix/
|
# sudo cp "${HOME_MANAGER_DIR}/hwtr/nix.conf" /etc/nix/
|
||||||
fi
|
# fi
|
||||||
|
|
||||||
# Mason is bad: it puts binaries onto xdg.data
|
# Mason is bad: it puts binaries onto xdg.data
|
||||||
# let's make mason starts fresh, just in case we introduce RPATH hacks
|
# let's make mason starts fresh, just in case we introduce RPATH hacks
|
||||||
|
|
Loading…
Reference in New Issue