Tools__LintService.st
author vrany
Fri, 05 Aug 2011 13:11:54 +0200
changeset 10484 efc1f0809373
child 11227 3d57003855a7
permissions -rw-r--r--
initial checkin
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10484
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     1
"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     2
 COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     3
              All Rights Reserved
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     4
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     5
Permission is hereby granted, free of charge, to any person
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     6
obtaining a copy of this software and associated documentation
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     7
files (the 'Software'), to deal in the Software without
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     8
restriction, including without limitation the rights to use,
efc1f0809373 initial checkin
vrany
parents:
diff changeset
     9
copy, modify, merge, publish, distribute, sublicense, and/or sell
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    10
copies of the Software, and to permit persons to whom the
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    11
Software is furnished to do so, subject to the following
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    12
conditions:
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    13
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    14
The above copyright notice and this permission notice shall be
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    15
included in all copies or substantial portions of the Software.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    16
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    17
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    18
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    19
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    20
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    21
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    22
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    23
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    24
OTHER DEALINGS IN THE SOFTWARE.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    25
"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    26
"{ Package: 'stx:libtool' }"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    27
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    28
"{ NameSpace: Tools }"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    29
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    30
CodeViewService subclass:#LintService
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    31
	instanceVariableNames:'ruleHolderFromApp highlighter'
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    32
	classVariableNames:''
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    33
	poolDictionaries:''
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    34
	category:'Interface-Lint'
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    35
!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    36
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    37
!LintService class methodsFor:'documentation'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    38
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    39
copyright
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    40
"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    41
 COPYRIGHT (c) 2010 by Jan Vrany, SWING Research Group. CTU in Prague
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    42
              All Rights Reserved
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    43
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    44
Permission is hereby granted, free of charge, to any person
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    45
obtaining a copy of this software and associated documentation
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    46
files (the 'Software'), to deal in the Software without
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    47
restriction, including without limitation the rights to use,
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    48
copy, modify, merge, publish, distribute, sublicense, and/or sell
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    49
copies of the Software, and to permit persons to whom the
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    50
Software is furnished to do so, subject to the following
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    51
conditions:
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    52
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    53
The above copyright notice and this permission notice shall be
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    54
included in all copies or substantial portions of the Software.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    55
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    56
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    57
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    58
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    59
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    60
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    61
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    62
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    63
OTHER DEALINGS IN THE SOFTWARE.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    64
"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    65
! !
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    66
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    67
!LintService class methodsFor:'accessing'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    68
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    69
label
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    70
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    71
    "Answers short label - for UI"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    72
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    73
    ^'SmallLint Checker'
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    74
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    75
    "Created: / 05-08-2011 / 11:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    76
! !
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    77
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    78
!LintService methodsFor:'accessing'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    79
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    80
syntaxHighlighter
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    81
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    82
    | app rules |
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    83
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    84
    ((app :=codeView application) respondsTo: #selectedLintRules) ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    85
        rules := self ruleHolderFromApp value.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    86
        rules isEmptyOrNil not ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    87
            highlighter rules: rules.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    88
            ^highlighter
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    89
        ]
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    90
    ].
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    91
    ^nil
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    92
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    93
    "Created: / 05-08-2011 / 10:59:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    94
! !
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    95
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    96
!LintService methodsFor:'aspects'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    97
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    98
ruleHolderFromApp
efc1f0809373 initial checkin
vrany
parents:
diff changeset
    99
    "return/create the 'ruleHolderFromApp' value holder (automatically generated)"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   100
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   101
    ruleHolderFromApp isNil ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   102
        ruleHolderFromApp := ValueHolder new.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   103
        ruleHolderFromApp addDependent:self.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   104
    ].
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   105
    ^ ruleHolderFromApp
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   106
!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   107
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   108
ruleHolderFromApp:something
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   109
    "set the 'ruleHolderFromApp' value holder (automatically generated)"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   110
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   111
    |oldValue newValue|
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   112
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   113
    ruleHolderFromApp notNil ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   114
        oldValue := ruleHolderFromApp value.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   115
        ruleHolderFromApp removeDependent:self.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   116
    ].
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   117
    ruleHolderFromApp := something.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   118
    ruleHolderFromApp notNil ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   119
        ruleHolderFromApp addDependent:self.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   120
    ].
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   121
    newValue := ruleHolderFromApp value.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   122
    oldValue ~~ newValue ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   123
        self update:#value with:newValue from:ruleHolderFromApp.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   124
    ].
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   125
! !
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   126
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   127
!LintService methodsFor:'change & update'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   128
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   129
update: aspect with: param from: sender
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   130
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   131
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   132
    sender == ruleHolderFromApp ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   133
        self syntaxHighlight: true
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   134
    ]
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   135
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   136
    "Created: / 05-08-2011 / 11:49:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   137
! !
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   138
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   139
!LintService methodsFor:'initialization'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   140
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   141
initialize
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   142
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   143
    super initialize.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   144
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   145
    highlighter := LintHighlighter new
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   146
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   147
    "Modified: / 03-09-2010 / 22:29:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   148
    "Created: / 05-08-2011 / 11:53:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   149
! !
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   150
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   151
!LintService methodsFor:'private'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   152
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   153
syntaxHighlight: delayed
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   154
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   155
    | service |
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   156
    service := self service: #'Tools::CodeHighlightingService'.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   157
    service notNil ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   158
        service syntaxHighlight: delayed
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   159
    ]
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   160
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   161
    "Created: / 05-08-2011 / 11:49:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   162
! !
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   163
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   164
!LintService methodsFor:'registering'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   165
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   166
registerIn: aCodeView
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   167
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   168
    super registerIn: aCodeView.
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   169
    (self application respondsTo: #selectedLintRules) ifTrue:[
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   170
        self ruleHolderFromApp: self application selectedLintRules
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   171
    ].
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   172
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   173
    "Modified: / 17-06-2011 / 13:07:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   174
    "Created: / 05-08-2011 / 11:47:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   175
! !
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   176
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   177
!LintService class methodsFor:'documentation'!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   178
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   179
version
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   180
    ^ '$Header: /cvs/stx/stx/libtool/Tools__LintService.st,v 1.1 2011-08-05 11:11:54 vrany Exp $'
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   181
!
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   182
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   183
version_CVS
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   184
    ^ '$Header: /cvs/stx/stx/libtool/Tools__LintService.st,v 1.1 2011-08-05 11:11:54 vrany Exp $'
efc1f0809373 initial checkin
vrany
parents:
diff changeset
   185
! !