eXept Software AG Logo

Smalltalk/X Webserver

Documentation of class 'Tools::TagList':

Home

Documentation
www.exept.de
Everywhere
for:
[back]

Class: TagList (in Tools)


Inheritance:

   Object
   |
   +--Collection
      |
      +--SequenceableCollection
         |
         +--OrderedCollection
            |
            +--List
               |
               +--Tools::TagList

Package:
stx:libtool
Category:
Interface-Tools-File-Tags
Version:
rev: 1.106 date: 2019/06/21 10:04:36
user: cg
file: Tools__TagList.st directory: libtool
module: stx stc-classLibrary: libtool

Description:


a list of tags as read & generated from parsing a source file.
For some languages, naive parsing is supported right here;
for other languages, external tools (ctags) are used.
The tags are used bz the tagList or to navigate quickly to some
function in the C-browser.


Class protocol:

accessing - suffixes
o  tagsSuffixes
flush with:
TagsSuffixes := nil

defaults
o  arcLispSuffixes
returns a list of supported arc-lisp-suffixes

o  assemblerSuffixes
returns a list of supported assembler-suffixes

o  batchSuffixes
returns a list of supported batchfile-suffixes

o  cPlusPlusSuffixes
returns a list of supported c-suffixes

o  cSuffixes
returns a list of supported c-suffixes

o  commonLispSuffixes
returns a list of supported common-lisp-suffixes

o  dartSuffixes
returns a list of supported dart-suffixes

o  eiffelSuffixes
returns a list of supported eiffel-suffixes

o  fortranSuffixes
returns a list of supported fortran-suffixes

o  htmlSuffixes
returns a list of supported html-suffixes

o  isTagSearchableSuffix: aSuffix
returns true, if aSuffix looks ok for ctags

o  javaScriptSuffixes
returns a list of supported javaScript-suffixes

o  javaSuffixes
returns a list of supported java-suffixes

o  luaSuffixes
returns a list of supported lua-suffixes

o  makeFilePatterns
returns a list of makefile match patterns

o  objcSuffixes
returns a list of supported c-suffixes

o  ozSuffixes
returns a list of supported oz-suffixes

o  phpSuffixes
returns a list of supported php-suffixes

o  pltSchemeLispSuffixes

o  prologSuffixes
returns a list of supported prolog-suffixes

o  pythonSuffixes
returns a list of supported python-suffixes

o  racketSchemeLispSuffixes

o  rubySuffixes
returns a list of supported ruby-suffixes

o  schemeSuffixes
returns a list of supported scheme-lisp-suffixes

o  smalltalkSuffixes
returns a list of supported smalltalk-suffixes

o  tclSuffixes
returns a list of supported tcl-suffixes

o  xsdSuffixes
returns a list of supported xsd-suffixes

o  yaccSuffixes
returns a list of supported yacc-suffixes

queries
o  isArcLispSuffix: suffix

o  isAssemblerSuffix: suffix

o  isBatchSuffix: suffix

o  isCOrCPlusPlusSuffix: suffix

o  isCPlusPlusSuffix: suffix

o  isCSuffix: suffix

o  isCommonLispSuffix: suffix

o  isDartSuffix: suffix

o  isEiffelSuffix: suffix

o  isFortranSuffix: suffix

o  isHTMLSuffix: suffix

o  isJavaScriptSuffix: suffix

o  isJavaSuffix: suffix

o  isLispSuffix: suffix

o  isLuaSuffix: suffix

o  isMakefileName: fileName

o  isObjcSuffix: suffix

o  isOzSuffix: suffix

o  isPhpSuffix: suffix

o  isPltSchemeLispSuffix: suffix

o  isPrologSuffix: suffix

o  isPythonSuffix: suffix

o  isRacketSchemeLispSuffix: suffix

o  isRubySuffix: suffix

o  isSchemeSuffix: suffix

o  isSmalltalkSuffix: suffix

o  isTCLSuffix: suffix

o  isXSDSuffix: suffix

o  isYaccSuffix: suffix

queries basic
o  isSuffix: suffix in: patterns

o  tagMimeTypeForFile: aFile
returns the tag-mimetype for a file or nil

