-
-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
kakoune: update hooks #3418
kakoune: update hooks #3418
Conversation
is there a way to automate that ? |
Maybe this shouldn't even be an enum? |
All hooks are defined in this header file at the moment. Technically, everything is doable. So I guess we could have a script that parses this file and updates hooks accordingly in home manager. But this means we become dependent on the source code implementation. I think I am more in favour of having a string instead of an enum, as suggested by @sumnerevans. I am not sure it brings a lot of value to have an enum. Kakoune is a project that is rather stable, so the core is not expected to change a lot, but this could still happen that hooks get changed/deleted/added from time to time. What do you think @teto? |
looks better than a misleading enum. Something I want to do for neovim is to check the generated config after the build. I suppose we could do the same with kakoune ? |
What do you mean exactly by "checking the generated config" @teto? Something like launching the editor and checking if an error is returned due to a bad configuration? Or parsing the generated file to somehow analyze if it is a "correct" one? For Vim/Neovim, I guess that checking a lua file is doable, but as Kakoune uses its own configuration format (which is kind of a wrapper around bash), not sure how we can do this easily. If you agree, I can modify the PR to instead use a plain string for those hooks. Just let me know. Thanks. |
sorry for being unclear but yeah ^ is basically what I had in mind. |
I see, I am not sure to know how to implement that, however. For the time being, should I simply modify the PR to use a string instead of an enum then? |
Yes to using a string instead of an enum. As for the check you could run in checkPhase |
I am struggling to make this Here is the bit that is important in the thread:
So kakoune has got a system configuration file https://github.com/mawww/kakoune/blob/master/share/kak/kakrc We can see that this system If there is a problem with configuration when the program is executed, kakoune will simply report the errors in a so-called "debug buffer", but will not exit nor return any error code. So that means we have to manually find a way to prevent the configuration from loading automatically and use kakoune’s The flag So far, I have this (extract of
But unfortunately, it seems that Do you have an idea on how to workaround this @teto? And all this complexity makes me wonder about the maintainability of this configuration checker. I don’t know if it is a good idea to add something that feels that clunky to check the configuration of kakoune, as there is no official way of doing it. |
As I was in an extensive discovery phase of kakoune those past few weeks, so I created a few PRs here and there when I saw inconsistencies. But I finally decided to go back to neovim, so I wanted to say that I will probably loose interest in this PR if it does not get merged soon. I don't mean to hurry anything, but maybe we should simply change the hooks into a string, and keep the configuration validation for another PR in the future (as it is not as trivial as what I thought). What do you think @teto? |
If u are losing interest, I think we can merge as is. If you have some code pending, reference the branch here so that a future kakoune user can resume from it. |
Let’s do this then. I have created a follow-up PR that I just closed, just for reference. It has all the information about the WIP. So I guess this current PR can be merged then. Thanks a lot |
Some hooks were removed in Kakoune, and some were added. This PR updates the list so they are aligned with the latest version of Kakoune. Removed mawww/kakoune@e4fb70e NormalBegin NormalEnd InsertBegin InsertEnd mawww/kakoune@78419bc InsertCompletionSelect Added mawww/kakoune@c8839e7 ClientCreate ClientClose mawww/kakoune@47ba36c RegisterModified mawww/kakoune@f2cc7bc User
add none backend and sender fix typos run ./format -C add notify service add watch service run ./format -C add sync options starship: fix nushell integration Overwrite starship/init.nu if already exists, since this is a cache file for sourcing in `init.nu`. starship: re-add ion integration which was apparently mistakenly removed in commit 7ae7250 broot: update test to match upstream changes Fixes nix-community#3527 broot: simplify test slightly flake.lock: Update Flake lock file updates: • Updated input 'nixpkgs': 'github:nixos/nixpkgs/757b82211463dd5ba1475b6851d3731dfe14d377' (2022-12-16) → 'github:nixos/nixpkgs/fad51abd42ca17a60fc1d4cb9382e2d79ae31836' (2022-12-25) direnv: enable nushell integration This enables nushell integration by default for direnv, similar to bash/zsh/fish. The slightly verbose way of setting this is to ensure that peoples' existing nushell configuration isn't overwritten, only appended to, as would be the case if we just used the integration example from the nushell docs: https://www.nushell.sh/cookbook/direnv.html Closes nix-community#3520 fish: set tmp $HOME to silence errors parcellite: add extraOptions option Even though `--no-icon` is currently the only viable option for both parcellite and clipit, other options may be added to later releases. parcellite: add basic test case clipman: add module gitui: update default theme to match upstream Fixes nix-community#3506 neovim: fix extraLuaPackages type. (nix-community#3533) Assigning to `programs.neovim.extraLuaPackages` a function taking a lua package set as input and returning a list of packages, as described in the documentation, threw an error because the rest of the code assumed that the value was always a plain list. Using `lib.types.coercedTo`, we can accept such functions, as per the documentation, as well as plain lists, which we then convert to a function ignoring its input argument. We print a warning when a plain list is assigned, since the function form is preferred, as it ensures that the right lua package set is used. For the lua packages, we also get the lua package set from the finalPackage, to make sure that we are always using the same package set as the actual unwrapped neovim package being built. For `programs.neovim.extraPythonPackages` I did the same. I updated the test case so that we test both ways of setting these options. kakoune: update hooks (nix-community#3418) Some hooks were removed in Kakoune, and some were added. This PR updates the list so they are aligned with the latest version of Kakoune. Removed mawww/kakoune@e4fb70e NormalBegin NormalEnd InsertBegin InsertEnd mawww/kakoune@78419bc InsertCompletionSelect Added mawww/kakoune@c8839e7 ClientCreate ClientClose mawww/kakoune@47ba36c RegisterModified mawww/kakoune@f2cc7bc User man: update database cache generation Specifically, use the configured man-db package for generating the database cache. i3: Fix escaping in documentation In nix `${` is escaped like this `''${` and not like this `\${` home-environment: use `lazyAttrsOf` for `home.sessionVariables` (nix-community#3541) * home-environment: use `lazyAttrsOf` for `home.sessionVariables` `attrs` has unreasonable merge semantics and is deprecated. `attrsOf` doesn't support variables depending on each other as is recommended in the option's description. * home-environment: restrict `sessionVariables` type The consumer is `toString`, but we don't want to accept e.g. lists. vim,neovim: add `defaultEditor` (nix-community#3496) Also rename `vim_configurable` to `vim-full` per NixOS/nixpkgs#204438 feh: Add package option (nix-community#3552) Co-authored-by: Naïm Favier <n@monade.li> Co-authored-by: Sumner Evans <me@sumnerevans.com> i3-sway: Use foot as default terminal on sway (nix-community#3490) fluxbox: fix a typo, windowMenu -> windowmenu (nix-community#3544) home.pointerCursor: use mkDefault to set XCURSOR_PATH (nix-community#3553) fixes nix-community#3551 docs: bump nmd - Simplifies DocBook build by generation version DocBook 5 files directly. - Make DocBook generate consistent anchor IDs. easyeffects: add package option (nix-community#3568) docs: bump nmd - Introduces support for Markdown documentation in modules. ncmpcpp: Allow `str` type values for `mpdMusicDir` option (nix-community#3565) The default value of `programs.ncmpcpp.mpdMusicDir` is taken from `services.mpd.musicDirectory` if the mpd module is enabled, which has type `either path str`. `programs.ncmpcpp.mpdMusicDir` did not accept `str` values, though, so an error was raised when the default value was used and `services.mpd.musicDirectory` was set to a value of type `str`. This commit changes the type of `programs.ncmpcpp.mpdMusicDir` to also accept `str` to reflect the type of `services.mpd.musicDirectory`. Fixes nix-community#3560 docs: bump nmd Fixes nix-community#3573 i3: remove i3/i3-gaps distinction (nix-community#3563) firefox: remove https-everywhere from example See https://gitlab.com/rycee/nur-expressions/-/commit/b70c44e8575e65ff63c5f52eb726aa3fc9a86af7 files: avoid surprises when linking files (nix-community#3018) docs: bump nmd Fixes nix-community#3579 Translate using Weblate (Norwegian Bokmål) Currently translated at 87.5% (28 of 32 strings) Co-authored-by: Petter K <petterkarlsrud@me.com> Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/nb_NO/ Translation: Home Manager/Home Manager CLI Translate using Weblate (Chinese (Traditional)) Currently translated at 92.8% (13 of 14 strings) Co-authored-by: Eric Ho <eric913@gmail.com> Translate-URL: https://hosted.weblate.org/projects/home-manager/modules/zh_Hant/ Translation: Home Manager/Home Manager Modules Add translation using Weblate (Lithuanian) Co-authored-by: Kornelijus Tvarijanavičius <kornelitvari@protonmail.com> Add translation using Weblate (Lithuanian) Co-authored-by: Weblate <noreply@weblate.org> Translate using Weblate (Lithuanian) Currently translated at 84.3% (27 of 32 strings) Co-authored-by: Kornelijus Tvarijanavičius <kornelijus@tvaria.com> Translate-URL: https://hosted.weblate.org/projects/home-manager/cli/lt/ Translation: Home Manager/Home Manager CLI i3: Do not set i3 package (nix-community#3585) Resolves nix-community#3584 home-manager: Add home-manager search path to EXTRA_NIX_PATH (nix-community#3241) docs: bump nmd - Fix paragraphs in option field texts containing Markdown. - Fix generation of documentation for options with Markdown in multiple fields. - Support AsciiDoc in module option documentation. i3-sway: config.focus.wrapping deprecates forceWrapping (nix-community#3467) Stop using the legacy syntax described in the i3 documentation: https://i3wm.org/docs/userguide.html#_focus_wrapping opam: fix enableFishIntegration (nix-community#3597) Fish shell doesn't require arguments to `eval` to be double quoted like in a bash shell. At the moment doing so gives us the following error: ~/.config/fish/config.fish (line 12): $(...) is not supported. In fish, please use '(/nix/store/8asq…)'. eval "$(/nix/store/8asqgnhs89wzyjvs8p1n5hvxn7lkn9wa-opam-2.1.3/bin/opam env --shell=fish)" ^ from sourcing file ~/.config/fish/config.fish called during startup source: Error while reading file “/home/user/.config/fish/config.fish” This commit fixes the above error. docs: mention how to override the home-manager flake input (nix-community#3556) docs: fetch nmd from sourcehut docs: bump nmd firefox: refactor search.json.mozlz4 generation The new setup should be easier to read. gpg-agent: fix SSH support for fish docs: bump nmd Fixes nix-community#3605 flake.lock: Update (nix-community#3549) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> docs: bump nmd Fixes nix-community#3612 treewide: fix typos (nix-community#3618) files: allow disabling creation of a file PR nix-community#3622 ci: bump DeterminateSystems/update-flake-lock from 15 to 16 Bumps [DeterminateSystems/update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) from 15 to 16. - [Release notes](https://github.com/DeterminateSystems/update-flake-lock/releases) - [Commits](DeterminateSystems/update-flake-lock@v15...v16) --- updated-dependencies: - dependency-name: DeterminateSystems/update-flake-lock dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> bash: format using nixfmt PR nix-community#3609 papis: add module wlogout: add module (nix-community#3629) rbenv: add module pass-secret-service: various improvements Allow setting the application package and storePath used by the config. Since the `programs.password-store` Home Manager module sets config values via global environment variables, the default behavior of the module should continue to behave as before for the user. Additionally, - Adds a few tests. - Use "escapeShellArg" function call to the path parameter call to ensure paths with spaces work. - Allow not setting storePath, which will cause `pass_secret_service` to default to using `~/.password-store`. - If `pass-secret-service` is enabled, set its store path to default to the one defined in our password-store environment settings. - Add myself (houstdav000) as maintainer. home-manager: edit `homeManagerConfiguration` err (nix-community#3632) * home-manager: edit `homeManagerConfiguration` err This adds https://nix-community.github.io/home-manager/release-notes.html#sec-release-22.11-highlights to the homeManagerConfiguration arguments error. * home-manager: `homeManagerConfiguration` indent Moved URL of the release notes for 22.11 to the same line so that ./format doesn't add extra whitespace --------- Co-authored-by: zaporter <opensource@zackporter.com> git: unset `pager` while using difftastic (nix-community#3633) flake.lock: Update (nix-community#3619) Flake lock file updates: • Updated input 'nixpkgs': 'github:nixos/nixpkgs/5ed481943351e9fd354aeb557679624224de38d5' (2023-01-20) → 'github:nixos/nixpkgs/2caf4ef5005ecc68141ecb4aac271079f7371c44' (2023-01-30) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> services.autorandr: add module mbsync: make passwordCommand escaping consistent (nix-community#3630) * Fix mbsync passwordCommand escaping * email: use lib.escapeShellArgs Co-authored-by: Naïm Favier <n@monade.li> * mbsync: update tests --------- Co-authored-by: Naïm Favier <n@monade.li> tmux: mouse support (nix-community#3642) Co-authored-by: Sleroq <sleroq@sleroq.link> modules: java: fix setting JAVA_HOME (nix-community#3638) Some JVMs pass through `home` as a derivation rather than as a string, as `openjdk` does. Since the module option for session variables expects a string, this is a type error. I suspect that this incorrect, and have changed the assignment here to coerce the `cfg.package.home` attribute to a string to be safe. After discussing with @NobbZ, we have decided it is best to mitigate this problem in HM rather than to make potentially breaking changes to Nixpkgs. Please do mention if you think we ought to propose a change to Nixpkgs instead. vim-vint: add module (nix-community#3604) * vim-vint: add module * vim-vint: add tests * maintainers: add tomodachi94 * vim-vint: fix tests --------- Co-authored-by: Naïm Favier <n@monade.li> borgmatic: Do not inhibit idle in service (nix-community#3637) This reflects a systemd service sample file change made in borgmatic 1.7.6, commit 2e9f70d49647d47fb4ca05f428c592b0e4319544: When backing up a machine with a monitor using logind to control idle timeout and things like DPMS, borgmatic can block the screen from turning on/off with systemd-inhibit. This is because by default systemd-inhibit will block "idle:sleep:shutdown". Borgmatic does not need to care about idle, only about suspend and shutdown. So, add an explicit `--what` flag for what borgmatic should inhibit. For more information see systemd-inhibit(1). home-manager: pass --refresh to nix (nix-community#3624) This flag is useful to force Nix to re-fetch cached flakes. Without it, you cannot deploy from a non-local flake in quick succession, since the caching causes the flake to not be re-fetched. tmux: fix secureSocket environment variable (nix-community#3593) firefox: support passing any json value to settings (nix-community#3580) Firefox internally only supports bool, int, and string types for preferences, but often stores objects, arrays and floats as strings. This change makes it nicer to specify those type of preferences in Nix, and it also makes it possible to merge objects & arrays across multiple modules. programs.neovim: add extraLuaConfig (nix-community#3639) * programs.neovim: add extraLuaConfig Add a configuration option to add custom lua configuration lines to `lua.init`. * apply review: formatting * apply review: fix test firefox: manage add-ons per-profile Internally we already managed them per-profile but exposed a global option to maintain backwards compatibility. The benefit to having per-profile extensions is quite large though, so it is time to switch. Users of the global extensions option will get an error message that indicates how to edit their configuration to work again. nix: fix package assertion Sync it with the condition for generating nix.conf so that it triggers if `extraOptions` is set but `package` isn't. activation-init.sh: remove shebang, execute bit This is not a standalone script, it's only meant to be included from the activation script. modules: add platform assertions systemd: remove platform assertion Allow modules to define systemd services on macOS. It won't actually have any effect, but it would allow modules to define both systemd services and launchd agents without boilerplate conditionals. As a consequence of this change, each module would have to check for compatibility with the OS target instead. scmpuff: clean up tests Stub the scmpuff package. Also remove unnecessary `config` wrapping. docs: bump nmd Fixes cross-compilation. xsuspender: fix typo that made debug option a noop (nix-community#3653) vscode: add extensions.json file in extensions dir (nix-community#3588) * vscode: add extensions.json file in extensions dir This change generates an 'extensions.json` file the same way that nixpkgs' vscode-with-extensions does, and makes sure it is placed in the directory with the extensions. * vscode: remove leftover trace Co-authored-by: Naïm Favier <n@monade.li> * vscode: fix adding extensions.json with mutable extension dir Co-authored-by: Naïm Favier <n@monade.li> * vscode: let vscode regenerate the mutable extensions.json * Remove nixpkgs duplication; only apply on vscodes new enough to need it * Use lib.versionAtLeast Co-authored-by: Naïm Favier <n@monade.li> * Format vscode.nix --------- Co-authored-by: Naïm Favier <n@monade.li> vscode: fix erroneous application of lib.optional (nix-community#3655) Revert "mbsync: make passwordCommand escaping consistent" (nix-community#3657) This reverts commit e2c1756. himalaya: add missing service options Also improved doc in general.
Some hooks were removed in Kakoune, and some were added. This PR updates the list so they are aligned with the latest version of Kakoune. Removed mawww/kakoune@e4fb70e NormalBegin NormalEnd InsertBegin InsertEnd mawww/kakoune@78419bc InsertCompletionSelect Added mawww/kakoune@c8839e7 ClientCreate ClientClose mawww/kakoune@47ba36c RegisterModified mawww/kakoune@f2cc7bc User
Description
Some hooks were removed in Kakoune, and some were added. This PR updates the list so they are aligned with the latest version of Kakoune.
Removed
mawww/kakoune@e4fb70e
NormalBegin
NormalEnd
InsertBegin
InsertEnd
mawww/kakoune@78419bc
InsertCompletionSelect
Added
mawww/kakoune@c8839e7
ClientCreate
ClientClose
mawww/kakoune@47ba36c
RegisterModified
mawww/kakoune@f2cc7bc
User
Checklist
Change is backwards compatible.
Code formatted with
./format
.Code tested through
nix-shell --pure tests -A run.kakoune-{no-plugins,use-plugins,whitespace-highlighter,whitespace-highlighter-corner-cases}
.Test cases updated/added. See example.
Commit messages are formatted like
See CONTRIBUTING for more information and recent commit messages for examples.