SmallSense__PluggableSearchProcessor.st
author convert-repo
Wed, 11 Dec 2019 04:28:36 +0000
changeset 1116 b51ace366efc
parent 377 c686ea588575
permissions -rw-r--r--
update tags
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
377
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     1
"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     2
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     3
Copyright (C) 2013-2014 Jan Vrany
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     4
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     5
This library is free software; you can redistribute it and/or
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
License as published by the Free Software Foundation; either
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
version 2.1 of the License.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
This library is distributed in the hope that it will be useful,
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
Lesser General Public License for more details.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
License along with this library; if not, write to the Free Software
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
"{ Package: 'stx:goodies/smallsense' }"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    20
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    21
"{ NameSpace: SmallSense }"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    22
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    23
AbstractSearchProcessor subclass:#PluggableSearchProcessor
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    24
	instanceVariableNames:'label search presentation'
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
	classVariableNames:''
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    26
	poolDictionaries:''
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	category:'SmallSense-Core-Interface-Search'
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
!PluggableSearchProcessor class methodsFor:'documentation'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
copyright
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
stx:goodies/smallsense - A productivity plugin for Smalltalk/X IDE
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    35
Copyright (C) 2013-2014 Jan Vrany
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    36
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
This library is free software; you can redistribute it and/or
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
modify it under the terms of the GNU Lesser General Public
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
License as published by the Free Software Foundation; either
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
version 2.1 of the License.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    41
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    42
This library is distributed in the hope that it will be useful,
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    43
but WITHOUT ANY WARRANTY; without even the implied warranty of
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    44
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    45
Lesser General Public License for more details.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    46
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    47
You should have received a copy of the GNU Lesser General Public
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    48
License along with this library; if not, write to the Free Software
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    49
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    50
"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    51
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    52
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    53
!PluggableSearchProcessor class methodsFor:'instance creation'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    54
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    55
search: searchBlock presentation: presentBlock
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    56
    ^ self new initializeWithSearch: searchBlock presentation: presentBlock
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    57
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    58
    "Created: / 24-01-2015 / 00:14:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    59
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    60
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    61
!PluggableSearchProcessor methodsFor:'accessing'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    62
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    63
label:something
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    64
    label := something.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    65
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    66
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    67
!PluggableSearchProcessor methodsFor:'accessing - presentation'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    68
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    69
label
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    70
    "Return a label for this processor. This one is used as section label
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    71
     in Spotter"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    72
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    73
    ^ label
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    74
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    75
    "Created: / 24-01-2015 / 00:09:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    76
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    77
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    78
!PluggableSearchProcessor methodsFor:'initialization'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    79
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    80
initializeWithSearch: searchBlock presentation: presentBlock
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    81
    search := searchBlock.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    82
    presentation := presentBlock
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    83
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    84
    "Created: / 24-01-2015 / 00:15:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    85
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    86
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    87
!PluggableSearchProcessor methodsFor:'searching'!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    88
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    89
matchingObjectPOsFor:objects
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    90
    "superclass SmallSense::AbstractSearchProcessor says that I am responsible to implement this method"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    91
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    92
    | pos |
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    93
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    94
    pos := objects collect: presentation.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    95
    pos isSequenceable ifFalse:[ 
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    96
        pos := pos asArray.
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    97
    ].
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    98
    ^ pos sort:[ :a :b | a label == b label ]
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    99
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   100
    "Created: / 24-01-2015 / 00:17:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   101
!
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   102
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   103
matchingObjectsForPattern:pattern filter:filter inEnvironment:environment relax:level
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   104
    "superclass SmallSense::AbstractSearchProcessor says that I am responsible to implement this method"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   105
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   106
    ^ search value: pattern value: filter value: environment value: level
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   107
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   108
    "Created: / 24-01-2015 / 00:16:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   109
! !
c686ea588575 Initial support for search steps in navigator. Navugator shortcut changed.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
   110