extract neovim
This commit is contained in:
parent
be3aecc343
commit
a93abe6f04
13 changed files with 113 additions and 101 deletions
|
|
@ -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 =
|
||||
{
|
||||
"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
|
||||
];
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
];
|
||||
|
|
@ -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";}];
|
||||
|
|
|
|||
|
|
@ -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")
|
||||
|
||||
|
|
@ -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";
|
||||
|
|
|
|||
28
lib/programs/home/neovim/config.lua
Normal file
28
lib/programs/home/neovim/config.lua
Normal 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')
|
||||
51
lib/programs/home/neovim/default.nix
Normal file
51
lib/programs/home/neovim/default.nix
Normal 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;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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', {
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
};
|
||||
|
||||
home-manager.users.${user}.imports = [
|
||||
(import ./swaylock.nix)
|
||||
(import ./home/swaylock.nix)
|
||||
{
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -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";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue