summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.ghci1
-rw-r--r--Biz/Bild/Rules.nix9
-rw-r--r--Biz/Bild/ShellHook.sh15
-rwxr-xr-xBiz/Ide/ftags.sh18
4 files changed, 26 insertions, 17 deletions
diff --git a/.ghci b/.ghci
index 18c5aa9..3f7039a 100644
--- a/.ghci
+++ b/.ghci
@@ -7,3 +7,4 @@
:def iq (\arg -> let [x, y] = Prelude.words arg in return $ "import qualified " ++ x ++ " as " ++ y)
:def hoogle \s -> return $ ":! hoogle search --count=15 \"" ++ s ++ "\""
:def hdoc \s -> return $ ":! hoogle search --info \"" ++ s ++ "\""
+:def f \_ -> return $ ":! ftags"
diff --git a/Biz/Bild/Rules.nix b/Biz/Bild/Rules.nix
index a8695eb..f5f016f 100644
--- a/Biz/Bild/Rules.nix
+++ b/Biz/Bild/Rules.nix
@@ -3,6 +3,9 @@
with nixpkgs;
let
+ ghcCompiler = "ghc865";
+ ghcjsCompiler = "ghcjs86";
+
# provided by .envrc
root = builtins.getEnv "BIZ_ROOT";
@@ -50,8 +53,8 @@ let
${toString (lib.lists.subtractLists haskellDeps deps)}
''));
- ghc_ = mkGhc pkgs.haskell.packages.ghc865.ghcWithHoogle;
- ghcjs_ = mkGhc pkgs.haskell.packages.ghcjs86.ghcWithPackages;
+ ghc_ = mkGhc pkgs.haskell.packages.${ghcCompiler}.ghcWithHoogle;
+ ghcjs_ = mkGhc pkgs.haskell.packages.${ghcjsCompiler}.ghcWithPackages;
in {
ghc = main:
let
@@ -131,6 +134,7 @@ in {
# tools
nixpkgs.cmark
+ nixpkgs.haskell.packages.${ghcCompiler}.fast-tags
nixpkgs.figlet
nixpkgs.hlint
nixpkgs.lolcat
@@ -140,6 +144,7 @@ in {
nixpkgs.python37Packages.black
nixpkgs.python37Packages.pylint
nixpkgs.wemux
+ (pkgs.writeScriptBin "ftags" (builtins.readFile ../Ide/ftags.sh))
];
shellHook = ". ${./ShellHook.sh}";
};
diff --git a/Biz/Bild/ShellHook.sh b/Biz/Bild/ShellHook.sh
index 7b43d26..7724c28 100644
--- a/Biz/Bild/ShellHook.sh
+++ b/Biz/Bild/ShellHook.sh
@@ -124,18 +124,3 @@ function ci() {
}
help
-
-# ftags - search ctags
-ftags() {
- local line
- if [[ -e tags ]]
- then
- line=$(
- awk 'BEGIN { FS="\t" } !/^!/ {print toupper($4)"\t"$1"\t"$2"\t"$3}' tags | \
- cut -c1-80 | fzf --nth=1,2
- )
- ${EDITOR:-vim} \
- $(cut -f3 <<< "$line") -c "set nocst" \
- -c "silent tag $(cut -f2 <<< "$line")"
- fi
-}
diff --git a/Biz/Ide/ftags.sh b/Biz/Ide/ftags.sh
new file mode 100755
index 0000000..daa4ca0
--- /dev/null
+++ b/Biz/Ide/ftags.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+# ftags - search ctags
+set -euo pipefail
+tags=$BIZ_ROOT/tags
+if [[ ! -e $tags ]]
+then
+ fast-tags -R $BIZ_ROOT
+else
+ line=$(
+ awk 'BEGIN { FS="\t" } !/^!/ {print toupper($4)"\t"$1"\t"$2"\t"$3}' $tags \
+ | cut -c1-80 \
+ | fzf --nth=1,2
+ )
+ ${EDITOR:-vim} \
+ $(cut -f3 <<< "$line") \
+ -c "set nocst" \
+ -c "silent tag $(cut -f2 <<< "$line")"
+fi