tag generation
o  cachedTagsFromFile: aFilename in: aTempDirectory
retrieve a cached tagList for a file

o  cachedTagsFromFile: aFilename in: aTempDirectory buildTargetHandler: aTargetHandler remote: aBoolean
retrieve a cached tagList for a file

o  flushCachedTags
self flushCachedTags

o  makeTargetTagsInFile: aMakefilePath
makefile tags:
naive, q&d scan for lines ending with a colon

o  makeTargetTagsInFile: aMakefilePath filter: showOnly
makefile tags:
naive, q&d scan for lines ending with a colon


Instance protocol:

accessing
o  tagTypesPresent: aBoolean

accessing-filters
o  anchorsOnly

o  anchorsOnly: aBoolean
DefaultShowOnly :=

o  classesAndFunctionsOnly

o  classesAndFunctionsOnly: aBoolean

o  classesAndMethodsOnly

o  classesAndMethodsOnly: aBoolean

o  classesFunctionsAndVariablesOnly

o  classesFunctionsAndVariablesOnly: aBoolean

o  classesOnly

o  classesOnly: aBoolean

o  dartClassesAndMethodsOnly
^ showOnly == #dartClassesAndMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  dartClassesAndMethodsOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  dartClassesOnly
^ showOnly == #dartClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  dartClassesOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  dartMethodsOnly
^ showOnly == #dartMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  dartMethodsOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  definesOnly

o  definesOnly: aBoolean

o  documentationOnly

o  documentationOnly: aBoolean
DefaultShowOnly :=

o  filter: aStringOrNil
(comment from inherited method)
select elements for which filterFunction returns true

o  flagNamed: aSymbol

o  flagNamed: aSymbol put: aBoolean

o  functionsAndVariablesOnly

o  functionsAndVariablesOnly: aBoolean

o  functionsOnly

o  functionsOnly: aBoolean

o  headlinesOnly

o  headlinesOnly: aBoolean
DefaultShowOnly :=

o  hideClasses

o  hideClasses: aBoolean

o  hideDartClasses
^ self flagNamed:#hideDartClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartClasses: aBoolean
self flagNamed:#hideDartClasses put:aBoolean

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartFields
^ self flagNamed:#hideDartFields

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartFields: aBoolean
self flagNamed:#hideDartFields put:aBoolean

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartInterfaces
^ self flagNamed:#hideDartInterfaces

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartInterfaces: aBoolean
self flagNamed:#hideDartInterfaces put:aBoolean

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartMethods
^ self flagNamed:#hideDartMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartMethods: aBoolean
self flagNamed:#hideDartMethods put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartPackages
^ self flagNamed:#hideDartPackages

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDartPackages: aBoolean
self flagNamed:#hideDartPackages put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideDataLabels

o  hideDataLabels: aBoolean

o  hideDefines

o  hideDefines: aBoolean

o  hideDocumentation

o  hideDocumentation: aBoolean

o  hideFields

o  hideFields: aBoolean

o  hideFunctionProtoTypes

o  hideFunctionProtoTypes: aBoolean

o  hideFunctions

o  hideFunctions: aBoolean

o  hideHTMLHeaders

o  hideHTMLHeaders: aBoolean

o  hideHTMLInput

o  hideHTMLInput: aBoolean

o  hideHTMLScript

o  hideHTMLScript: aBoolean

o  hideHTMLTable

o  hideHTMLTable: aBoolean

o  hideHTMLTextArea

o  hideHTMLTextArea: aBoolean

o  hideInterfaces

o  hideInterfaces: aBoolean

o  hideJavaClasses
^ self flagNamed:#hideJavaClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaClasses: aBoolean
self flagNamed:#hideJavaClasses put:aBoolean

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaFields
^ self flagNamed:#hideJavaFields

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaFields: aBoolean
self flagNamed:#hideJavaFields put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaInterfaces
^ self flagNamed:#hideJavaInterfaces

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaInterfaces: aBoolean
self flagNamed:#hideJavaInterfaces put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaMethods
^ self flagNamed:#hideJavaMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaMethods: aBoolean
self flagNamed:#hideJavaMethods put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaPackages
^ self flagNamed:#hideJavaPackages

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideJavaPackages: aBoolean
self flagNamed:#hideJavaPackages put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideLabels

