Fil-C on Nix

Filnix wiki

mbrock/filnix

emacs/emacs.nix

λpkgs, pkgsFilc
let
7inherit pkgsFilc
emacsPackages
9baseEmacs=
emacsPackages.withPackagesepkgs: with epkgs; cmake-mode company consult diff-hl embark embark-consult envrc htmlize llvm-mode magit marginalia meson-mode nix-mode orderless paredit rainbow-delimiters treesit-grammars.with-grammarsgs: with gs; tree-sitter-bash tree-sitter-c tree-sitter-cpp tree-sitter-cmake tree-sitter-go tree-sitter-javascript tree-sitter-json tree-sitter-lua tree-sitter-markdown tree-sitter-nix tree-sitter-python tree-sitter-rust tree-sitter-toml tree-sitter-typescript tree-sitter-yaml tree-sitter-zig use-package vertico vterm which-key eat
55languageServers=
with pkgs; llvmPackages_21.clang-tools cmake-language-server mesonlsp llvmPackages_21.mlir nixd
63languageServerBinPath=
pkgs.lib.makeBinPathlanguageServers
65configDir=
pkgs.lib.cleanSourceWith
66name=
"filc-emacs-config"
67src=
68filter=
pkgs.lib.cleanSourceFilter
71launcher=
pkgs.writeShellScriptBin"filc-emacs"
export PATH="${languageServerBinPath}:$PATH"
exec ${baseEmacs}/bin/emacs --init-directory ${configDir} "$@"
76filcEmacs=
pkgs.symlinkJoin
77name=
"filc-emacs"
83postBuild=
rm $out/bin/emacs
cp ${launcher}/bin/filc-emacs $out/bin/emacs
ln -sf emacs $out/bin/filc-emacs
mkdir -p $out/share
ln -s ${configDir} $out/share/filc-emacs-config
90meta=
baseEmacs.meta or { }
//
91description=

Fil-C Emacs with a ready-to-hack configuration

92longDescription=
Fil-C Emacs wraps ${baseEmacs.name or "emacs"} and ships a curated init.el,
early-init.el, and Org notebook so you can iterate from Nix.
in
100inherit
emacsPackages baseEmacs configDir launcher
106filc-emacs=
uses filcEmacs