Skip to content

Commit d0c5ebf

Browse files
committed
Use the few built-in Universal ctags Clojure kinds...
... to avoid redundant namespace and function tags (Still keep OpenGrok's many Clojure ctags regexes.)
1 parent a0d03d1 commit d0c5ebf

File tree

2 files changed

+5
-3
lines changed
  • src/org/opensolaris/opengrok/analysis
  • test/org/opensolaris/opengrok/analysis/clojure

2 files changed

+5
-3
lines changed

src/org/opensolaris/opengrok/analysis/Ctags.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,16 @@ private void initialize() throws IOException {
149149
command.add("--regex-golang=/var[[:space:]]+([a-zA-Z_][a-zA-Z0-9_]+)/\\1/v,var/");
150150
command.add("--regex-golang=/type[[:space:]]+([a-zA-Z_][a-zA-Z0-9_]+)/\\1/t,type/");
151151
}
152+
152153
//temporarily use our defs until ctags will fix https://github.com/universal-ctags/ctags/issues/988
153154
command.add("--langdef=clojure"); // clojure support (patterns are from https://gist.github.com/kul/8704283)
154155
command.add("--langmap=clojure:+.clj");
156+
if (!env.isUniversalCtags()) {
157+
command.add("--regex-clojure=/\\([[:space:]]*defn[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/f,function/");
158+
command.add("--regex-clojure=/\\([[:space:]]*ns[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/n,namespace/");
159+
}
155160
command.add("--regex-clojure=/\\([[:space:]]*create-ns[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/n,namespace/");
156161
command.add("--regex-clojure=/\\([[:space:]]*def[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/d,definition/");
157-
command.add("--regex-clojure=/\\([[:space:]]*defn[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/f,function/");
158162
command.add("--regex-clojure=/\\([[:space:]]*defn-[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/p,private function/");
159163
command.add("--regex-clojure=/\\([[:space:]]*defmacro[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/m,macro/");
160164
command.add("--regex-clojure=/\\([[:space:]]*definline[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/i,inline/");
@@ -163,7 +167,6 @@ private void initialize() throws IOException {
163167
command.add("--regex-clojure=/\\([[:space:]]*defonce[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/c,definition (once)/");
164168
command.add("--regex-clojure=/\\([[:space:]]*defstruct[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/s,struct/");
165169
command.add("--regex-clojure=/\\([[:space:]]*intern[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/v,intern/");
166-
command.add("--regex-clojure=/\\([[:space:]]*ns[[:space:]]+([-[:alnum:]*+!_:\\/.?]+)/\\1/n,namespace/");
167170

168171
command.add("--langdef=kotlin");
169172
command.add("--langmap=kotlin:+.kt");

test/org/opensolaris/opengrok/analysis/clojure/sampletags

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,4 @@
66
!_TAG_PROGRAM_VERSION 0.0.0 /b13cb551/
77
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
88
koans.23-meta grok.clj /^(ns koans.23-meta$/;" namespace line:195
9-
koans.23-meta grok.clj /^(ns koans.23-meta$/;" namespace line:195
109
giants grok.clj /^(def giants$/;" definition line:198

0 commit comments

Comments
 (0)