o  hideLabels: aBoolean

o  hideLispConstants

o  hideLispConstants: aBoolean

o  hideLispEvaluations

o  hideLispEvaluations: aBoolean

o  hideLispMacros

o  hideLispMacros: aBoolean

o  hideLispMethods

o  hideLispMethods: aBoolean

o  hideLocalLabels

o  hideLocalLabels2

o  hideLocalLabels2: aBoolean

o  hideLocalLabels3

o  hideLocalLabels3: aBoolean

o  hideLocalLabels: aBoolean

o  hideLuaFunctions
^ self flagNamed:#hideLuaFunctions

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideLuaFunctions: aBoolean
self flagNamed:#hideLuaFunctions put:aBoolean

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideMethods

o  hideMethods: aBoolean

o  hideObjcClasses
^ self flagNamed:#hideObjcClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideObjcClasses: aBoolean
self flagNamed:#hideObjcClasses put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideObjcMethods
^ self flagNamed:#hideObjcMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideObjcMethods: aBoolean
self flagNamed:#hideObjcMethods put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideOzClasses
^ self flagNamed:#hideOzClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideOzClasses: aBoolean
self flagNamed:#hideOzClasses put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideOzFunctions
^ self flagNamed:#hideOzFunctions

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideOzFunctions: aBoolean
self flagNamed:#hideOzFunctions put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideOzMethods
^ self flagNamed:#hideOzMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideOzMethods: aBoolean
self flagNamed:#hideOzMethods put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hidePackages

o  hidePackages: aBoolean

o  hidePythonClasses
^ self flagNamed:#hidePythonClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hidePythonClasses: aBoolean
self flagNamed:#hidePythonClasses put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hidePythonFunctions
^ self flagNamed:#hidePythonFunctions

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hidePythonFunctions: aBoolean
self flagNamed:#hidePythonFunctions put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hidePythonMethods
^ self flagNamed:#hidePythonMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hidePythonMethods: aBoolean
self flagNamed:#hidePythonMethods put:aBoolean.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  hideStatic

o  hideStatic: aBoolean

o  hideStructMembers

o  hideStructMembers: aBoolean

o  hideStructures

o  hideStructures: aBoolean

o  hideTextLabels

o  hideTextLabels: aBoolean

o  hideTypedefs

o  hideTypedefs: aBoolean

o  hideVariables

o  hideVariables: aBoolean

o  javaClassesAndMethodsOnly
^ showOnly == #javaClassesAndMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  javaClassesAndMethodsOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  javaClassesOnly
^ showOnly == #javaClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  javaClassesOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  javaMethodsOnly
^ showOnly == #javaMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  javaMethodsOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  macrosOnly

o  macrosOnly: aBoolean

o  methodsOnly

o  methodsOnly: aBoolean

o  ozClassesOnly
^ showOnly == #ozClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  ozClassesOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  ozFunctionsOnly
^ showOnly == #ozFunctions

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  ozFunctionsOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  ozMethodsOnly
^ showOnly == #ozMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  ozMethodsOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  pythonClassesOnly
^ showOnly == #pythonClasses

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  pythonClassesOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  pythonFunctionsOnly
^ showOnly == #pythonFunctions

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  pythonFunctionsOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  pythonMethodsOnly
^ showOnly == #pythonMethods

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  pythonMethodsOnly: aBoolean
showOnly := nil.

** This is an obsolete interface - do not use it (it may vanish in future versions) **

o  showOnly
showing everything

o  showOnly: aSymbol

o  structsOnly

o  structsOnly: aBoolean
DefaultShowOnly :=

o  targetsOnly

o  targetsOnly: aBoolean

o  typesOnly

o  typesOnly: aBoolean
DefaultShowOnly :=

o  variablesOnly

o  variablesOnly: aBoolean

accessing-presentation
o  groupBy

o  groupBy: aSymbolOrNil

o  groupedByType

o  groupedByType: aBoolean

o  sortCriteria

o  sortCriteria: aSymbolOrNil

o  sorted
backward compatibility

o  sorted: aBoolean
backward compatibility

