--- a/Tools__TagList.st Tue Jan 22 15:12:23 2013 +0100
+++ b/Tools__TagList.st Wed Jan 23 23:01:22 2013 +0100
@@ -1607,9 +1607,12 @@
!
shellCommandTemplateFor:aFilenameString
- "returns the shellCommand to be used (contains %1 for the filename)"
+ "returns the shellCommand to be used (contains %1 for the filename).
+ When first called, looks for ctags (both a private and the system-supplied),
+ and tries to see what version that is. I prefer exuberant ctags version"
|lcSuffix shellCommand isCSuffix isCPlusPlusSuffix isJavaSuffix isEiffelSuffix isFortranSuffix
+ isTCLSuffix isRubySuffix isPythonSuffix isPhpSuffix isJavaScriptSuffix
showOnly response suff fn|
ctagsCommand isNil ifTrue:[
@@ -1617,7 +1620,7 @@
"/ local use
suff := (OperatingSystem isMSWINDOWSlike) ifTrue:'.exe' ifFalse:''.
- ctagsCommand := Smalltalk getPackageFileName:'stx/support/tools/ctags-5.0.1/ctags',suff.
+ ctagsCommand := Smalltalk getPackageFileName:'stx/support/tools/ctags-5.8/ctags',suff.
(ctagsCommand notNil and:[(fn := ctagsCommand asFilename) isExecutableProgram]) ifTrue:[
ctagsCommand := fn pathName.
ctagsIsExCtags := ctagsIsExCtags5x := true.
@@ -1685,9 +1688,18 @@
(ctagsIsExCtags5x ? false) ifFalse:[
^ nil
].
- "/ ex_ctags5.x also supports awk, lisp, perl, pascal and a few others
-"/ ^ nil
+
+ "/ ex_ctags5.x also supports:
+ "/ Assembler, AWK, ASP, BETA,
+ "/ Bourne/Korn/Z Shell, C, C++, C#, COBOL, Eiffel, Erlang, Fortran, Java, Lisp,
+ "/ Lua, Makefile, Pascal, Perl, PHP, PL/SQL, Python, REXX, Ruby, Scheme,
+ "/ S-Lang, SML (Standard ML), Tcl, Vera, Verilog, VHDL, Vim, and YACC.
].
+ isTCLSuffix := self class isTCLSuffix:lcSuffix.
+ isRubySuffix := self class isRubySuffix:lcSuffix.
+ isPythonSuffix := self class isPythonSuffix:lcSuffix.
+ isPhpSuffix := self class isPhpSuffix:lcSuffix.
+ isJavaScriptSuffix := self class isJavaScriptSuffix:lcSuffix.
usingDefaultCTags := false.
shellCommand := shellCommand asFilename asAbsoluteFilename pathName.
@@ -1724,28 +1736,15 @@
]
]
].
- hideStructMembers == true ifTrue:[
- shellCommand := shellCommand, ' --c-types=-m'
- ].
- hideDefines == true ifTrue:[
- shellCommand := shellCommand, ' --c-types=-d'
- ].
- hideTypedefs == true ifTrue:[
- shellCommand := shellCommand, ' --c-types=-t'
- ].
- hideStructures == true ifTrue:[
- shellCommand := shellCommand, ' --c-types=-s'
- ].
- hideVariables == true ifTrue:[
- shellCommand := shellCommand, ' --c-types=-v'
- ].
- hideFunctions == true ifTrue:[
- shellCommand := shellCommand, ' --c-types=-f'
- ].
- hideClasses == true ifTrue:[
- shellCommand := shellCommand, ' --c-types=-c'
- ].
+ hideStructMembers == true ifTrue:[ shellCommand := shellCommand, ' --c-types=-m'].
+ hideDefines == true ifTrue:[ shellCommand := shellCommand, ' --c-types=-d' ].
+ hideTypedefs == true ifTrue:[ shellCommand := shellCommand, ' --c-types=-t' ].
+ hideStructures == true ifTrue:[ shellCommand := shellCommand, ' --c-types=-s'].
+ hideVariables == true ifTrue:[ shellCommand := shellCommand, ' --c-types=-v'].
+ hideFunctions == true ifTrue:[ shellCommand := shellCommand, ' --c-types=-f'].
+ hideClasses == true ifTrue:[ shellCommand := shellCommand, ' --c-types=-c'].
].
+
isJavaSuffix ifTrue:[
shellCommand := shellCommand, ' --lang=java'.
@@ -1760,27 +1759,18 @@
]
]
].
- hideJavaClasses == true ifTrue:[
- shellCommand := shellCommand, ' --java-types=-c'
- ].
- hideJavaMethods == true ifTrue:[
- shellCommand := shellCommand, ' --java-types=-m'
- ].
- hideJavaInterfaces == true ifTrue:[
- shellCommand := shellCommand, ' --java-types=-i'
- ].
- hideJavaFields == true ifTrue:[
- shellCommand := shellCommand, ' --java-types=-f'
- ].
- hideJavaPackages == true ifTrue:[
- shellCommand := shellCommand, ' --java-types=-p'
- ].
+ hideJavaClasses == true ifTrue:[ shellCommand := shellCommand, ' --java-types=-c' ].
+ hideJavaMethods == true ifTrue:[ shellCommand := shellCommand, ' --java-types=-m' ].
+ hideJavaInterfaces == true ifTrue:[ shellCommand := shellCommand, ' --java-types=-i' ].
+ hideJavaFields == true ifTrue:[ shellCommand := shellCommand, ' --java-types=-f' ].
+ hideJavaPackages == true ifTrue:[ shellCommand := shellCommand, ' --java-types=-p' ].
].
+
isEiffelSuffix ifTrue:[
shellCommand := shellCommand, ' --lang=eiffel'.
- showOnly == #classes ifTrue:[
- shellCommand := shellCommand, ' --eiffel-types=c'
+ showOnly == #classes ifTrue:[
+ shellCommand := shellCommand, ' --eiffel-types=c'
] ifFalse:[
showOnly == #features ifTrue:[
shellCommand := shellCommand, ' --eiffel-types=f'
@@ -3650,13 +3640,14 @@
!TagList class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__TagList.st,v 1.20 2012-09-30 09:39:59 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__TagList.st,v 1.21 2013-01-23 22:01:22 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__TagList.st,v 1.20 2012-09-30 09:39:59 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__TagList.st,v 1.21 2013-01-23 22:01:22 cg Exp $'
!
version_SVN
^ '§Id§'
! !
+