summaryrefslogtreecommitdiff
path: root/.ctags.d/nix.ctags
diff options
context:
space:
mode:
Diffstat (limited to '.ctags.d/nix.ctags')
-rw-r--r--.ctags.d/nix.ctags14
1 files changed, 14 insertions, 0 deletions
diff --git a/.ctags.d/nix.ctags b/.ctags.d/nix.ctags
new file mode 100644
index 0000000..7a12815
--- /dev/null
+++ b/.ctags.d/nix.ctags
@@ -0,0 +1,14 @@
+--langdef=nix
+--languages=+nix
+--langmap=nix:.nix
+# packages are "name = <tag>" or "pname = <tag>"
+--kinddef-nix=p,package,package definition
+--regex-nix=/[p?]name\s*=\s*"(\w+)"/\1/p/
+# functions have args, so have a : right of the =
+--kinddef-nix=f,function,function definition
+--regex-nix=/(\S+)\s*=\s+\w+:/\1/f/
+# attrs just have =, but only index if they have >=4 chars
+--kinddef-nix=a,attr,attribute definition
+--regex-nix=/\s+([a-zA-Z_0-9-]{4,20})\s*=/\1/a/
+# nixpkgs, ignore tests
+--exclude=*pkgs/test*