o  sortedByLineNumber

o  sortedByLineNumber: aBoolean

o  sortedByName

o  sortedByName: aBoolean

o  sortedByNameIgnoringCase

o  sortedByNameIgnoringCase: aBoolean

o  sortedByNameIgnoringLeadingUnderscores

o  sortedByNameIgnoringLeadingUnderscores: aBoolean

o  sortedByNameIgnoringLeadingUnderscoresAndCase

o  sortedByNameIgnoringLeadingUnderscoresAndCase: aBoolean

o  sortedByType

o  sortedByType: aBoolean

o  tagTypesPresent

initialization
o  initContents: n
Invoked when a new instance is created.

o  initialize
Invoked when a new instance is created.

private
o  applyFilterToList: aList

o  getCtagsVersion
obsolete (no longer needed)
parse major and minor version from ctags by operating system command
check for the 'Exuberant Ctags' string being present
return an Array with major and minor part of version or nil if not available

o  setFilteredList: aList

o  setRawList: aList

o  shellCommandFor: aFilenameString
returns the shellCommand to be used

o  shellCommandTemplateFor: aFilenameString
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

o  sortBlock
sort AND group

o  sortBlockForSortCriteria
sortCriteria == #byType ifTrue:[

o  updateContentsFromFilteredList
call this, if only the sort order has changed (no need to call ctags or filter again)

o  updateContentsFromRawList
call this, if only the filter has changed (no need to call ctags again)

queries
o  bestTagForLine: lineNr
find the best tag for a given lineNr in the file

o  bestTagForLine: lineNr filtering: tagFilterOrNil
find the best tag for a given lineNr in the file.
The filter can be used eg. to find only function tags
(i.e. to ignore case and goto labels in C)

o  tagForFunction: functionName

o  tagForMacro: macroName

o  tagForType: typeName

o  tagsValidForFile
the file, for which the tagsList is valid

tag generation
o  fromFile: aFile in: aTempDirectory
create tags from a file;
either use the ctags/etags command, or an internal naive, simple method.

o  fromFile: aFile in: aTempDirectory onTarget: aTarget
create tags from a file;
either use the ctags/etags command, or an intenral naive, simple method.

o  getModeFromFileSuffixOf: aFile

o  getTagListFromFile: aFile usingCommand: scmd mode: modeOrNil in: aTempDirectory
create ctags-list from a file, using cmd (which is etags / ctags)

o  tagFromLine: aLine mode: languageMode using: infoDictionary
analyze the line as returned from ctags and create a corresponding tag object for it

tag generation - helpers
o  linewiseNaiveTagsInFile: aFilePath using: parseLineBlock
common helper for naive linewise parsing tags

o  plainTextBetweenHTMLElement: startElement andElementWithTag: endTag
applied to an <h1>-tag element, passing '/h1' as endTag,
this retrieves the plain text of the headline. Used by the tag list.

o  tagsForLinesStartingWithIdentifierAndColon: aFilePath
helper for yacc tags (and maybe others in the future):
naive, q&d scan for lines matching:
<anything>:

tag generation - simple
o  assemblerTagsInFile: aFilePath
assembler tags:
naive, q&d scan for lines matching:
<anything>:
CAVEAT:
the code below handles linux-i386 assembler only (for now)

o  batchTagsInFile: aFilePath
batch-file
naive, q&d scan for lines matching:
:<anything>

o  dartTagsInFile: aFilePath
dart tags:
naive, q&d scan for lines matching:
interface foo
class foo
function foo

o  getAdditionalCTagsInFile: aFilePath withList: ctagsList
additional tags, which are not found by the standard ctags utility:
case foo: - case label tags
switch: - case label tags
label: - label tags (if there is a corresponding goto)

The already generated ctagsList is passed as argument,
so duplicates etc. can be detected

o  getAdditionalTagsInFile: aFile withList: ctagsList
a chance to generate a list of additional tags,
which are not found by the standard ctags utility.
For example, for C, labels and switches are detected and added.
The already generated ctagsList is passed as argument,
so duplicates etc. can be detected

o  getSimpleTagListFromFile: aFileOrString in: aTempDirectory
fallback, if no ctags is present, or if the file is not a c-file.
Implemented here for some other file types (Makefiles)

