html tag menu
authorClaus Gittinger <cg@exept.de>
Fri, 04 Jul 2014 12:24:49 +0200
changeset 14578 758b72c5c89b
parent 14577 1eb708c12e05
child 14579 3c1230b28239
html tag menu
Tools__TagsBrowser.st
--- a/Tools__TagsBrowser.st	Fri Jul 04 12:22:42 2014 +0200
+++ b/Tools__TagsBrowser.st	Fri Jul 04 12:24:49 2014 +0200
@@ -495,6 +495,47 @@
     "Modified: / 21-08-2012 / 20:49:32 / cg"
 !
 
+htmlMenuSlice
+    "This resource specification was automatically generated
+     by the MenuEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the MenuEditor may not be able to read the specification."
+
+    "
+     MenuEditor new openOnClass:Tools::TagsBrowser andSelector:#lispMenuSlice
+     (Menu new fromLiteralArrayEncoding:(Tools::TagsBrowser lispMenuSlice)) startUp
+    "
+
+    <resource: #menu>
+
+    ^
+     #(Menu
+        (
+         (MenuItem
+            label: '-'
+            isVisible: editedFileHasHtmlSuffix
+          )
+         (MenuItem
+            enabled: tagTypesPresentHolder
+            label: 'Anchors Only'
+            translateLabel: true
+            isVisible: editedFileHasHtmlSuffix
+            indication: anchorsOnly:
+          )
+         (MenuItem
+            enabled: tagTypesPresentHolder
+            label: 'Headlines Only'
+            translateLabel: true
+            isVisible: editedFileHasHtmlSuffix
+            indication: headlinesOnly:
+          )
+         )
+        nil
+        nil
+      )
+!
+
 javaMenuSlice
     "This resource specification was automatically generated
      by the MenuEditor of ST/X."
@@ -861,124 +902,130 @@
 
     ^
      #(Menu
