extract neovim

This commit is contained in:
Tristan 2024-01-05 19:44:05 +00:00
parent be3aecc343
commit a93abe6f04
13 changed files with 113 additions and 101 deletions

View file

@ -29,6 +29,7 @@ let
in {
imports = [
./graphical.nix
../../lib/programs/home/neovim/.
];
programs.home-manager.enable = true;
@ -52,6 +53,7 @@ in {
yt-dlp
playerctl
neofetch
tree
];
programs.fish = {

View file

@ -7,8 +7,6 @@
with lib; let
editor = config.programs.editor;
pkg = editor.package;
terminal = config.programs.terminal.package;
termcmd = "${terminal}/bin/${terminal.pname}";
menu = config.programs.menu.package + config.programs.menu.dmenuCommand;
in {
options.programs = {
@ -27,67 +25,15 @@ in {
programs.vscode = {
enable = true;
package = editor.package;
extensions =
if editor.neovim
then
with pkgs; [
vscode-extensions.asvetliakov.vscode-neovim
]
else [];
userSettings =
{
extensions = [];
userSettings = {
"keyboard.dispatch" = "keyCode";
"terminal.integrated.sendKeybindingsToShell" = true;
"aws.telemetry" = false;
"gitlens.telemetry.enabled" = false;
"redhat.telemetry.enabled" = false;
"cSpell.language" = "en,en-GB";
}
// (
if editor.neovim
then {
"vscode-neovim.neovimExecutablePaths.linux" = "${pkgs.neovim}/bin/nvim";
"extensions.experimental.affinity" = {
"asvetliakov.vscode-neovim" = 1;
};
}
else {}
);
};
programs.neovim = mkIf editor.neovim {
enable = true;
defaultEditor = true;
extraLuaConfig = ''
${builtins.readFile ./neovim/config.lua}
'';
extraPackages = with pkgs; [
nodePackages_latest.typescript-language-server
vscode-langservers-extracted
gopls
nil
];
plugins = with pkgs.vimPlugins; [
vim-surround
vim-commentary
{
plugin = telescope-nvim;
type = "lua";
config = ''
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
'';
}
{
plugin = nvim-lspconfig;
type = "lua";
config = builtins.readFile ./neovim/lspconfig.lua;
}
firenvim
];
};
}
];
@ -99,12 +45,7 @@ in {
code_dir=~/Documents/code
cd $code_dir
repo=$({ ls && echo clone-repo; } | ${menu})
case $repo in
clone-repo)
url=$(wl-paste)
${termcmd} -e -- git clone "$url" ;;
*) [ -e "$repo" ] && ${pkg}/bin/${pkg.executableName} $repo ;;
esac
[ -e "$repo" ] && ${pkg}/bin/${pkg.executableName} $repo
'';
install = false;
hotkeys = [{key = "C";}];

View file

@ -1,19 +0,0 @@
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
vim.o.relativenumber = true
vim.o.signcolumn = 'yes'
vim.o.tabstop = 2
vim.o.shiftwidth = 2
vim.o.expandtab = true
vim.o.smartindent = true
vim.o.hlsearch = false
vim.o.scrolloff = 6
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("x", "p", "\"_dP")
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")

View file

@ -15,6 +15,7 @@ with lib; let
modifier = mkOption {
description = "modifiers for the key";
default = "SUPER";
example = "SUPER_SHIFT";
};
args = mkOption {
description = "args for the script when use this key";

View file

@ -0,0 +1,28 @@
vim.g.mapleader = ' '
vim.g.maplocalleader = ' '
vim.o.relativenumber = true
vim.o.signcolumn = 'yes'
vim.o.tabstop = 2
vim.o.shiftwidth = 2
vim.o.expandtab = true
vim.o.smartindent = true
vim.o.hlsearch = false
vim.o.scrolloff = 4
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
vim.keymap.set("x", "p", "\"_dP")
vim.keymap.set("n", "<leader>y", "\"+y")
vim.keymap.set("v", "<leader>y", "\"+y")
-- Global mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)
vim.keymap.set('v', '<C-c>', '"+y')
vim.keymap.set('i', '<C-v>', '<escape>"+p')

View file

@ -0,0 +1,51 @@
{
config,
pkgs,
lib,
...
}: {
programs.neovim = {
enable = true;
defaultEditor = true;
extraLuaConfig = ''
${builtins.readFile ./config.lua}
'';
extraPackages = with pkgs; [
nodePackages_latest.typescript-language-server
vscode-langservers-extracted
gopls
nil
];
plugins = with pkgs.vimPlugins; [
vim-surround
vim-commentary
{
plugin = telescope-nvim;
type = "lua";
config = ''
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, {})
vim.keymap.set('n', '<leader>fg', builtin.live_grep, {})
vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
'';
}
{
plugin = nvim-lspconfig;
type = "lua";
config = builtins.readFile ./lspconfig.lua;
}
firenvim
];
};
programs.vscode = {
extensions = [ pkgs.vscode-extensions.asvetliakov.vscode-neovim ];
userSettings = {
"vscode-neovim.neovimExecutablePaths.linux" = "${pkgs.neovim}/bin/nvim";
"extensions.experimental.affinity" = {
"asvetliakov.vscode-neovim" = 1;
};
};
};
}

View file

@ -16,16 +16,6 @@ lspconfig.eslint.setup {
lspconfig.gopls.setup {}
lspconfig.nil_ls.setup {}
-- Global mappings.
-- See `:help vim.diagnostic.*` for documentation on any of the below functions
vim.keymap.set('n', '<leader>e', vim.diagnostic.open_float)
vim.keymap.set('n', '[d', vim.diagnostic.goto_prev)
vim.keymap.set('n', ']d', vim.diagnostic.goto_next)
vim.keymap.set('n', '<leader>q', vim.diagnostic.setloclist)
vim.keymap.set('v', '<C-c>', '"+y')
vim.keymap.set('i', '<C-v>', '<escape>"+p')
-- Use LspAttach autocommand to only map the following keys
-- after the language server attaches to the current buffer
vim.api.nvim_create_autocmd('LspAttach', {

View file

@ -15,8 +15,8 @@
};
home-manager.users.${user}.imports = [
(import ./swaylock.nix)
(import ./swayidle.nix)
(import ./home/swaylock.nix)
(import ./home/swayidle.nix)
{
xdg.portal = {
enable = true;

View file

@ -16,7 +16,7 @@
};
home-manager.users.${user}.imports = [
(import ./swaylock.nix)
(import ./home/swaylock.nix)
{
xdg.portal = {
enable = true;

View file

@ -4,6 +4,8 @@
lib,
...
}: let
terminal = config.programs.terminal.package;
termcmd = "${terminal}/bin/${terminal.pname}";
my-deps = {
notify-send = "${pkgs.libnotify}/bin/notify-send";
playerctl = "${pkgs.playerctl}/bin/playerctl";
@ -299,5 +301,21 @@ in {
];
install = false;
}
{
name = "git clone";
text = ''
url=$(wl-paste)
${my-deps.notify-send} "Cloning $url"
${termcmd} -e -- git clone "$url"
${my-deps.notify-send} "Finished cloning $url"
'';
install = true;
hotkeys = [
{
key = "C";
modifier = "SUPER_SHIFT";
}
];
}
];
}