o  htmlTagsInFile: aFilePath
hatml tags:
naive, q&d scan for lines containing:
<textarea>
<input>
<table>
<script>
<hX>

o  javaScriptTagsInFile: aFilePath
javaScript tags:
naive, q&d scan for lines matching:
(function foo

o  lispTagFromLine: line lineNr: lineNr
lisp/scheme tags:
naive, q&d scan for lines starting with:
(define ...
(defun ...
(defvar ...
(defmacro ...
(defclass ...
(defmethod ...
(defpackage ...
(eval-when ...
(define- ...
(def* ...
(set ...
(constant ...
(defconstant ...
(define-constant ...
;;; more documentation

This is NOT syntax aware, so affected by formatting, line breaks etc.
Just enough to allow most scheme and lisp programs to be tagged and
viewed in the file browser. For real lisp work, much more is needed.

o  lispTagsInFile: aFilePath
lisp tags:
naive, q&d scan for lines starting with (not syntax-aware):
(define ...
(defun ...
(defvar ...
(defmacro ...
(defclass ...
(defmethod ...
(defpackage ...
(eval-when ...
(define- ...
(def* ...
(set ...
(constant ...
(defconstant ...
;;; moretext documentation

o  luaTagFromLine: line lineNr: lineNr
lua tags:
naive, q&d scan for lines starting with (not syntax-aware):
local function ...

o  luaTagsInFile: aFilePath
lua tags:
naive, q&d scan for lines starting with (not syntax-aware):
local function ...

o  objcTagFromLine: line lineNr: lineNr
objc tags:
naive, q&d scan for lines starting with some common patterns

o  objcTagsInFile: aFilePath
objc tags:
naive, q&d scan for lines starting with some wellknown patterns

o  ozTagFromLine: line lineNr: lineNr
oz tags:
naive, q&d scan for lines starting with:
fun { name ...

o  ozTagsInFile: aFilePath
oz tags:
naive, q&d scan for lines starting with:
fun { name ...

o  phpTagFromLine: line lineNr: lineNr
php tags:
naive, q&d scan for lines starting with:
var ...
class ...
function ...

o  phpTagsInFile: aFilePath
php tags:
naive, q&d scan for lines starting with:
var ...
class ...
function ...

o  prologTagFromLine: line lineNr: lineNr
prolog tags:
naive, q&d scan for lines matching:
<anything> :-

o  prologTagsInFile: aFilePath
prolog tags:
naive, q&d scan for lines matching:
<anything> :-

o  pythonTagsInFile: aFilePath
python tags:
naive, q&d scan for lines matching
class <anything> :
or
def <anything> :

o  rubyTagFromLine: line lineNr: lineNr
ruby tags:
naive, q&d scan for lines matching:
def any

o  rubyTagsInFile: aFilePath
ruby tags:
naive, q&d scan for lines matching:
def any

o  stTagsInFile: aFilePath in: aTempDirectory
smalltalk tags:
not so naive: generate a changeList from the contents and convert it into a tag-list

o  stxResourceTagsInFile: aFilePath
resource tags:
scan for translated entries to show them alphabetically

o  tclTagFromLine: line lineNr: lineNr
tcl tags:
naive, q&d scan for lines matching:
proc any

o  tclTagsInFile: aFilePath
tcl tags:
naive, q&d scan for lines matching:
proc any

o  xsdTagFromLine: line lineNr: lineNr
xsd schema tags:
naive, q&d scan for lines matching:
<xsd:complexType...
<xsd:simpleType ...
Should be replaced by a more sophisticated reader, which parses the xml first.

o  xsdTagsInFile: aFilePath
xsd tags:
naive, q&d scan for lines matching:
<xsd:complexType...
<xsd:simpleType ...
Should be replaced by a more sophisticated reader, which parses the xml first.

o  yaccTagsInFile: aFilePath
yacc tags:
naive, q&d scan for lines matching:
<anything>:

testing
o  supportsFile: aFile
return true, if we can generate tags for a file



ST/X 7.2.0.0; WebServer 1.670 at bd0aa1f87cdd.unknown:8081; Tue, 13 Apr 2021 03:58:21 GMT