-	(
-	 (MenuItem
-	    enabled: tagTypesPresentHolder
-	    label: 'Group by Type'
-	    translateLabel: true
-	    indication: groupedByType:
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Sort by Name'
-	    translateLabel: true
-	    indication: sortedByName:
-	  )
-	 (MenuItem
-	    label: 'Sort by Name Ignoring Case'
-	    translateLabel: true
-	    indication: sortedByNameIgnoringCase:
-	  )
-	 (MenuItem
-	    label: 'Sort by Name (Ignore Leading Underscores)'
-	    translateLabel: true
-	    indication: sortedByNameIgnoringLeadingUnderscores:
-	  )
-	 (MenuItem
-	    label: 'Sort by Name (Ignore Leading Underscores and Case)'
-	    translateLabel: true
-	    indication: sortedByNameIgnoringLeadingUnderscoresAndCase:
-	  )
-	 (MenuItem
-	    label: 'Sort by Line Number'
-	    translateLabel: true
-	    indication: sortedByLineNumber:
-	  )
-	 (MenuItem
-	    label: 'C Menu Slice'
-	    translateLabel: true
-	    submenuChannel: cMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Smalltalk Menu Slice'
-	    translateLabel: true
-	    submenuChannel: smalltalkMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Java Menu Slice'
-	    translateLabel: true
-	    submenuChannel: javaMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'JavaScript Menu Slice'
-	    translateLabel: true
-	    submenuChannel: javaScriptMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Dart Menu Slice'
-	    translateLabel: true
-	    submenuChannel: dartMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'TCL Menu Slice'
-	    translateLabel: true
-	    submenuChannel: tclMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Assembler Menu Slice'
-	    translateLabel: true
-	    submenuChannel: assemblerMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Lisp Menu Slice'
-	    translateLabel: true
-	    submenuChannel: lispMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Lua Menu Slice'
-	    translateLabel: true
-	    submenuChannel: luaMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Python Menu Slice'
-	    translateLabel: true
-	    submenuChannel: pythonMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'OZ Menu Slice'
-	    translateLabel: true
-	    submenuChannel: ozMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: 'Makefile Menu Slice'
-	    translateLabel: true
-	    submenuChannel: makefileMenuSlice
-	    isMenuSlice: true
-	  )
-	 (MenuItem
-	    label: '-'
-	  )
-	 (MenuItem
-	    label: 'Update'
-	    itemValue: updateTagList
-	    translateLabel: true
-	  )
-	 )
-	nil
-	nil
+        (
+         (MenuItem
+            enabled: tagTypesPresentHolder
+            label: 'Group by Type'
+            translateLabel: true
+            indication: groupedByType:
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Sort by Name'
+            translateLabel: true
+            indication: sortedByName:
+          )
+         (MenuItem
+            label: 'Sort by Name Ignoring Case'
+            translateLabel: true
+            indication: sortedByNameIgnoringCase:
+          )
+         (MenuItem
+            label: 'Sort by Name (Ignore Leading Underscores)'
+            translateLabel: true
+            indication: sortedByNameIgnoringLeadingUnderscores:
+          )
+         (MenuItem
+            label: 'Sort by Name (Ignore Leading Underscores and Case)'
+            translateLabel: true
+            indication: sortedByNameIgnoringLeadingUnderscoresAndCase:
+          )
+         (MenuItem
+            label: 'Sort by Line Number'
+            translateLabel: true
+            indication: sortedByLineNumber:
+          )
+         (MenuItem
+            label: 'C Menu Slice'
+            translateLabel: true
+            submenuChannel: cMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Smalltalk Menu Slice'
+            translateLabel: true
+            submenuChannel: smalltalkMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Java Menu Slice'
+            translateLabel: true
+            submenuChannel: javaMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'JavaScript Menu Slice'
+            translateLabel: true
+            submenuChannel: javaScriptMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Dart Menu Slice'
+            translateLabel: true
+            submenuChannel: dartMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'TCL Menu Slice'
+            translateLabel: true
+            submenuChannel: tclMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Assembler Menu Slice'
+            translateLabel: true
+            submenuChannel: assemblerMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Lisp Menu Slice'
+            translateLabel: true
+            submenuChannel: lispMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Lua Menu Slice'
+            translateLabel: true
+            submenuChannel: luaMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Python Menu Slice'
+            translateLabel: true
+            submenuChannel: pythonMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'OZ Menu Slice'
+            translateLabel: true
+            submenuChannel: ozMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'Makefile Menu Slice'
+            translateLabel: true
+            submenuChannel: makefileMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: 'HTML Menu Slice'
+            translateLabel: true
+            submenuChannel: htmlMenuSlice
+            isMenuSlice: true
+          )
+         (MenuItem
+            label: '-'
+          )
+         (MenuItem
+            label: 'Update'
+            itemValue: updateTagList
+            translateLabel: true
+          )
+         )
+        nil
+        nil
       )
 
     "Modified: / 21-08-2012 / 21:00:35 / cg"
@@ -1340,6 +1387,20 @@
 
 !TagsBrowser methodsFor:'accessing filters'!
 
+anchorsOnly
+    ^ tagList anchorsOnly
+!
+
+anchorsOnly:aBool
+"/    aBool ifTrue:[
+"/        tagList hideAnchors:false.
+"/    ].
+    tagList anchorsOnly:aBool.
+    self updateTagList
+
+    "Created: / 08-05-2011 / 10:51:03 / cg"
+!
+
 classesFunctionsAndVariablesOnly
     ^ tagList classesFunctionsAndVariablesOnly
 !
@@ -1464,6 +1525,18 @@
     "Modified: / 06-10-2011 / 14:03:45 / cg"
 !
 
+headlinesOnly
+    ^ tagList headlinesOnly
+!
+
+headlinesOnly:aBool
+"/    aBool ifTrue:[
+"/        tagList hideDocumentation:false.
+"/    ].
+    tagList headlinesOnly:aBool.
+    self updateTagList
+!
+
 hideClasses
     ^ tagList hideClasses
 !
@@ -2107,6 +2180,10 @@
 
 !
 
+editedFileHasHtmlSuffix
+    ^builder booleanValueAspectFor: #editedFileHasHtmlSuffix
+!
+
 editedFileHasJavaScriptSuffix
     ^builder booleanValueAspectFor: #editedFileHasJavaScriptSuffix
 
