Re: bug: gtags not respecting .ctags files
Gis Ochre <[email protected]> Sat, 10 Aug 2019 21:58:16 +0300
| Newsgroups | gmane.comp.gnu.global.general |
|---|---|
| Message-ID | <20190810185815.GA17434@sysmanj-Aspire-E5-575> |
--nFreZHaLTZJo0R7j Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit Shigio, there does appear to be an issue after all ) Attaching following files: ~/issue $ ll total 46 drwxrwxr-x 2 hero hero 4096 2019-08-10 21:41 . drwxr-xr-x 48 hero hero 4096 2019-08-10 21:42 .. -rw-r--r-- 1 hero hero 10525 2019-08-10 17:51 FileTreeWalk.kt -rw-r--r-- 1 hero hero 23016 2019-08-10 21:39 gtags.conf -rw-rw-r-- 1 hero hero 2676 2019-08-10 21:38 issue.log -rw-r--r-- 1 hero hero 2307 2019-08-10 21:41 kt.ctags 1. FileTreeWalk.kt - sample kotlin file from kotlin stdlib. 2. kt.ctags - located in ~/.ctags.d/ in this scenario. 3. gtags.conf - my $GTAGSCONF 4. issue.log - scenario console commands.log As you can see from issue.log, gtags doesn't use kt.ctags if `gtagslabel' is set to `new-ctags', `ctags', irrespective of gtags.conf entries for `--langmap=kotlin...`. But it works with `gtagslabel' set to `pygments'. When set to `pygments', gtags is affected by presence of custom kt.ctags file in ~/.ctags.d/. - its removal removes the found tags. On Sat, Aug 10, 2019 at 09:25:17PM +0900, Shigio YAMAGUCHI wrote: > Don't worry. > > First of all, could you create a set of sample files using the > --langdefs option? > > o A simple source file (Kotlin?) > o A command line of uctags using the --langdefs option (+ custom.ctags file). > > These are necessary for me to reproduce the situation. > > Next, let's make it available from gtags. > > Regards, > Shigio > > 2019年8月10日(土) 20:57 Gis Ochre <[email protected]>: > > > > Just for hitstory. Sorry for not looking at https://lists.gnu.org/archive/html/help-global/ first. > > That was dumb. > > > > сб, 10 авг. 2019 г. в 14:33, Shigio YAMAGUCHI <[email protected]>: > >> > >> Would you please repost this issue to the help mailing list? > >> I think I can help you. > >> > >> Regards, > >> Shigio > >> > >> 2019年8月10日(土) 18:55 gisochrewhb <[email protected]>: > >> > > >> > Shigio, no code issue. Gtags just lacks documentation on how to use custom --langdefs of uctags. It would save gtags users frustration. Anyway, thx for help! > >> > > >> > > >> > ОтправленоMeizu M3 note > >> > > >> > -------- Исходное сообщение -------- > >> > От: Shigio YAMAGUCHI <[email protected]> > >> > Время: сб 10/8 01:52 > >> > Кому: Gis Ochre <[email protected]> > >> > Копия: bug-global <[email protected]> > >> > Тема: Re: bug: gtags not respecting .ctags files > >> > > >> > >Sicne here is bug mailing list (not help mailing list), I am not interested > >> > >in your problem. Could you describe gtags issue briefly? > >> > > > >> > >Regards, > >> > >Shigio > >> > > > >> > >2019年8月9日(金) 21:54 Gis Ochre <[email protected]>: > >> > >> > >> > >> Hello, Shigio! > >> > >> Sorry, my bad. I didn't describe my particular issue in detail. > >> > >> My particular issue was that gtags didn't respect `--langdef=kotlin` config from > >> > >> ~/.ctags.d/custom.ctags file. > >> > >> On second thought, it doesn't require changing exuberant-ctags.c. > >> > >> Adding line > >> > >> ``` > >> > >> :langmap=kotlin\:.kt:\ > >> > >> ``` > >> > >> under `universal-ctags|setting to use Universal Ctags plug-in parser:\` in gtags.conf > >> > >> fixes the issue for me and ctags start using that langdef when called by gtags. > >> > >> > >> > >> But maybe you should consider adding smth like > >> > >> ``` > >> > >> +:options=~/.ctags.d/mycustom.ctags,~/.ctags.d/anothercustom.ctags:\ > >> > >> ``` > >> > >> to gtags.conf to support arbitrary ctags options, not just --langmap and -exlude. > >> > >> > >> > >> > >> > >> пт, 9 авг. 2019 г. в 04:39, Shigio YAMAGUCHI <[email protected]>: > >> > >>> > >> > >>> Hello, > >> > >>> File exclusion should be specified in gtags.conf. GLOBAL uses uctags only > >> > >>> as an parser. If you want to skip 'foo' file, please write like follows: > >> > >>> > >> > >>> [gtags.conf] > >> > >>> :skip=foo:\ > >> > >>> > >> > >>> If 'foo' is a directory, it should be 'foo/'. > >> > >>> Please see gtags(1) for the detail. > >> > >>> > >> > >>> Regards, > >> > >>> Shigio > >> > >>> > >> > >>> 2019年8月9日(金) 8:58 Gis Ochre <[email protected]>: > >> > >>> > > >> > >>> > Hello, everyone! > >> > >>> > > >> > >>> > Problem described in detail in https://github.com/universal-ctags/ctags/issues/1608. > >> > >>> > Can confirm that cornercase patch.diff fixed the issue for me. > >> > >>> > > >> > >>> > _______________________________________________ > >> > >>> > Bug-global mailing list > >> > >>> > [email protected] > >> > >>> > https://lists.gnu.org/mailman/listinfo/bug-global > >> > >>> > >> > >>> > >> > >>> > >> > >>> -- > >> > >>> Shigio YAMAGUCHI <[email protected]> > >> > >>> PGP fingerprint: > >> > >>> 26F6 31B4 3D62 4A92 7E6F 1C33 969C 3BE3 89DD A6EB > >> > > > >> > > > >> > > > >> > >-- > >> > >Shigio YAMAGUCHI <[email protected]> > >> > >PGP fingerprint: > >> > >26F6 31B4 3D62 4A92 7E6F 1C33 969C 3BE3 89DD A6EB > >> > >> > >> > >> -- > >> Shigio YAMAGUCHI <[email protected]> > >> PGP fingerprint: > >> 26F6 31B4 3D62 4A92 7E6F 1C33 969C 3BE3 89DD A6EB > > > > -- > Shigio YAMAGUCHI <[email protected]> > PGP fingerprint: > 26F6 31B4 3D62 4A92 7E6F 1C33 969C 3BE3 89DD A6EB --nFreZHaLTZJo0R7j Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="FileTreeWalk.kt" /* * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license * that can be found in the license/LICENSE.txt file. */ @file:JvmMultifileClass @file:JvmName("FilesKt") package kotlin.io import kotlin.* import java.io.File import java.io.IOException import java.util.Stack /** * An enumeration to describe possible walk directions. * There are two of them: beginning from parents, ending with children, * and beginning from children, ending with parents. Both use depth-first search. */ public enum class FileWalkDirection { /** Depth-first search, directory is visited BEFORE its files */ TOP_DOWN, /** Depth-first search, directory is visited AFTER its files */ BOTTOM_UP // Do we want also breadth-first search? } /** * This class is intended to implement different file traversal methods. * It allows to iterate through all files inside a given directory. * * Use [File.walk], [File.walkTopDown] or [File.walkBottomUp] extension functions to instantiate a `FileTreeWalk` instance. * If the file path given is just a file, walker iterates only it. * If the file path given does not exist, walker iterates nothing, i.e. it's equivalent to an empty sequence. */ public class FileTreeWalk private constructor( private val start: File, private val direction: FileWalkDirection = FileWalkDirection.TOP_DOWN, private val onEnter: ((File) -> Boolean)?, private val onLeave: ((File) -> Unit)?, private val onFail: ((f: File, e: IOException) -> Unit)?, private val maxDepth: Int = Int.MAX_VALUE ) : Sequence<File> { internal constructor(start: File, direction: FileWalkDirection = FileWalkDirection.TOP_DOWN) : this(start, direction, null, null, null) /** Returns an iterator walking through files. */ override public fun iterator(): Iterator<File> = FileTreeWalkIterator() /** Abstract class that encapsulates file visiting in some order, beginning from a given [root] */ private abstract class WalkState(val root: File) { /** Call of this function proceeds to a next file for visiting and returns it */ abstract public fun step(): File? } /** Abstract class that encapsulates directory visiting in some order, beginning from a given [rootDir] */ private abstract class DirectoryState(rootDir: File) : WalkState(rootDir) { init { if (_Assertions.ENABLED) assert(rootDir.isDirectory) { "rootDir must be verified to be directory beforehand." } } } private inner class FileTreeWalkIterator : AbstractIterator<File>() { // Stack of directory states, beginning from the start directory private val state = Stack<WalkState>() init { if (start.isDirectory) { state.push(directoryState(start)) } else if (start.isFile) { state.push(SingleFileState(start)) } else { done() } } override fun computeNext() { val nextFile = gotoNext() if (nextFile != null) setNext(nextFile) else done() } private fun directoryState(root: File): DirectoryState { return when (direction) { FileWalkDirection.TOP_DOWN -> TopDownDirectoryState(root) FileWalkDirection.BOTTOM_UP -> BottomUpDirectoryState(root) } } tailrec private fun gotoNext(): File? { if (state.empty()) { // There is nothing in the state return null } // Take next file from the top of the stack val topState = state.peek()!! val file = topState.step() if (file == null) { // There is nothing more on the top of the stack, go back state.pop() return gotoNext() } else { // Check that file/directory matches the filter if (file == topState.root || !file.isDirectory || state.size >= maxDepth) { // Proceed to a root directory or a simple file return file } else { // Proceed to a sub-directory state.push(directoryState(file)) return gotoNext() } } } /** Visiting in bottom-up order */ private inner class BottomUpDirectoryState(rootDir: File) : DirectoryState(rootDir) { private var rootVisited = false private var fileList: Array<File>? = null private var fileIndex = 0 private var failed = false /** First all children, then root directory */ override public fun step(): File? { if (!failed && fileList == null) { if (onEnter?.invoke(root) == false) { return null } fileList = root.listFiles() if (fileList == null) { onFail?.invoke(root, AccessDeniedException(file = root, reason = "Cannot list files in a directory")) failed = true } } if (fileList != null && fileIndex < fileList!!.size) { // First visit all files return fileList!![fileIndex++] } else if (!rootVisited) { // Then visit root rootVisited = true return root } else { // That's all onLeave?.invoke(root) return null } } } /** Visiting in top-down order */ private inner class TopDownDirectoryState(rootDir: File) : DirectoryState(rootDir) { private var rootVisited = false private var fileList: Array<File>? = null private var fileIndex = 0 /** First root directory, then all children */ override public fun step(): File? { if (!rootVisited) { // First visit root if (onEnter?.invoke(root) == false) { return null } rootVisited = true return root } else if (fileList == null || fileIndex < fileList!!.size) { if (fileList == null) { // Then read an array of files, if any fileList = root.listFiles() if (fileList == null) { onFail?.invoke(root, AccessDeniedException(file = root, reason = "Cannot list files in a directory")) } if (fileList == null || fileList!!.size == 0) { onLeave?.invoke(root) return null } } // Then visit all files return fileList!![fileIndex++] } else { // That's all onLeave?.invoke(root) return null } } } private inner class SingleFileState(rootFile: File) : WalkState(rootFile) { private var visited: Boolean = false init { if (_Assertions.ENABLED) assert(rootFile.isFile) { "rootFile must be verified to be file beforehand." } } override fun step(): File? { if (visited) return null visited = true return root } } } /** * Sets a predicate [function], that is called on any entered directory before its files are visited * and before it is visited itself. * * If the [function] returns `false` the directory is not entered and neither it nor its files are visited. */ public fun onEnter(function: (File) -> Boolean): FileTreeWalk { return FileTreeWalk(start, direction, onEnter = function, onLeave = onLeave, onFail = onFail, maxDepth = maxDepth) } /** * Sets a callback [function], that is called on any left directory after its files are visited and after it is visited itself. */ public fun onLeave(function: (File) -> Unit): FileTreeWalk { return FileTreeWalk(start, direction, onEnter = onEnter, onLeave = function, onFail = onFail, maxDepth = maxDepth) } /** * Set a callback [function], that is called on a directory when it's impossible to get its file list. * * [onEnter] and [onLeave] callback functions are called even in this case. */ public fun onFail(function: (File, IOException) -> Unit): FileTreeWalk { return FileTreeWalk(start, direction, onEnter = onEnter, onLeave = onLeave, onFail = function, maxDepth = maxDepth) } /** * Sets the maximum [depth] of a directory tree to traverse. By default there is no limit. * * The value must be positive and [Int.MAX_VALUE] is used to specify an unlimited depth. * * With a value of 1, walker visits only the origin directory and all its immediate children, * with a value of 2 also grandchildren, etc. */ public fun maxDepth(depth: Int): FileTreeWalk { if (depth <= 0) throw IllegalArgumentException("depth must be positive, but was $depth.") return FileTreeWalk(start, direction, onEnter, onLeave, onFail, depth) } } /** * Gets a sequence for visiting this directory and all its content. * * @param direction walk direction, top-down (by default) or bottom-up. */ public fun File.walk(direction: FileWalkDirection = FileWalkDirection.TOP_DOWN): FileTreeWalk = FileTreeWalk(this, direction) /** * Gets a sequence for visiting this directory and all its content in top-down order. * Depth-first search is used and directories are visited before all their files. */ public fun File.walkTopDown(): FileTreeWalk = walk(FileWalkDirection.TOP_DOWN) /** * Gets a sequence for visiting this directory and all its content in bottom-up order. * Depth-first search is used and directories are visited after all their files. */ public fun File.walkBottomUp(): FileTreeWalk = walk(FileWalkDirection.BOTTOM_UP) --nFreZHaLTZJo0R7j Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="kt.ctags" --langdef=kotlin --langmap=kotlin:+.kt --langmap=kotlin:+.kts --regex-kotlin=/^.*((public|private|internal|protected|enum|sealed|annotation|data|inner|lateinit|override|tailrec|operator|infix|inline|external|suspend|const|abstract|final|open|implicit|lazy|vararg|noinline|crossinline|expect|actual)[[:space:]]*)*[[:space:]]*class[[:space:]]+([[:alnum:]_:]+)/\3/c,classes/ --regex-kotlin=/^.*((companion|public|private|internal|protected|enum|sealed|annotation|data|inner|lateinit|override|tailrec|operator|infix|inline|external|suspend|const|abstract|final|open|implicit|lazy|vararg|noinline|crossinline|expect|actual)[[:space:]]*)*[[:space:]]*(object)/\3/o,objects/ --regex-kotlin=/^.*((public|private|internal|protected|enum|sealed|annotation|data|inner|lateinit|override|tailrec|operator|infix|inline|external|suspend|const|abstract|final|open|implicit|lazy|vararg|noinline|crossinline|expect|actual)[[:space:]]*)*[[:space:]]*interface[[:space:]]+([[:alnum:]_:]+)/\3/i,interfaces/ --regex-kotlin=/^.*((public|private|internal|protected|enum|sealed|annotation|data|inner|lateinit|override|tailrec|operator|infix|inline|external|suspend|const|abstract|final|open|implicit|lazy|vararg|noinline|crossinline|expect|actual)[[:space:]]*)*[[:space:]]*typealias[[:space:]]+([[:alnum:]_:]+)/\3/T,types/ --regex-kotlin=/^.*((public|private|internal|protected|enum|sealed|annotation|data|inner|lateinit|override|tailrec|operator|infix|inline|external|suspend|const|abstract|final|open|implicit|lazy|vararg|noinline|crossinline|expect|actual)[[:space:]]*)*fun(.*)[[:space:]\.]([[:alnum:]_:]+)\(/\4/m,methods/ --regex-kotlin=/^.*((public|private|internal|protected|enum|sealed|annotation|data|inner|lateinit|override|tailrec|operator|infix|inline|external|suspend|const|abstract|final|open|implicit|lazy|vararg|noinline|crossinline|expect|actual)[[:space:]]*)*(const[[:space:]]*)?val[[:space:]]+([[:alnum:]_]+)/\4/C,constants/ --regex-kotlin=/^.*((public|private|internal|protected|enum|sealed|annotation|data|inner|lateinit|override|tailrec|operator|infix|inline|external|suspend|const|abstract|final|open|implicit|lazy|vararg|noinline|crossinline|expect|actual)[[:space:]]*)*(lateinit[[:space:]]*)*var[[:space:]]+([[:alnum:]_]+)/\4/v,variables/ --regex-kotlin=/^.*package[[:space:]]+([[:alnum:]_.:]+)/\1/p,packages/ --nFreZHaLTZJo0R7j Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="gtags.conf" # # Copyright (c) 1998, 1999, 2000, 2001, 2002, 2003, 2010, 2011, 2013, # 2015, 2016, 2017 # Tama Communications Corporation # # This file is part of GNU GLOBAL. # # This file is free software; as a special exception the author gives # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # * # Configuration file for GNU GLOBAL source code tagging system. # # Basically, GLOBAL doesn't need this configuration file ('gtags.conf'), # because it has default values in itself. If you have this file as # '/etc/gtags.conf' or "$HOME/.globalrc" then GLOBAL overwrite the default # values with values in the file. # Configuration file is also necessary to use plug-in parsers. # # The format is similar to termcap(5). You can specify a target with # GTAGSLABEL environment variable. Default target is 'default'. # # If you want to have default values for yourself, it is recommended to # use the following method: # # default:\ # :tc=default@~/.globalrc:\ <= includes default values from ~/.globalrc. # :tc=native: # # Please refer to gtags.conf(5) for details. # default:\ :tc=native: native:\ :tc=gtags:tc=htags: user:\ :tc=user-custom:tc=htags: ctags:\ :tc=exuberant-ctags:tc=htags: new-ctags:\ :tc=universal-ctags:tc=htags: pygments:\ :tc=pygments-parser:tc=htags: # # [How to merge two or more parsers?] # # Rule: The first matched langmap is adopted. # # ":tc=builtin-parser:tc=pygments-parser:" means: # If built-in parser exists for the target, it is used. # Else if pygments parser exists it is used. # native-pygments:\ :tc=builtin-parser:tc=pygments-parser:tc=htags: #--------------------------------------------------------------------- # Configuration for gtags(1) # See gtags(1). #--------------------------------------------------------------------- common:\ :skip=HTML/,HTML.pub/,tags,TAGS,ID,y.tab.c,y.tab.h,gtags.files,cscope.files,cscope.out,cscope.po.out,cscope.in.out,SCCS/,RCS/,CVS/,CVSROOT/,{arch}/,autom4te.cache/,*.orig,*.rej,*.bak,*~,#*#,*.swp,*.tmp,*_flymake.*,*_flymake,*.o,*.a,*.so,*.lo,*.zip,*.gz,*.bz2,*.xz,*.lzh,*.Z,*.tgz,*.min.js,*min.css: # # Built-in parsers. # gtags:\ :tc=common:\ :tc=builtin-parser: builtin-parser:\ :langmap=c\:.c.h,yacc\:.y,asm\:.s.S,java\:.java,cpp\:.c++.cc.hh.cpp.cxx.hxx.hpp.C.H,php\:.php.php3.phtml: # # skeleton for user's custom parser. # user-custom|User custom plugin parser:\ :tc=common:\ :langmap=c\:.c.h:\ :gtags_parser=c\:$libdir/gtags/user-custom.la: # # Plug-in parser to use Exuberant Ctags. # # Most of the following definitions were automatically generated by this command line: # $ perl maps2conf.pl /user/local/bin/ctags '$libdir/gtags/exuberant-ctags.la' # ('/user/local/bin/ctags' should be replaced with the path of Exuberant Ctags.) # exuberant-ctags|plugin-example|setting to use Exuberant Ctags plug-in parser:\ :tc=common:\ :ctagscom=/usr/local/bin/ctags:\ :ctagslib=$libdir/gtags/exuberant-ctags.la:\ :langmap=Ant\:(*.build.xml):\ :langmap=Asm\:.asm.ASM.s.S.A51(*.29[kK])(*.[68][68][kKsSxX])(*.[xX][68][68]):\ :langmap=Asp\:.asp.asa:\ :langmap=Awk\:.awk.gawk.mawk:\ :langmap=Basic\:.bas.bi.bb.pb:\ :langmap=BETA\:.bet:\ :langmap=C\:.c:\ :langmap=C++\:.c++.cc.cp.cpp.cxx.h.h++.hh.hp.hpp.hxx.C.H:\ :langmap=C#\:.cs:\ :langmap=Cobol\:.cbl.cob.CBL.COB:\ :langmap=DosBatch\:.bat.cmd:\ :langmap=Eiffel\:.e:\ :langmap=Erlang\:.erl.ERL.hrl.HRL:\ :langmap=Flex\:.as.mxml:\ :langmap=Fortran\:.f.for.ftn.f77.f90.f95.F.FOR.FTN.F77.F90.F95:\ :langmap=HTML\:.htm.html:\ :langmap=Java\:.java:\ :langmap=JavaScript\:.js:\ :langmap=kotlin\:.kt:\ :langmap=Lisp\:.cl.clisp.el.l.lisp.lsp:\ :langmap=Lua\:.lua:\ :langmap=Make\:.mak.mk([Mm]akefile)(GNUmakefile):\ :langmap=MatLab\:.m:\ :langmap=OCaml\:.ml.mli:\ :langmap=Pascal\:.p.pas:\ :langmap=Perl\:.pl.pm.plx.perl:\ :langmap=PHP\:.php.php3.phtml:\ :langmap=Python\:.py.pyx.pxd.pxi.scons:\ :langmap=REXX\:.cmd.rexx.rx:\ :langmap=Ruby\:.rb.ruby:\ :langmap=Scheme\:.SCM.SM.sch.scheme.scm.sm:\ :langmap=Sh\:.sh.SH.bsh.bash.ksh.zsh:\ :langmap=SLang\:.sl:\ :langmap=SML\:.sml.sig:\ :langmap=SQL\:.sql:\ :langmap=Tcl\:.tcl.tk.wish.itcl:\ :langmap=Tex\:.tex:\ :langmap=Vera\:.vr.vri.vrh:\ :langmap=Verilog\:.v:\ :langmap=VHDL\:.vhdl.vhd:\ :langmap=Vim\:.vim:\ :langmap=YACC\:.y:\ :gtags_parser=Ant\:$ctagslib:\ :gtags_parser=Asm\:$ctagslib:\ :gtags_parser=Asp\:$ctagslib:\ :gtags_parser=Awk\:$ctagslib:\ :gtags_parser=Basic\:$ctagslib:\ :gtags_parser=BETA\:$ctagslib:\ :gtags_parser=C\:$ctagslib:\ :gtags_parser=C++\:$ctagslib:\ :gtags_parser=C#\:$ctagslib:\ :gtags_parser=Cobol\:$ctagslib:\ :gtags_parser=DosBatch\:$ctagslib:\ :gtags_parser=Eiffel\:$ctagslib:\ :gtags_parser=Erlang\:$ctagslib:\ :gtags_parser=Flex\:$ctagslib:\ :gtags_parser=Fortran\:$ctagslib:\ :gtags_parser=HTML\:$ctagslib:\ :gtags_parser=Java\:$ctagslib:\ :gtags_parser=JavaScript\:$ctagslib:\ :gtags_parser=Lisp\:$ctagslib:\ :gtags_parser=Lua\:$ctagslib:\ :gtags_parser=Make\:$ctagslib:\ :gtags_parser=MatLab\:$ctagslib:\ :gtags_parser=OCaml\:$ctagslib:\ :gtags_parser=Pascal\:$ctagslib:\ :gtags_parser=Perl\:$ctagslib:\ :gtags_parser=PHP\:$ctagslib:\ :gtags_parser=Python\:$ctagslib:\ :gtags_parser=REXX\:$ctagslib:\ :gtags_parser=Ruby\:$ctagslib:\ :gtags_parser=Scheme\:$ctagslib:\ :gtags_parser=Sh\:$ctagslib:\ :gtags_parser=SLang\:$ctagslib:\ :gtags_parser=SML\:$ctagslib:\ :gtags_parser=SQL\:$ctagslib:\ :gtags_parser=Tcl\:$ctagslib:\ :gtags_parser=Tex\:$ctagslib:\ :gtags_parser=Vera\:$ctagslib:\ :gtags_parser=Verilog\:$ctagslib:\ :gtags_parser=VHDL\:$ctagslib:\ :gtags_parser=Vim\:$ctagslib:\ :gtags_parser=YACC\:$ctagslib: # # Plug-in parser to use Universal Ctags. # # Most of the following definitions were automatically generated by this command line: # $ perl maps2conf.pl /usr/local/bin/ctags '$libdir/gtags/universal-ctags.la' # ('/user/local/bin/ctags' should be replaced with the path of Universal Ctags.) # universal-ctags|setting to use Universal Ctags plug-in parser:\ :tc=common:\ :ctagscom=/usr/local/bin/ctags:\ :ctagslib=$libdir/gtags/universal-ctags.la:\ :langmap=Ada\:.adb.ads.Ada:\ :langmap=Ant\:(build.xml)(*.build.xml).ant.xml:\ :langmap=Asm\:.A51(*.29[kK])(*.[68][68][kKsSxX])(*.[xX][68][68]).asm.ASM.s.S:\ :langmap=Asp\:.asp.asa:\ :langmap=Autoconf\:(configure.in).ac:\ :langmap=Automake\:(Makefile.am).am:\ :langmap=Awk\:.awk.gawk.mawk:\ :langmap=Basic\:.bas.bi.bb.pb:\ :langmap=BETA\:.bet:\ :langmap=Clojure\:.clj.cljs.cljc:\ :langmap=C\:.c:\ :langmap=C++\:.c++.cc.cp.cpp.cxx.h.h++.hh.hp.hpp.hxx.inl:\ :langmap=CSS\:.css:\ :langmap=C#\:.cs:\ :langmap=ctags\:.ctags:\ :langmap=Cobol\:.cbl.cob.CBL.COB:\ :langmap=CUDA\:.cu.cuh:\ :langmap=D\:.d.di:\ :langmap=Diff\:.diff.patch:\ :langmap=DTD\:.dtd.mod:\ :langmap=DTS\:.dts.dtsi:\ :langmap=DosBatch\:.bat.cmd:\ :langmap=Eiffel\:.e:\ :langmap=elm\:.elm:\ :langmap=Erlang\:.erl.ERL.hrl.HRL:\ :langmap=Falcon\:.fal.ftd:\ :langmap=Flex\:.as.mxml:\ :langmap=Fortran\:.f.for.ftn.f77.f90.f95.f03.f08.f15:\ :langmap=gdbinit\:(.gdbinit).gdb:\ :langmap=Go\:.go:\ :langmap=HTML\:.htm.html:\ :langmap=Iniconf\:.ini.conf:\ :langmap=ITcl\:.itcl:\ :langmap=Java\:.java:\ :langmap=JavaProperties\:.properties:\ :langmap=JavaScript\:.js.jsx:\ :langmap=JSON\:.json:\ :langmap=kotlin\:.kt:\ :langmap=LdScript\:(*.lds.S)(ld.*).lds.scr.ld:\ :langmap=Lisp\:.cl.clisp.el.l.lisp.lsp:\ :langmap=Lua\:.lua:\ :langmap=M4\:.m4.spt:\ :langmap=man\:.1.2.3.4.5.6.7.8.9:\ :langmap=Make\:([Mm]akefile)(GNUmakefile).mak.mk:\ :langmap=MatLab\:.m:\ :langmap=Myrddin\:.myr:\ :langmap=ObjectiveC\:.mm.m.h:\ :langmap=OldC++\:.c++.cc.cp.cpp.cxx.h.h++.hh.hp.hpp.hxx.inl:\ :langmap=OldC\:.c:\ :langmap=OCaml\:.ml.mli.aug:\ :langmap=passwd\:(passwd):\ :langmap=Pascal\:.p.pas:\ :langmap=Perl\:.pl.pm.ph.plx.perl:\ :langmap=Perl6\:.p6.pm6.pm.pl6:\ :langmap=PHP\:.php.php3.php4.php5.php7.phtml:\ :langmap=pod\:.pod:\ :langmap=Protobuf\:.proto:\ :langmap=puppetManifest\:.pp:\ :langmap=Python\:.py.pyx.pxd.pxi.scons:\ :langmap=QemuHX\:.hx:\ :langmap=R\:.r.R.s.q:\ :langmap=REXX\:.cmd.rexx.rx:\ :langmap=Robot\:.robot:\ :langmap=RpmSpec\:.spec:\ :langmap=reStructuredText\:.rest.reST.rst:\ :langmap=Ruby\:.rb.ruby:\ :langmap=Rust\:.rs:\ :langmap=Scheme\:.SCM.SM.sch.scheme.scm.sm:\ :langmap=Sh\:.sh.SH.bsh.bash.ksh.zsh.ash:\ :langmap=SLang\:.sl:\ :langmap=SML\:.sml.sig:\ :langmap=SQL\:.sql:\ :langmap=SystemdUnit\:.unit.service.socket.device.mount.automount.swap.target.path.timer.snapshot.scope.slice.time:\ :langmap=Tcl\:.tcl.tk.wish.exp:\ :langmap=Tex\:.tex:\ :langmap=TTCN\:.ttcn.ttcn3:\ :langmap=Vera\:.vr.vri.vrh:\ :langmap=Verilog\:.v:\ :langmap=SystemVerilog\:.sv.svh.svi:\ :langmap=VHDL\:.vhdl.vhd:\ :langmap=Vim\:(vimrc)([._]vimrc)(gvimrc)([._]gvimrc).vim.vba:\ :langmap=WindRes\:.rc:\ :langmap=YACC\:.y:\ :langmap=YumRepo\:.repo:\ :langmap=Zephir\:.zep:\ :langmap=DBusIntrospect\:.xml:\ :langmap=Glade\:.glade:\ :langmap=Maven2\:(pom.xml).pom.xml:\ :langmap=PlistXML\:.plist:\ :langmap=RelaxNG\:.rng:\ :langmap=SVG\:.svg:\ :langmap=XSLT\:.xsl.xslt:\ :gtags_parser=Ada\:$ctagslib:\ :gtags_parser=Ant\:$ctagslib:\ :gtags_parser=Asm\:$ctagslib:\ :gtags_parser=Asp\:$ctagslib:\ :gtags_parser=Autoconf\:$ctagslib:\ :gtags_parser=Automake\:$ctagslib:\ :gtags_parser=Awk\:$ctagslib:\ :gtags_parser=Basic\:$ctagslib:\ :gtags_parser=BETA\:$ctagslib:\ :gtags_parser=Clojure\:$ctagslib:\ :gtags_parser=C\:$ctagslib:\ :gtags_parser=C++\:$ctagslib:\ :gtags_parser=CSS\:$ctagslib:\ :gtags_parser=C#\:$ctagslib:\ :gtags_parser=ctags\:$ctagslib:\ :gtags_parser=Cobol\:$ctagslib:\ :gtags_parser=CUDA\:$ctagslib:\ :gtags_parser=D\:$ctagslib:\ :gtags_parser=Diff\:$ctagslib:\ :gtags_parser=DTD\:$ctagslib:\ :gtags_parser=DTS\:$ctagslib:\ :gtags_parser=DosBatch\:$ctagslib:\ :gtags_parser=Eiffel\:$ctagslib:\ :gtags_parser=elm\:$ctagslib:\ :gtags_parser=Erlang\:$ctagslib:\ :gtags_parser=Falcon\:$ctagslib:\ :gtags_parser=Flex\:$ctagslib:\ :gtags_parser=Fortran\:$ctagslib:\ :gtags_parser=gdbinit\:$ctagslib:\ :gtags_parser=Go\:$ctagslib:\ :gtags_parser=HTML\:$ctagslib:\ :gtags_parser=Iniconf\:$ctagslib:\ :gtags_parser=ITcl\:$ctagslib:\ :gtags_parser=Java\:$ctagslib:\ :gtags_parser=JavaProperties\:$ctagslib:\ :gtags_parser=JavaScript\:$ctagslib:\ :gtags_parser=JSON\:$ctagslib:\ :gtags_parser=LdScript\:$ctagslib:\ :gtags_parser=Lisp\:$ctagslib:\ :gtags_parser=Lua\:$ctagslib:\ :gtags_parser=M4\:$ctagslib:\ :gtags_parser=man\:$ctagslib:\ :gtags_parser=Make\:$ctagslib:\ :gtags_parser=MatLab\:$ctagslib:\ :gtags_parser=Myrddin\:$ctagslib:\ :gtags_parser=ObjectiveC\:$ctagslib:\ :gtags_parser=OldC++\:$ctagslib:\ :gtags_parser=OldC\:$ctagslib:\ :gtags_parser=OCaml\:$ctagslib:\ :gtags_parser=passwd\:$ctagslib:\ :gtags_parser=Pascal\:$ctagslib:\ :gtags_parser=Perl\:$ctagslib:\ :gtags_parser=Perl6\:$ctagslib:\ :gtags_parser=PHP\:$ctagslib:\ :gtags_parser=pod\:$ctagslib:\ :gtags_parser=Protobuf\:$ctagslib:\ :gtags_parser=puppetManifest\:$ctagslib:\ :gtags_parser=Python\:$ctagslib:\ :gtags_parser=QemuHX\:$ctagslib:\ :gtags_parser=R\:$ctagslib:\ :gtags_parser=REXX\:$ctagslib:\ :gtags_parser=Robot\:$ctagslib:\ :gtags_parser=RpmSpec\:$ctagslib:\ :gtags_parser=reStructuredText\:$ctagslib:\ :gtags_parser=Ruby\:$ctagslib:\ :gtags_parser=Rust\:$ctagslib:\ :gtags_parser=Scheme\:$ctagslib:\ :gtags_parser=Sh\:$ctagslib:\ :gtags_parser=SLang\:$ctagslib:\ :gtags_parser=SML\:$ctagslib:\ :gtags_parser=SQL\:$ctagslib:\ :gtags_parser=SystemdUnit\:$ctagslib:\ :gtags_parser=Tcl\:$ctagslib:\ :gtags_parser=Tex\:$ctagslib:\ :gtags_parser=TTCN\:$ctagslib:\ :gtags_parser=Vera\:$ctagslib:\ :gtags_parser=Verilog\:$ctagslib:\ :gtags_parser=SystemVerilog\:$ctagslib:\ :gtags_parser=VHDL\:$ctagslib:\ :gtags_parser=Vim\:$ctagslib:\ :gtags_parser=WindRes\:$ctagslib:\ :gtags_parser=YACC\:$ctagslib:\ :gtags_parser=YumRepo\:$ctagslib:\ :gtags_parser=Zephir\:$ctagslib:\ :gtags_parser=DBusIntrospect\:$ctagslib:\ :gtags_parser=Glade\:$ctagslib:\ :gtags_parser=Maven2\:$ctagslib:\ :gtags_parser=PlistXML\:$ctagslib:\ :gtags_parser=RelaxNG\:$ctagslib:\ :gtags_parser=SVG\:$ctagslib:\ :gtags_parser=XSLT\:$ctagslib: # # Plug-in parser to use Pygments. # pygments-parser|Pygments plug-in parser:\ :tc=common:\ :ctagscom=/usr/local/bin/ctags:\ :pygmentslib=$libdir/gtags/pygments-parser.la:\ :langmap=ABAP\:.abap:\ :langmap=ANTLR\:.G.g:\ :langmap=ActionScript3\:.as:\ :langmap=Ada\:.adb.ads.ada:\ :langmap=AppleScript\:.applescript:\ :langmap=AspectJ\:.aj:\ :langmap=Aspx-cs\:.aspx.asax.ascx.ashx.asmx.axd:\ :langmap=Asymptote\:.asy:\ :langmap=AutoIt\:.au3:\ :langmap=Awk\:.awk.gawk.mawk:\ :langmap=BUGS\:.bug:\ :langmap=Bash\:.sh.ksh.bash.ebuild.eclass:\ :langmap=Bat\:.bat.cmd:\ :langmap=BlitzMax\:.bmx:\ :langmap=Boo\:.boo:\ :langmap=Bro\:.bro:\ :langmap=C#\:.cs:\ :langmap=C++\:.c++.cc.cp.cpp.cxx.h.h++.hh.hp.hpp.hxx.C.H:\ :langmap=COBOLFree\:.cbl.CBL:\ :langmap=COBOL\:.cob.COB.cpy.CPY:\ :langmap=CUDA\:.cu.cuh:\ :langmap=C\:.c.h:\ :langmap=Ceylon\:.ceylon:\ :langmap=Cfm\:.cfm.cfml.cfc:\ :langmap=Clojure\:.clj:\ :langmap=CoffeeScript\:.coffee:\ :langmap=Common-Lisp\:.cl.lisp.el:\ :langmap=Coq\:.v:\ :langmap=Croc\:.croc:\ :langmap=Csh\:.tcsh.csh:\ :langmap=Cython\:.pyx.pxd.pxi:\ :langmap=Dart\:.dart:\ :langmap=Dg\:.dg:\ :langmap=Duel\:.duel.jbst:\ :langmap=Dylan\:.dylan.dyl.intr:\ :langmap=ECL\:.ecl:\ :langmap=EC\:.ec.eh:\ :langmap=ERB\:.erb:\ :langmap=Elixir\:.ex.exs:\ :langmap=Erlang\:.erl.hrl.es.escript:\ :langmap=Evoque\:.evoque:\ :langmap=FSharp\:.fs.fsi:\ :langmap=Factor\:.factor:\ :langmap=Fancy\:.fy.fancypack:\ :langmap=Fantom\:.fan:\ :langmap=Felix\:.flx.flxh:\ :langmap=Fortran\:.f.f90.F.F90:\ :langmap=GAS\:.s.S:\ :langmap=GLSL\:.vert.frag.geo:\ :langmap=Genshi\:.kid:\ :langmap=Gherkin\:.feature:\ :langmap=Gnuplot\:.plot.plt:\ :langmap=Go\:.go:\ :langmap=GoodData-CL\:.gdc:\ :langmap=Gosu\:.gs.gsx.gsp.vark:\ :langmap=Groovy\:.groovy:\ :langmap=Gst\:.gst:\ :langmap=HaXe\:.hx:\ :langmap=Haml\:.haml:\ :langmap=Haskell\:.hs:\ :langmap=Hxml\:.hxml:\ :langmap=Hybris\:.hy.hyb:\ :langmap=IDL\:.pro:\ :langmap=Io\:.io:\ :langmap=Ioke\:.ik:\ :langmap=JAGS\:.jag.bug:\ :langmap=Jade\:.jade:\ :langmap=JavaScript\:.js:\ :langmap=Java\:.java:\ :langmap=Jsp\:.jsp:\ :langmap=Julia\:.jl:\ :langmap=Koka\:.kk.kki:\ :langmap=Kotlin\:.kt:\ :langmap=LLVM\:.ll:\ :langmap=Lasso\:.lasso:\ :langmap=Literate-Haskell\:.lhs:\ :langmap=LiveScript\:.ls:\ :langmap=Logos\:.x.xi.xm.xmi:\ :langmap=Logtalk\:.lgt:\ :langmap=Lua\:.lua.wlua:\ :langmap=MOOCode\:.moo:\ :langmap=MXML\:.mxml:\ :langmap=Mako\:.mao:\ :langmap=Mason\:.m.mhtml.mc.mi:\ :langmap=Matlab\:.m:\ :langmap=Modelica\:.mo:\ :langmap=Modula2\:.mod:\ :langmap=Monkey\:.monkey:\ :langmap=MoonScript\:.moon:\ :langmap=MuPAD\:.mu:\ :langmap=Myghty\:.myt:\ :langmap=NASM\:.asm.ASM:\ :langmap=NSIS\:.nsi.nsh:\ :langmap=Nemerle\:.n:\ :langmap=NewLisp\:.lsp.nl:\ :langmap=Newspeak\:.ns2:\ :langmap=Nimrod\:.nim.nimrod:\ :langmap=OCaml\:.ml.mli.mll.mly:\ :langmap=Objective-C++\:.mm.hh:\ :langmap=Objective-C\:.m.h:\ :langmap=Objective-J\:.j:\ :langmap=Octave\:.m:\ :langmap=Ooc\:.ooc:\ :langmap=Opa\:.opa:\ :langmap=OpenEdge\:.p.cls:\ :langmap=PHP\:.php.php3.phtml:\ :langmap=Pascal\:.pas:\ :langmap=Perl\:.pl.pm:\ :langmap=PostScript\:.ps.eps:\ :langmap=PowerShell\:.ps1:\ :langmap=Prolog\:.prolog.pro.pl:\ :langmap=Python\:.py.pyw.sc.tac.sage:\ :langmap=QML\:.qml:\ :langmap=REBOL\:.r.r3:\ :langmap=RHTML\:.rhtml:\ :langmap=Racket\:.rkt.rktl:\ :langmap=Ragel\:.rl:\ :langmap=Redcode\:.cw:\ :langmap=RobotFramework\:.robot:\ :langmap=Ruby\:.rb.rbw.rake.gemspec.rbx.duby:\ :langmap=Rust\:.rs.rc:\ :langmap=S\:.S.R:\ :langmap=Scala\:.scala:\ :langmap=Scaml\:.scaml:\ :langmap=Scheme\:.scm.ss:\ :langmap=Scilab\:.sci.sce.tst:\ :langmap=Smalltalk\:.st:\ :langmap=Smarty\:.tpl:\ :langmap=Sml\:.sml.sig.fun:\ :langmap=Snobol\:.snobol:\ :langmap=SourcePawn\:.sp:\ :langmap=Spitfire\:.spt:\ :langmap=Ssp\:.ssp:\ :langmap=Stan\:.stan:\ :langmap=SystemVerilog\:.sv.svh:\ :langmap=Tcl\:.tcl:\ :langmap=TeX\:.tex.aux.toc:\ :langmap=Tea\:.tea:\ :langmap=Treetop\:.treetop.tt:\ :langmap=TypeScript\:.ts:\ :langmap=UrbiScript\:.u:\ :langmap=VB.net\:.vb.bas:\ :langmap=VGL\:.rpf:\ :langmap=Vala\:.vala.vapi:\ :langmap=Velocity\:.vm.fhtml:\ :langmap=Verilog\:.v:\ :langmap=Vhdl\:.vhdl.vhd:\ :langmap=Vim\:.vim:\ :langmap=XBase\:.PRG.prg:\ :langmap=XQuery\:.xqy.xquery.xq.xql.xqm:\ :langmap=XSLT\:.xsl.xslt.xpl:\ :langmap=Xtend\:.xtend:\ :gtags_parser=ABAP\:$pygmentslib:\ :gtags_parser=ANTLR\:$pygmentslib:\ :gtags_parser=ActionScript3\:$pygmentslib:\ :gtags_parser=Ada\:$pygmentslib:\ :gtags_parser=AppleScript\:$pygmentslib:\ :gtags_parser=AspectJ\:$pygmentslib:\ :gtags_parser=Aspx-cs\:$pygmentslib:\ :gtags_parser=Asymptote\:$pygmentslib:\ :gtags_parser=AutoIt\:$pygmentslib:\ :gtags_parser=Awk\:$pygmentslib:\ :gtags_parser=BUGS\:$pygmentslib:\ :gtags_parser=Bash\:$pygmentslib:\ :gtags_parser=Bat\:$pygmentslib:\ :gtags_parser=BlitzMax\:$pygmentslib:\ :gtags_parser=Boo\:$pygmentslib:\ :gtags_parser=Bro\:$pygmentslib:\ :gtags_parser=C#\:$pygmentslib:\ :gtags_parser=C++\:$pygmentslib:\ :gtags_parser=COBOLFree\:$pygmentslib:\ :gtags_parser=COBOL\:$pygmentslib:\ :gtags_parser=CUDA\:$pygmentslib:\ :gtags_parser=C\:$pygmentslib:\ :gtags_parser=Ceylon\:$pygmentslib:\ :gtags_parser=Cfm\:$pygmentslib:\ :gtags_parser=Clojure\:$pygmentslib:\ :gtags_parser=CoffeeScript\:$pygmentslib:\ :gtags_parser=Common-Lisp\:$pygmentslib:\ :gtags_parser=Coq\:$pygmentslib:\ :gtags_parser=Croc\:$pygmentslib:\ :gtags_parser=Csh\:$pygmentslib:\ :gtags_parser=Cython\:$pygmentslib:\ :gtags_parser=Dart\:$pygmentslib:\ :gtags_parser=Dg\:$pygmentslib:\ :gtags_parser=Duel\:$pygmentslib:\ :gtags_parser=Dylan\:$pygmentslib:\ :gtags_parser=ECL\:$pygmentslib:\ :gtags_parser=EC\:$pygmentslib:\ :gtags_parser=ERB\:$pygmentslib:\ :gtags_parser=Elixir\:$pygmentslib:\ :gtags_parser=Erlang\:$pygmentslib:\ :gtags_parser=Evoque\:$pygmentslib:\ :gtags_parser=FSharp\:$pygmentslib:\ :gtags_parser=Factor\:$pygmentslib:\ :gtags_parser=Fancy\:$pygmentslib:\ :gtags_parser=Fantom\:$pygmentslib:\ :gtags_parser=Felix\:$pygmentslib:\ :gtags_parser=Fortran\:$pygmentslib:\ :gtags_parser=GAS\:$pygmentslib:\ :gtags_parser=GLSL\:$pygmentslib:\ :gtags_parser=Genshi\:$pygmentslib:\ :gtags_parser=Gherkin\:$pygmentslib:\ :gtags_parser=Gnuplot\:$pygmentslib:\ :gtags_parser=Go\:$pygmentslib:\ :gtags_parser=GoodData-CL\:$pygmentslib:\ :gtags_parser=Gosu\:$pygmentslib:\ :gtags_parser=Groovy\:$pygmentslib:\ :gtags_parser=Gst\:$pygmentslib:\ :gtags_parser=HaXe\:$pygmentslib:\ :gtags_parser=Haml\:$pygmentslib:\ :gtags_parser=Haskell\:$pygmentslib:\ :gtags_parser=Hxml\:$pygmentslib:\ :gtags_parser=Hybris\:$pygmentslib:\ :gtags_parser=IDL\:$pygmentslib:\ :gtags_parser=Io\:$pygmentslib:\ :gtags_parser=Ioke\:$pygmentslib:\ :gtags_parser=JAGS\:$pygmentslib:\ :gtags_parser=Jade\:$pygmentslib:\ :gtags_parser=JavaScript\:$pygmentslib:\ :gtags_parser=Java\:$pygmentslib:\ :gtags_parser=Jsp\:$pygmentslib:\ :gtags_parser=Julia\:$pygmentslib:\ :gtags_parser=Koka\:$pygmentslib:\ :gtags_parser=Kotlin\:$pygmentslib:\ :gtags_parser=LLVM\:$pygmentslib:\ :gtags_parser=Lasso\:$pygmentslib:\ :gtags_parser=Literate-Haskell\:$pygmentslib:\ :gtags_parser=LiveScript\:$pygmentslib:\ :gtags_parser=Logos\:$pygmentslib:\ :gtags_parser=Logtalk\:$pygmentslib:\ :gtags_parser=Lua\:$pygmentslib:\ :gtags_parser=MAQL\:$pygmentslib:\ :gtags_parser=MOOCode\:$pygmentslib:\ :gtags_parser=MXML\:$pygmentslib:\ :gtags_parser=Mako\:$pygmentslib:\ :gtags_parser=Mason\:$pygmentslib:\ :gtags_parser=Matlab\:$pygmentslib:\ :gtags_parser=MiniD\:$pygmentslib:\ :gtags_parser=Modelica\:$pygmentslib:\ :gtags_parser=Modula2\:$pygmentslib:\ :gtags_parser=Monkey\:$pygmentslib:\ :gtags_parser=MoonScript\:$pygmentslib:\ :gtags_parser=MuPAD\:$pygmentslib:\ :gtags_parser=Myghty\:$pygmentslib:\ :gtags_parser=NASM\:$pygmentslib:\ :gtags_parser=NSIS\:$pygmentslib:\ :gtags_parser=Nemerle\:$pygmentslib:\ :gtags_parser=NewLisp\:$pygmentslib:\ :gtags_parser=Newspeak\:$pygmentslib:\ :gtags_parser=Nimrod\:$pygmentslib:\ :gtags_parser=OCaml\:$pygmentslib:\ :gtags_parser=Objective-C++\:$pygmentslib:\ :gtags_parser=Objective-C\:$pygmentslib:\ :gtags_parser=Objective-J\:$pygmentslib:\ :gtags_parser=Octave\:$pygmentslib:\ :gtags_parser=Ooc\:$pygmentslib:\ :gtags_parser=Opa\:$pygmentslib:\ :gtags_parser=OpenEdge\:$pygmentslib:\ :gtags_parser=PHP\:$pygmentslib:\ :gtags_parser=Pascal\:$pygmentslib:\ :gtags_parser=Perl\:$pygmentslib:\ :gtags_parser=PostScript\:$pygmentslib:\ :gtags_parser=PowerShell\:$pygmentslib:\ :gtags_parser=Prolog\:$pygmentslib:\ :gtags_parser=Python\:$pygmentslib:\ :gtags_parser=QML\:$pygmentslib:\ :gtags_parser=REBOL\:$pygmentslib:\ :gtags_parser=RHTML\:$pygmentslib:\ :gtags_parser=Racket\:$pygmentslib:\ :gtags_parser=Ragel\:$pygmentslib:\ :gtags_parser=Redcode\:$pygmentslib:\ :gtags_parser=RobotFramework\:$pygmentslib:\ :gtags_parser=Ruby\:$pygmentslib:\ :gtags_parser=Rust\:$pygmentslib:\ :gtags_parser=S\:$pygmentslib:\ :gtags_parser=Scala\:$pygmentslib:\ :gtags_parser=Scaml\:$pygmentslib:\ :gtags_parser=Scheme\:$pygmentslib:\ :gtags_parser=Scilab\:$pygmentslib:\ :gtags_parser=Smalltalk\:$pygmentslib:\ :gtags_parser=Smarty\:$pygmentslib:\ :gtags_parser=Sml\:$pygmentslib:\ :gtags_parser=Snobol\:$pygmentslib:\ :gtags_parser=SourcePawn\:$pygmentslib:\ :gtags_parser=Spitfire\:$pygmentslib:\ :gtags_parser=Ssp\:$pygmentslib:\ :gtags_parser=Stan\:$pygmentslib:\ :gtags_parser=SystemVerilog\:$pygmentslib:\ :gtags_parser=Tcl\:$pygmentslib:\ :gtags_parser=TeX\:$pygmentslib:\ :gtags_parser=Tea\:$pygmentslib:\ :gtags_parser=Treetop\:$pygmentslib:\ :gtags_parser=TypeScript\:$pygmentslib:\ :gtags_parser=UrbiScript\:$pygmentslib:\ :gtags_parser=VB.net\:$pygmentslib:\ :gtags_parser=VGL\:$pygmentslib:\ :gtags_parser=Vala\:$pygmentslib:\ :gtags_parser=Velocity\:$pygmentslib:\ :gtags_parser=Verilog\:$pygmentslib:\ :gtags_parser=Vhdl\:$pygmentslib:\ :gtags_parser=Vim\:$pygmentslib:\ :gtags_parser=XBase\:$pygmentslib:\ :gtags_parser=XQuery\:$pygmentslib:\ :gtags_parser=XSLT\:$pygmentslib:\ :gtags_parser=Xtend\:$pygmentslib: # # Drupal configuration. # drupal|Drupal content management platform:\ :tc=common:\ :langmap=php\:.php.module.inc.profile.install.test: #--------------------------------------------------------------------- # Configuration for htags(1) #--------------------------------------------------------------------- htags:\ :: --nFreZHaLTZJo0R7j Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="issue.log" Content-Transfer-Encoding: 8bit :: ~/issue % ll <<< 130 ↵ total 12K -rw-r--r-- 1 hero hero 11K aug 10 17:51 FileTreeWalk.kt :: ~/issue % gtags --gtagslabel=new-ctags -v [Sat Aug 10 21:34:11 EEST 2019] Gtags started. Using configuration file '/usr/local/share/gtags/gtags.conf'. Using configuration label 'new-ctags'. Using plug-in parser. [Sat Aug 10 21:34:11 EEST 2019] Creating 'GTAGS' and 'GRTAGS'. [1] extracting tags of FileTreeWalk.kt [Sat Aug 10 21:34:11 EEST 2019] Done. :: ~/issue % global -c FileTreeWalk :: ~/issue % rm G* :: ~/issue % gtags --gtagslabel=ctags -v [Sat Aug 10 21:34:33 EEST 2019] Gtags started. Using configuration file '/usr/local/share/gtags/gtags.conf'. Using configuration label 'ctags'. Using plug-in parser. [Sat Aug 10 21:34:33 EEST 2019] Creating 'GTAGS' and 'GRTAGS'. [1] extracting tags of FileTreeWalk.kt [Sat Aug 10 21:34:33 EEST 2019] Done. :: ~/issue % global -c FileTreeWalk :: ~/issue % rm G* :: ~/issue % gtags --gtagslabel=pygments -v [Sat Aug 10 21:34:45 EEST 2019] Gtags started. Using configuration file '/usr/local/share/gtags/gtags.conf'. Using configuration label 'pygments'. Using plug-in parser. [Sat Aug 10 21:34:45 EEST 2019] Creating 'GTAGS' and 'GRTAGS'. [1] extracting tags of FileTreeWalk.kt [Sat Aug 10 21:34:45 EEST 2019] Done. :: ~/issue % global -c FileTreeWalk FileTreeWalk FileTreeWalkIterator :: ~/issue % mv ~/.ctags.d/kt.ctags ~/.ctags.d/kt.backup :: ~/issue % rm G* :: ~/issue % gtags --gtagslabel=pygments -v [Sat Aug 10 21:35:14 EEST 2019] Gtags started. Using configuration file '/usr/local/share/gtags/gtags.conf'. Using configuration label 'pygments'. Using plug-in parser. [Sat Aug 10 21:35:14 EEST 2019] Creating 'GTAGS' and 'GRTAGS'. [1] extracting tags of FileTreeWalk.kt [Sat Aug 10 21:35:14 EEST 2019] Done. :: ~/issue % global -c FileTreeWalk :: ~/issue % mv ~/.ctags.d/kt.backup ~/.ctags.d/kt.ctags :: ~/issue % gtags --gtagslabel=pygments -v [Sat Aug 10 21:35:27 EEST 2019] Gtags started. Using configuration file '/usr/local/share/gtags/gtags.conf'. Using configuration label 'pygments'. Using plug-in parser. [Sat Aug 10 21:35:27 EEST 2019] Creating 'GTAGS' and 'GRTAGS'. [1] extracting tags of FileTreeWalk.kt [Sat Aug 10 21:35:27 EEST 2019] Done. :: ~/issue % global -c FileTreeWalk FileTreeWalk FileTreeWalkIterator :: ~/issue % ctags -R && cat tags | grep FileTreeWalk | head -n 1 BottomUpDirectoryState FileTreeWalk.kt /^ private inner class BottomUpDirectoryState(rootDir: File) : DirectoryState(rootDir) {$/;" c --nFreZHaLTZJo0R7j Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: inline X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSGVscC1nbG9i YWwgbWFpbGluZyBsaXN0CkhlbHAtZ2xvYmFsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3Jn L21haWxtYW4vbGlzdGluZm8vaGVscC1nbG9iYWwK --nFreZHaLTZJo0R7j--