Introduced a ProtocolSelectDialog...
...to select from protocol list. Introduced PluggablePO to create ad-hoc list items.
Dialog plugged unto system browser using swizzling.
--- a/Make.proto Sat Dec 13 09:02:13 2014 +0000
+++ b/Make.proto Fri Jan 09 16:22:48 2015 +0000
@@ -143,7 +143,7 @@
# build all packages containing referenced classes for this package
-# they are nor needed to compile the package
+# they are not needed to compile the package (but later, to load it)
references:
@@ -209,6 +209,7 @@
$(OUTDIR)SmallSense__MethodInfo.$(O) SmallSense__MethodInfo.$(H): SmallSense__MethodInfo.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__Info.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__MethodPO.$(O) SmallSense__MethodPO.$(H): SmallSense__MethodPO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__PackagePO.$(O) SmallSense__PackagePO.$(H): SmallSense__PackagePO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__PluggablePO.$(O) SmallSense__PluggablePO.$(H): SmallSense__PluggablePO.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__PO.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libwidg2/HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__SmalltalkCompletionEngine.$(O) SmallSense__SmalltalkCompletionEngine.$(H): SmallSense__SmalltalkCompletionEngine.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__SmalltalkEditSupport.$(O) SmallSense__SmalltalkEditSupport.$(H): SmallSense__SmalltalkEditSupport.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__EditSupport.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__SmalltalkInferencer.$(O) SmallSense__SmalltalkInferencer.$(H): SmallSense__SmalltalkInferencer.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -229,6 +230,7 @@
$(OUTDIR)SmallSense__JavaCompletionEngineSimple.$(O) SmallSense__JavaCompletionEngineSimple.$(H): SmallSense__JavaCompletionEngineSimple.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__MethodSearchDialog.$(O) SmallSense__MethodSearchDialog.$(H): SmallSense__MethodSearchDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
$(OUTDIR)SmallSense__PackageSelectDialog.$(O) SmallSense__PackageSelectDialog.$(H): SmallSense__PackageSelectDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ProtocolSelectDialog.$(O) SmallSense__ProtocolSelectDialog.$(H): SmallSense__ProtocolSelectDialog.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
$(OUTDIR)SmallSense__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)/stx/goodies/smallsense/SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBBasicLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBBlockLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBContainsSmalltalkXEOLCommentRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBLintRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/RBTransformationRule.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBBlockNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBMethodNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBProgramNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBStatementNode.$(H) $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/parser/RBValueNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/CompiledCode.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/ExecutableFunction.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Method.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libcomp/AssignmentNode.$(H) $(INCLUDE_TOP)/stx/libcomp/BlockNode.$(H) $(INCLUDE_TOP)/stx/libcomp/MessageNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseErrorNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libcomp/Parser.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimaryNode.$(H) $(INCLUDE_TOP)/stx/libcomp/PrimitiveNode.$(H) $(INCLUDE_TOP)/stx/libcomp/ReturnNode.$(H) $(INCLUDE_TOP)/stx/libcomp/Scanner.$(H) $(INCLUDE_TOP)/stx/libcomp/StatementNode.$(H) $(INCLUDE_TOP)/stx/libcomp/VariableNode.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentFrame.$(H) $(INCLUDE_TOP)/stx/libhtml/HTMLDocumentView.$(H) $(INCLUDE_TOP)/stx/libtool/SystemBrowser.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__LintService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NavigationState.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)/stx/libview/DisplaySurface.$(H) $(INCLUDE_TOP)/stx/libview/GraphicsMedium.$(H) $(INCLUDE_TOP)/stx/libview/ModalBox.$(H) $(INCLUDE_TOP)/stx/libview/SimpleView.$(H) $(INCLUDE_TOP)/stx/libview/StandardSystemView.$(H) $(INCLUDE_TOP)/stx/libview/TopView.$(H) $(INCLUDE_TOP)/stx/libview/View.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libwidg/DialogBox.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextView.$(H) $(INCLUDE_TOP)/stx/libwidg/EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)/stx/libwidg/ListView.$(H) $(INCLUDE_TOP)/stx/libwidg/TextView.$(H) $(STCHDR)
--- a/Make.spec Sat Dec 13 09:02:13 2014 +0000
+++ b/Make.spec Fri Jan 09 16:22:48 2015 +0000
@@ -102,6 +102,7 @@
SmallSense::MethodInfo \
SmallSense::MethodPO \
SmallSense::PackagePO \
+ SmallSense::PluggablePO \
SmallSense::SmalltalkCompletionEngine \
SmallSense::SmalltalkEditSupport \
SmallSense::SmalltalkInferencer \
@@ -122,6 +123,7 @@
SmallSense::JavaCompletionEngineSimple \
SmallSense::MethodSearchDialog \
SmallSense::PackageSelectDialog \
+ SmallSense::ProtocolSelectDialog \
SmallSense::GroovyCompletionEngineSimple \
@@ -179,6 +181,7 @@
$(OUTDIR_SLASH)SmallSense__MethodInfo.$(O) \
$(OUTDIR_SLASH)SmallSense__MethodPO.$(O) \
$(OUTDIR_SLASH)SmallSense__PackagePO.$(O) \
+ $(OUTDIR_SLASH)SmallSense__PluggablePO.$(O) \
$(OUTDIR_SLASH)SmallSense__SmalltalkCompletionEngine.$(O) \
$(OUTDIR_SLASH)SmallSense__SmalltalkEditSupport.$(O) \
$(OUTDIR_SLASH)SmallSense__SmalltalkInferencer.$(O) \
@@ -199,6 +202,7 @@
$(OUTDIR_SLASH)SmallSense__JavaCompletionEngineSimple.$(O) \
$(OUTDIR_SLASH)SmallSense__MethodSearchDialog.$(O) \
$(OUTDIR_SLASH)SmallSense__PackageSelectDialog.$(O) \
+ $(OUTDIR_SLASH)SmallSense__ProtocolSelectDialog.$(O) \
$(OUTDIR_SLASH)SmallSense__GroovyCompletionEngineSimple.$(O) \
$(OUTDIR_SLASH)extensions.$(O) \
--- a/SmallSense__AbstractListDialog.st Sat Dec 13 09:02:13 2014 +0000
+++ b/SmallSense__AbstractListDialog.st Fri Jan 09 16:22:48 2015 +0000
@@ -245,15 +245,15 @@
| matchingObjectsSelection |
matchingObjectsMultiselect ifTrue:[
- matchingObjectsSelection := selection collect:[ :each | matchingObjectsTree root recursiveDetect: [ :po | po subject = each ] ].
+ matchingObjectsSelection := selection collect:[ :each | matchingObjectsTree root recursiveDetect: [ :po | (po isKindOf: PO) and:[ po subject = each ] ] ].
matchingObjectsSelection := matchingObjectsSelection reject:[:each | each isNil ].
] ifFalse:[
- matchingObjectsSelection := matchingObjectsTree root recursiveDetect: [ :po | po subject = selection ]
+ matchingObjectsSelection := matchingObjectsTree root recursiveDetect: [ :po | (po isKindOf: PO) and:[ po subject = selection ] ]
].
self matchingObjectsSelection: matchingObjectsSelection.
"Created: / 10-05-2014 / 00:50:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 10-05-2014 / 11:42:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 09-01-2015 / 10:55:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
title
@@ -527,10 +527,10 @@
updateAcceptEnabled
self acceptEnabledHolder value:
(matchingObjectsSelectionHolder value notEmptyOrNil
- or:[ self canCreateMatchingObjectFromString:matchPatternView contents ])
+ or:[ self canCreateMatchingObjectFromString:self matchPatternHolder value ])
"Created: / 08-03-2013 / 14:06:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
- "Modified: / 23-06-2014 / 15:16:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 09-01-2015 / 11:06:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
updateAcceptedValue
@@ -700,6 +700,17 @@
"Modified: / 12-12-2014 / 23:38:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
+commonPreOpen
+ | selection |
+ selection := self matchingObjectsSelection.
+ selection notEmptyOrNil ifTrue:[
+ matchingObjectsView makeSelectionVisible
+ ].
+ super commonPreOpen
+
+ "Created: / 09-01-2015 / 11:09:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
postBuildMatchPatternView:aView
matchPatternView := aView scrolledView.
"/ matchPatternView delegate: self.
--- a/SmallSense__AbstractSelectDialog.st Sat Dec 13 09:02:13 2014 +0000
+++ b/SmallSense__AbstractSelectDialog.st Fri Jan 09 16:22:48 2015 +0000
@@ -60,6 +60,14 @@
^ self == SmallSense::AbstractSelectDialog.
! !
+!AbstractSelectDialog methodsFor:'accessing-defaults'!
+
+defaultTitle
+ ^ (resources string: 'Select...')
+
+ "Created: / 13-12-2014 / 12:57:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!AbstractSelectDialog methodsFor:'searching'!
matchingObjectPOsForPattern: pattern
--- a/SmallSense__PO.st Sat Dec 13 09:02:13 2014 +0000
+++ b/SmallSense__PO.st Fri Jan 09 16:22:48 2015 +0000
@@ -442,6 +442,10 @@
^ false
!
+isSmallSensePluggablePO
+ ^ false
+!
+
isSmallSenseSnippetPO
^ false
!
--- a/SmallSense__PackageSelectDialog.st Sat Dec 13 09:02:13 2014 +0000
+++ b/SmallSense__PackageSelectDialog.st Fri Jan 09 16:22:48 2015 +0000
@@ -61,6 +61,14 @@
"Created: / 23-06-2014 / 15:25:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!PackageSelectDialog methodsFor:'accessing-defaults'!
+
+defaultTitle
+ ^ (resources string: 'Select Package...')
+
+ "Created: / 13-12-2014 / 12:57:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!PackageSelectDialog methodsFor:'queries'!
canCreateMatchingObjectFromString:string
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__PluggablePO.st Fri Jan 09 16:22:48 2015 +0000
@@ -0,0 +1,121 @@
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+"
+"{ Package: 'stx:goodies/smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+PO subclass:#PluggablePO
+ instanceVariableNames:'icon hint subject'
+ classVariableNames:''
+ poolDictionaries:''
+ category:'SmallSense-Core-Interface-PO'
+!
+
+!PluggablePO class methodsFor:'documentation'!
+
+copyright
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+"
+! !
+
+!PluggablePO methodsFor:'accessing'!
+
+hint
+ "Return a hint text to be displayed in gray after a label
+ (if there's space). If nil is returned, no hint is shown"
+
+ ^ hint
+
+ "Created: / 13-12-2014 / 07:51:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+hint:something
+ hint := something.
+!
+
+icon
+ ^ icon
+!
+
+icon:something
+ icon := something.
+!
+
+label
+ "Return a text to be displayed. The label may be cached
+ `label` instvar."
+
+ ^ label
+
+ "Created: / 13-12-2014 / 07:49:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+label: aString
+ label := aString
+
+ "Created: / 13-12-2014 / 12:25:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+stringToCompleteForLanguage:aProgrammingLanguage
+ "Answers a string to complete"
+
+ ^ self shouldNotImplement
+
+ "Created: / 13-12-2014 / 07:50:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+subject:something
+ subject := something.
+! !
+
+!PluggablePO methodsFor:'accessing-private'!
+
+subject
+ "Return the real object for which the receiver
+ is a presentor.
+
+ For internal usage only."
+
+ ^ subject
+
+ "Created: / 13-12-2014 / 07:50:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!PluggablePO methodsFor:'testing'!
+
+isSmallSensePluggablePO
+ ^ true
+! !
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__ProtocolSelectDialog.st Fri Jan 09 16:22:48 2015 +0000
@@ -0,0 +1,115 @@
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+"
+"{ Package: 'stx:goodies/smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+AbstractSelectDialog subclass:#ProtocolSelectDialog
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'SmallSense-Core-Interface-Search'
+!
+
+!ProtocolSelectDialog class methodsFor:'documentation'!
+
+copyright
+"
+stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
+Copyright (C) 2013-2014 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+"
+! !
+
+!ProtocolSelectDialog methodsFor:'accessing - private'!
+
+matchingObjectForString: aString
+ "Creates a new object from given string. Called only when
+ #canCreateMatchingObjectFromString: returns true"
+
+ ^ aString asSymbol
+
+ "Created: / 23-06-2014 / 15:25:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ProtocolSelectDialog methodsFor:'accessing-defaults'!
+
+defaultTitle
+ ^ (resources string: 'Select Protocol...')
+
+ "Created: / 13-12-2014 / 12:57:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ProtocolSelectDialog methodsFor:'queries'!
+
+canCreateMatchingObjectFromString:string
+ "Return true, a new object can be created with given string value"
+
+ ^ string notEmptyOrNil and:[ string allSatisfy:[:c | c isLetterOrDigit or:[ '_:/ ' includes:c ] ] ]
+
+ "Created: / 23-06-2014 / 15:15:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 09-01-2015 / 13:11:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+canSelect:selection
+ ^ selection isKindOf: PO
+
+ "Created: / 05-05-2014 / 23:50:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-12-2014 / 12:08:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!ProtocolSelectDialog methodsFor:'searching'!
+
+matchingObjectPOsForPattern:pattern relax: level
+ | environment protocols |
+
+ environment := self environment.
+ protocols := Set new.
+
+ environment allMethodsDo:[ :mth |
+ | protocol |
+
+ protocol := mth category.
+ (protocol notNil
+ and: [ (filter isNil or:[filter value: protocol])
+ and: [ pattern isNil or:[pattern match: protocol relax: level] ] ]) ifTrue:[
+ protocols add: mth category
+ ]
+ ].
+ protocols := protocols asArray.
+ protocols sort: [ :a :b | a < b ].
+ ^ protocols collect:[ :e | PluggablePO new label: e; subject: e ].
+
+ "Created: / 13-12-2014 / 08:42:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 13-12-2014 / 12:55:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/abbrev.stc Sat Dec 13 09:02:13 2014 +0000
+++ b/abbrev.stc Fri Jan 09 16:22:48 2015 +0000
@@ -52,6 +52,7 @@
SmallSense::MethodInfo SmallSense__MethodInfo stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Info' 0
SmallSense::MethodPO SmallSense__MethodPO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
SmallSense::PackagePO SmallSense__PackagePO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
+SmallSense::PluggablePO SmallSense__PluggablePO stx:goodies/smallsense 'SmallSense-Core-Interface-PO' 0
SmallSense::SmalltalkCompletionEngine SmallSense__SmalltalkCompletionEngine stx:goodies/smallsense 'SmallSense-Smalltalk' 0
SmallSense::SmalltalkEditSupport SmallSense__SmalltalkEditSupport stx:goodies/smallsense 'SmallSense-Smalltalk' 0
SmallSense::SmalltalkInferencer SmallSense__SmalltalkInferencer stx:goodies/smallsense 'SmallSense-Smalltalk-Types-Inference' 0
@@ -72,11 +73,13 @@
SmallSense::JavaCompletionEngineSimple SmallSense__JavaCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Java' 2
SmallSense::MethodSearchDialog SmallSense__MethodSearchDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 3
SmallSense::PackageSelectDialog SmallSense__PackageSelectDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
+SmallSense::ProtocolSelectDialog SmallSense__ProtocolSelectDialog stx:goodies/smallsense 'SmallSense-Core-Interface-Search' 1
SmallSense::GroovyCompletionEngineSimple SmallSense__GroovyCompletionEngineSimple stx:goodies/smallsense 'SmallSense-Groovy' 2
-SmallSense::AbstractJavaCompletionEngineTests SmallSense__AbstractJavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
SmallSense::AbstractTestCase SmallSense__AbstractTestCase stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::TestCase SmallSense__TestCase stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
+SmallSense::CompletionEngineTests SmallSense__CompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
+SmallSense::AbstractJavaCompletionEngineTests SmallSense__AbstractJavaCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
SmallSense::BaseTestClass SmallSense__BaseTestClass stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::CompletionEngineTests SmallSense__CompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
SmallSense::EditSupportTests SmallSense__EditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
SmallSense::FinderTests SmallSense__FinderTests stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
SmallSense::GroovyCompletionEngineSimpleTests SmallSense__GroovyCompletionEngineSimpleTests stx:goodies/smallsense 'SmallSense-Tests' 1
@@ -87,5 +90,4 @@
SmallSense::SmalltalkCompletionEngineTests SmallSense__SmalltalkCompletionEngineTests stx:goodies/smallsense 'SmallSense-Tests' 1
SmallSense::SmalltalkEditSupportTests SmallSense__SmalltalkEditSupportTests stx:goodies/smallsense 'SmallSense-Tests' 1
SmallSense::SmalltalkParserTests SmallSense__SmalltalkParserTests stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
-SmallSense::TestCase SmallSense__TestCase stx:goodies/smallsense 'SmallSense-Tests-Obsolete' 1
SmallSense::TokenPatternMatcherTests SmallSense__TokenPatternMatcherTests stx:goodies/smallsense 'SmallSense-Tests' 1
--- a/bc.mak Sat Dec 13 09:02:13 2014 +0000
+++ b/bc.mak Fri Jan 09 16:22:48 2015 +0000
@@ -134,6 +134,7 @@
$(OUTDIR)SmallSense__MethodInfo.$(O) SmallSense__MethodInfo.$(H): SmallSense__MethodInfo.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__Info.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__MethodPO.$(O) SmallSense__MethodPO.$(H): SmallSense__MethodPO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__PackagePO.$(O) SmallSense__PackagePO.$(H): SmallSense__PackagePO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__PluggablePO.$(O) SmallSense__PluggablePO.$(H): SmallSense__PluggablePO.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__PO.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libwidg2\HierarchicalItem.$(H) $(STCHDR)
$(OUTDIR)SmallSense__SmalltalkCompletionEngine.$(O) SmallSense__SmalltalkCompletionEngine.$(H): SmallSense__SmalltalkCompletionEngine.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__SmalltalkEditSupport.$(O) SmallSense__SmalltalkEditSupport.$(H): SmallSense__SmalltalkEditSupport.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__EditSupport.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__SmalltalkInferencer.$(O) SmallSense__SmalltalkInferencer.$(H): SmallSense__SmalltalkInferencer.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__SmalltalkParseNodeVisitor.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -154,6 +155,7 @@
$(OUTDIR)SmallSense__JavaCompletionEngineSimple.$(O) SmallSense__JavaCompletionEngineSimple.$(H): SmallSense__JavaCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)SmallSense__MethodSearchDialog.$(O) SmallSense__MethodSearchDialog.$(H): SmallSense__MethodSearchDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSearchDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
$(OUTDIR)SmallSense__PackageSelectDialog.$(O) SmallSense__PackageSelectDialog.$(H): SmallSense__PackageSelectDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__ProtocolSelectDialog.$(O) SmallSense__ProtocolSelectDialog.$(H): SmallSense__ProtocolSelectDialog.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractDIalog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractListDialog.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractSelectDialog.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
$(OUTDIR)SmallSense__GroovyCompletionEngineSimple.$(O) SmallSense__GroovyCompletionEngineSimple.$(H): SmallSense__GroovyCompletionEngineSimple.st $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__AbstractJavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__CompletionEngine.$(H) $(INCLUDE_TOP)\stx\goodies\smallsense\SmallSense__JavaCompletionEngineSimple.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBasicLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBBlockLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBContainsSmalltalkXEOLCommentRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBLintRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\RBTransformationRule.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBBlockNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBMethodNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBProgramNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBStatementNode.$(H) $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\parser\RBValueNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\CompiledCode.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\ExecutableFunction.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Method.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libcomp\AssignmentNode.$(H) $(INCLUDE_TOP)\stx\libcomp\BlockNode.$(H) $(INCLUDE_TOP)\stx\libcomp\MessageNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseErrorNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libcomp\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimaryNode.$(H) $(INCLUDE_TOP)\stx\libcomp\PrimitiveNode.$(H) $(INCLUDE_TOP)\stx\libcomp\ReturnNode.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(H) $(INCLUDE_TOP)\stx\libcomp\StatementNode.$(H) $(INCLUDE_TOP)\stx\libcomp\VariableNode.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentFrame.$(H) $(INCLUDE_TOP)\stx\libhtml\HTMLDocumentView.$(H) $(INCLUDE_TOP)\stx\libtool\SystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeCompletionService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeHighlightingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeNavigationService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__LintService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NavigationState.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libview\DisplaySurface.$(H) $(INCLUDE_TOP)\stx\libview\GraphicsMedium.$(H) $(INCLUDE_TOP)\stx\libview\ModalBox.$(H) $(INCLUDE_TOP)\stx\libview\SimpleView.$(H) $(INCLUDE_TOP)\stx\libview\StandardSystemView.$(H) $(INCLUDE_TOP)\stx\libview\TopView.$(H) $(INCLUDE_TOP)\stx\libview\View.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libwidg\DialogBox.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextView.$(H) $(INCLUDE_TOP)\stx\libwidg\EditTextViewCompletionSupport.$(H) $(INCLUDE_TOP)\stx\libwidg\ListView.$(H) $(INCLUDE_TOP)\stx\libwidg\TextView.$(H) $(STCHDR)
--- a/bmake.bat Sat Dec 13 09:02:13 2014 +0000
+++ b/bmake.bat Fri Jan 09 16:22:48 2015 +0000
@@ -9,8 +9,4 @@
@IF "%HGROOT%" NEQ "" SET DEFINES=%DEFINES% "-DHGROOT=%HGROOT%"
make.exe -N -f bc.mak %DEFINES% %*
-@IF "%1" EQU "exe" GOTO finish
-
-
-:finish
--- a/extensions.st Sat Dec 13 09:02:13 2014 +0000
+++ b/extensions.st Fri Jan 09 16:22:48 2015 +0000
@@ -684,6 +684,33 @@
"Modified: / 07-08-2014 / 13:10:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
+!Tools::NewSystemBrowser methodsFor:'private-dialogs-SmallSense'!
+
+stx_goodies_smallsense_askForMethodCategory:question title:boxTitle okLabel:okLabel list:someCategories recentList:recentListOrNil initialAnswer:initialText
+ "convenient helper method: setup a box asking for a method category"
+
+ <swizzle: #askForMethodCategory:title:okLabel:list:recentList:initialAnswer:>
+
+ | dialog |
+
+ UserPreferences current smallSenseNewDialogsEnabled ifFalse:[
+ ^ self stx_libtool_askForMethodCategory:question title:boxTitle okLabel:okLabel list:someCategories recentList:recentListOrNil initialAnswer:initialText
+ ].
+ dialog := SmallSense::ProtocolSelectDialog new.
+ dialog title: question.
+ dialog updateMatching.
+ initialText notNil ifTrue:[
+ dialog pattern: initialText.
+ dialog selection: initialText.
+ ].
+ ^ dialog open
+ "
+ stx_goodies_smallsense swizzle: (Tools::NewSystemBrowser >> #stx_goodies_smallsense_askForMethodCategory:title:okLabel:list:recentList:initialAnswer:)
+ "
+
+ "Created: / 09-01-2015 / 10:44:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
!Tools::NewSystemBrowser class methodsFor:'utilities'!
stx_goodies_smallsense_askForClassToSearch:doWhatByDefault single:singleClass msgTail:msgTail resources:resourcesOrNil filter:filterOrNil forBrowser:aBrowserOrNil thenDo:aBlock
--- a/libInit.cc Sat Dec 13 09:02:13 2014 +0000
+++ b/libInit.cc Fri Jan 09 16:22:48 2015 +0000
@@ -78,6 +78,7 @@
_SmallSense__MethodInfo_Init(pass,__pRT__,snd);
_SmallSense__MethodPO_Init(pass,__pRT__,snd);
_SmallSense__PackagePO_Init(pass,__pRT__,snd);
+_SmallSense__PluggablePO_Init(pass,__pRT__,snd);
_SmallSense__SmalltalkCompletionEngine_Init(pass,__pRT__,snd);
_SmallSense__SmalltalkEditSupport_Init(pass,__pRT__,snd);
_SmallSense__SmalltalkInferencer_Init(pass,__pRT__,snd);
@@ -98,6 +99,7 @@
_SmallSense__JavaCompletionEngineSimple_Init(pass,__pRT__,snd);
_SmallSense__MethodSearchDialog_Init(pass,__pRT__,snd);
_SmallSense__PackageSelectDialog_Init(pass,__pRT__,snd);
+_SmallSense__ProtocolSelectDialog_Init(pass,__pRT__,snd);
_SmallSense__GroovyCompletionEngineSimple_Init(pass,__pRT__,snd);
_stx_137goodies_137smallsense_extensions_Init(pass,__pRT__,snd);
--- a/smallsense.rc Sat Dec 13 09:02:13 2014 +0000
+++ b/smallsense.rc Fri Jan 09 16:22:48 2015 +0000
@@ -25,7 +25,7 @@
VALUE "LegalCopyright", "Copyright Jan Vrany 2013-2014\0"
VALUE "ProductName", "SmallSense\0"
VALUE "ProductVersion", "6.2.5.0\0"
- VALUE "ProductDate", "Sat, 13 Dec 2014 08:56:31 GMT\0"
+ VALUE "ProductDate", "Fri, 09 Jan 2015 16:22:06 GMT\0"
END
END
--- a/stx_goodies_smallsense.st Sat Dec 13 09:02:13 2014 +0000
+++ b/stx_goodies_smallsense.st Fri Jan 09 16:22:48 2015 +0000
@@ -18,6 +18,8 @@
"
"{ Package: 'stx:goodies/smallsense' }"
+"{ NameSpace: Smalltalk }"
+
LibraryDefinition subclass:#stx_goodies_smallsense
instanceVariableNames:''
classVariableNames:'Swizzled'
@@ -185,6 +187,7 @@
#'SmallSense::MethodInfo'
#'SmallSense::MethodPO'
#'SmallSense::PackagePO'
+ #'SmallSense::PluggablePO'
#'SmallSense::SmalltalkCompletionEngine'
#'SmallSense::SmalltalkEditSupport'
#'SmallSense::SmalltalkInferencer'
@@ -205,11 +208,13 @@
#'SmallSense::JavaCompletionEngineSimple'
#'SmallSense::MethodSearchDialog'
#'SmallSense::PackageSelectDialog'
+ #'SmallSense::ProtocolSelectDialog'
#'SmallSense::GroovyCompletionEngineSimple'
- (#'SmallSense::AbstractJavaCompletionEngineTests' autoload)
(#'SmallSense::AbstractTestCase' autoload)
+ (#'SmallSense::TestCase' autoload)
+ (#'SmallSense::CompletionEngineTests' autoload)
+ (#'SmallSense::AbstractJavaCompletionEngineTests' autoload)
(#'SmallSense::BaseTestClass' autoload)
- (#'SmallSense::CompletionEngineTests' autoload)
(#'SmallSense::EditSupportTests' autoload)
(#'SmallSense::FinderTests' autoload)
(#'SmallSense::GroovyCompletionEngineSimpleTests' autoload)
@@ -220,9 +225,10 @@
(#'SmallSense::SmalltalkCompletionEngineTests' autoload)
(#'SmallSense::SmalltalkEditSupportTests' autoload)
(#'SmallSense::SmalltalkParserTests' autoload)
- (#'SmallSense::TestCase' autoload)
(#'SmallSense::TokenPatternMatcherTests' autoload)
)
+
+ "Modified: / 09-01-2015 / 16:21:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
extensionMethodNames
@@ -293,6 +299,7 @@
'Tools::CodeCompletionService class' new
#'Tools::LintService' buttonPress:x:y:in:
#'Tools::LintService' showInfoWindowForLine:
+ #'Tools::NewSystemBrowser' #'stx_goodies_smallsense_askForMethodCategory:title:okLabel:list:recentList:initialAnswer:'
)
! !