@@ -2315,6 +2392,7 @@
           (editedFileHasAssemblerSuffix ('text/asm' 'application/x-assembler-source'))
           (editedFileIsMakefile         'text/make')
           (editedFileHasRubySuffix      ('text/ruby' 'application/x-ruby-source'))
+          (editedFileHasHtmlSuffix      ('text/html' ))
     ) pairsDo:[:holderName :mimeTypeOrTypes |
         |holder|
 
@@ -2483,41 +2561,48 @@
     |file target oldSelection|
 
     tagListGenerator notNil ifTrue:[
-	tagList setRawList:(tagListGenerator value).
-	"/ tagView list:(tagListGenerator value).
-	tagsValid := true.
-	^ self.
+        tagList setRawList:(tagListGenerator value).
+        "/ tagView list:(tagListGenerator value).
+        tagsValid := true.
+        ^ self.
     ].
 
     tagsValid := false.
     (true "(self tagsVisibilityHolder value == true)"
-	and:[(file := self editedFile) notNil
-	and:[tagList supportsFile:file]]
+        and:[(file := self editedFile) notNil
+        and:[tagList supportsFile:file]]
     ) ifTrue:[
-	(target := self buildTarget) notNil ifTrue:[
-	    (target isRemote and:[self tagsRemoteHolder value]) ifFalse:[
-		target := nil
-	    ]
-	].
-	oldSelection := tagView selectionValue.
-	(tagView generateTagsFor:file onTarget:target
-		finally:[
-		    |oldLabel|
-
-		    oldSelection notNil ifTrue:[
-			oldLabel := oldSelection label.
-			tagView selectElementForWhich:[:el | el label = oldLabel] ifAbsent:["ok, if previous tag is filtered away" "self halt"].
-		    ].
-		    tagsValid := true.
-		]
-	) ifFalse:[
-	    "/ did not start a background tag job
-	    tagsValid := true.  "/ to avoid waiting forever
-	].
+        (target := self buildTarget) notNil ifTrue:[
+            (target isRemote and:[self tagsRemoteHolder value]) ifFalse:[
+                target := nil
+            ]
+        ].
+        oldSelection := tagView selectionValue.
+        (tagView generateTagsFor:file onTarget:target
+                finally:[
+                    |tagsForLabel oldLabel bestTag|
+
+                    oldSelection notNil ifTrue:[
+                        oldLabel := oldSelection label.
+                        tagsForLabel := tagView elementsForWhich:[:el | el label = oldLabel].
+                        "/ only reselect, if there is exactly one
+                        tagsForLabel size == 1 ifTrue:[
+                            tagView selectElement:tagsForLabel first
+                        ].
+"/                        tagView 
+"/                            selectElementForWhich:[:el | el label = oldLabel] 
+"/                            ifAbsent:["ok, if previous tag is filtered away" "self halt"].
+                    ].
+                    tagsValid := true.
+                ]
+        ) ifFalse:[
+            "/ did not start a background tag job
+            tagsValid := true.  "/ to avoid waiting forever
+        ].
     ] ifFalse:[
-	tagView stopGeneratingTags.
-	tagView clearList.
-	tagsValid := true.
+        tagView stopGeneratingTags.
+        tagView clearList.
+        tagsValid := true.
     ].
 
     "Modified: / 07-12-2011 / 11:13:18 / cg"
@@ -2843,14 +2928,14 @@
 !TagsBrowser class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__TagsBrowser.st,v 1.57 2014-07-02 12:54:07 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__TagsBrowser.st,v 1.58 2014-07-04 10:24:49 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libtool/Tools__TagsBrowser.st,v 1.57 2014-07-02 12:54:07 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libtool/Tools__TagsBrowser.st,v 1.58 2014-07-04 10:24:49 cg Exp $'
 !
 
 version_SVN
-    ^ '$Id: Tools__TagsBrowser.st,v 1.57 2014-07-02 12:54:07 cg Exp $'
+    ^ '$Id: Tools__TagsBrowser.st,v 1.58 2014-07-04 10:24:49 cg Exp $'
 ! !