2022-08-08 10:01:42 +01:00
|
|
|
|
{ config, pkgs, lib, inputs, ... }:
|
2022-08-07 16:37:11 +01:00
|
|
|
|
let
|
|
|
|
|
smarttab = pkgs.kakouneUtils.buildKakounePlugin {
|
2022-08-08 10:01:42 +01:00
|
|
|
|
name = "kakoune-smarttab";
|
|
|
|
|
src = inputs.kakoune-smarttab;
|
2022-08-07 16:37:11 +01:00
|
|
|
|
};
|
2022-08-08 10:01:42 +01:00
|
|
|
|
|
2022-08-07 16:37:11 +01:00
|
|
|
|
auto-pairs = pkgs.kakouneUtils.buildKakounePlugin {
|
2022-08-08 10:01:42 +01:00
|
|
|
|
name = "kakoune-auto-pairs";
|
|
|
|
|
src = inputs.kakoune-auto-pairs;
|
2022-08-07 16:37:11 +01:00
|
|
|
|
};
|
|
|
|
|
sort-selections = pkgs.kakouneUtils.buildKakounePlugin {
|
|
|
|
|
name = "sort-selections-kak";
|
2022-08-08 10:01:42 +01:00
|
|
|
|
src = inputs.kakoune-sort-selections;
|
2022-08-07 16:37:11 +01:00
|
|
|
|
};
|
2022-08-08 10:01:42 +01:00
|
|
|
|
|
2022-08-07 16:37:11 +01:00
|
|
|
|
in
|
|
|
|
|
{
|
|
|
|
|
programs.kakoune = {
|
|
|
|
|
enable = true;
|
|
|
|
|
plugins = with pkgs.kakounePlugins; [
|
|
|
|
|
smarttab
|
|
|
|
|
kakboard
|
|
|
|
|
auto-pairs
|
|
|
|
|
pkgs.kak-lsp
|
|
|
|
|
sort-selections
|
|
|
|
|
];
|
|
|
|
|
config = {
|
|
|
|
|
colorScheme = "gruvbox-dark";
|
|
|
|
|
tabStop = 4;
|
|
|
|
|
indentWidth = 4;
|
|
|
|
|
showMatching = true;
|
|
|
|
|
showWhitespace = {
|
|
|
|
|
enable = false;
|
|
|
|
|
};
|
|
|
|
|
numberLines.enable = true;
|
|
|
|
|
|
|
|
|
|
hooks = [
|
|
|
|
|
{ name = "WinSetOption"; option = "filetype=nix|sh"; commands = "hook window BufWritePre .* lsp-formatting-sync"; }
|
|
|
|
|
|
|
|
|
|
{ name = "WinCreate"; option = ".*"; commands = "kakboard-enable"; }
|
|
|
|
|
{ name = "InsertChar"; option = "\\t"; commands = "exec -draft -itersel h@"; }
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
keyMappings = [
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
ui = {
|
|
|
|
|
assistant = "none";
|
|
|
|
|
setTitle = true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
extraConfig = ''
|
|
|
|
|
set global startup_info_version 99999999
|
|
|
|
|
set-option global auto_pairs ( ) { } [ ] '"' '"' "'" "'" ` ` “ ” ‘ ’ « » ‹ ›
|
|
|
|
|
|
|
|
|
|
eval %sh{kak-lsp --kakoune -s $kak_session} # Not needed if you load it with plug.kak.
|
|
|
|
|
lsp-enable
|
|
|
|
|
|
|
|
|
|
map global user l %{: enter-user-mode lsp<ret>} -docstring "LSP mode"
|
|
|
|
|
|
|
|
|
|
'';
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
home.packages = [
|
|
|
|
|
pkgs.rnix-lsp
|
|
|
|
|
];
|
|
|
|
|
}
|
2022-08-08 10:01:42 +01:00
|
|
|
|
|