This repository has been archived on 2024-04-14. You can view files and clone it, but cannot push or open issues or pull requests.
nixos-dotfiles/user/configs/kakoune/kakoune.nix

77 lines
1.8 KiB
Nix
Raw Normal View History

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
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-12-16 08:10:28 +00:00
in
{
2022-08-07 16:37:11 +01:00
programs.kakoune = {
enable = true;
plugins = with pkgs.kakounePlugins; [
2022-09-04 00:54:47 +01:00
kak-lsp
2022-09-28 13:34:44 +01:00
kakboard
2022-09-04 00:54:47 +01:00
kakoune-extra-filetypes
2022-12-16 08:10:28 +00:00
#powerline-kak
2022-09-28 13:34:44 +01:00
smarttab
sort-selections
2022-08-07 16:37:11 +01:00
];
config = {
2022-12-27 09:40:36 +00:00
colorScheme = "gruvbox-dark";
2022-08-07 16:37:11 +01:00
tabStop = 4;
indentWidth = 4;
showMatching = true;
2022-10-03 23:21:40 +01:00
showWhitespace = { enable = false; };
2022-08-07 16:37:11 +01:00
numberLines.enable = true;
hooks = [
2022-10-03 23:21:40 +01:00
{
name = "WinSetOption";
option = "filetype=nix|sh";
commands = "hook window BufWritePre .* lsp-formatting-sync";
}
2022-08-07 16:37:11 +01:00
2022-10-03 23:21:40 +01:00
{
name = "WinCreate";
option = ".*";
commands = "kakboard-enable";
}
{
name = "InsertChar";
option = "\\t";
commands = "exec -draft -itersel h@";
}
2022-08-07 16:37:11 +01:00
];
2022-10-03 23:21:40 +01:00
keyMappings = [ ];
2022-08-07 16:37:11 +01:00
ui = {
assistant = "none";
setTitle = true;
};
};
extraConfig = ''
set global startup_info_version 99999999
2022-09-04 00:54:47 +01:00
#set-option global auto_pairs ( ) { } [ ] '"' '"' "'" "'" ` ` “ ” « »
2022-08-07 16:37:11 +01:00
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"
2022-12-16 08:10:28 +00:00
# require-module powerline
# powerline-start
# powerline-theme gruvbox
# powerline-separator global half-step
2022-08-07 16:37:11 +01:00
'';
};
2022-10-03 23:21:40 +01:00
home.packages = [ pkgs.rnix-lsp ];
2022-08-07 16:37:11 +01:00
}