Tools__LintAnnotation.st
author Jan Vrany <jan.vrany@labware.com>
Wed, 05 Oct 2022 11:57:26 +0100
branchjv
changeset 19637 28f5bfaa093d
parent 16617 69e7de1ef22f
permissions -rw-r--r--
`NewSystemBrowser`: avoid updating package info when changed class is not selected This speeds up loading of packages when browser is open as it does not (needlessly) update package info which may involve scm round-trip.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13857
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Tools }"
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
Object subclass:#LintAnnotation
15028
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
    17
	instanceVariableNames:'line rule'
13857
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Interface-Lint'
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
!LintAnnotation class methodsFor:'documentation'!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
copyright
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
 COPYRIGHT (c) 2006 by eXept Software AG
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
              All Rights Reserved
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
 This software is furnished under a license and may be used
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
 only in accordance with the terms of that license and with the
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
 inclusion of the above copyright notice.   This software may not
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
 be provided or otherwise made available to, or used by, any
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 other person.  No title to or ownership of the software is
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
 hereby transferred.
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
"
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
! !
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
!LintAnnotation class methodsFor:'instance creation'!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
from: start to: end rule: rule
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
    ^self new
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
        startPosition: start;
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
        endPosition: end;
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
        rule: rule;
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
        yourself.
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    "Created: / 30-01-2012 / 15:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
! !
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
!LintAnnotation methodsFor:'accessing'!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
line
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
    ^ line
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
line:anInteger
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
    line := anInteger.
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
rule
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
    ^ rule
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
rule:anRBLintRule
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
    rule := anRBLintRule.
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
15028
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
    69
    "Modified: / 15-12-2014 / 13:10:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
13857
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
! !
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
14995
9dc92bd11831 class: Tools::LintAnnotation
Claus Gittinger <cg@exept.de>
parents: 13857
diff changeset
    72
!LintAnnotation methodsFor:'help'!
9dc92bd11831 class: Tools::LintAnnotation
Claus Gittinger <cg@exept.de>
parents: 13857
diff changeset
    73
9dc92bd11831 class: Tools::LintAnnotation
Claus Gittinger <cg@exept.de>
parents: 13857
diff changeset
    74
helpTextFor:aView
16554
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    75
    |info resources|
15101
05cf28ac84ef class: Tools::LintAnnotation
Claus Gittinger <cg@exept.de>
parents: 15028
diff changeset
    76
16554
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    77
    rule isNil ifTrue:[^ nil].
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    78
    
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    79
    resources := self class classResources.
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    80
    rule isComposite ifTrue:[
16610
0eaa2a36a085 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16554
diff changeset
    81
        "/ sigh - must collect here, because lint does not know about my resources.
16554
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    82
        info := rule rules 
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    83
                    collect:[:each | 
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    84
                        (resources string:each infoInToolTip)
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    85
                    ] as:Set.
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    86
        info size > 1 ifTrue:[
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    87
            info := info collect:[:each | '- ',each].
15101
05cf28ac84ef class: Tools::LintAnnotation
Claus Gittinger <cg@exept.de>
parents: 15028
diff changeset
    88
        ].
16554
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    89
        info := info asStringCollection asStringWith:Character cr. 
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    90
    ] ifFalse:[
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    91
        info := resources string:rule infoInToolTip
14995
9dc92bd11831 class: Tools::LintAnnotation
Claus Gittinger <cg@exept.de>
parents: 13857
diff changeset
    92
    ].
16554
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    93
    info isEmptyOrNil ifTrue:[^ nil].
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    94
    ^ resources 
16610
0eaa2a36a085 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16554
diff changeset
    95
            stringWithCRs:(('Lint says (click on icon for details):\' withColor:#gray),'\%1') "/ 'Lint says: %1\Click for more info.' 
16554
b44b9f15aa21 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 16298
diff changeset
    96
            with:info.
14995
9dc92bd11831 class: Tools::LintAnnotation
Claus Gittinger <cg@exept.de>
parents: 13857
diff changeset
    97
! !
9dc92bd11831 class: Tools::LintAnnotation
Claus Gittinger <cg@exept.de>
parents: 13857
diff changeset
    98
15028
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
    99
!LintAnnotation methodsFor:'printing & storing'!
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   100
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   101
printOn:aStream
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   102
    "append a user printed representation of the receiver to aStream.
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   103
    The format is suitable for a human - not meant to be read back."
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   104
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   105
    self basicPrintOn: aStream.
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   106
    aStream nextPut: $(.
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   107
    line printOn: aStream.
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   108
    aStream nextPut: $).
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   109
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   110
    "Modified: / 15-12-2014 / 13:41:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   111
! !
5b22d7abf3e0 LintHighlighter/.LintService refactored to show multiple rules at line...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 14995
diff changeset
   112
13857
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
!LintAnnotation class methodsFor:'documentation'!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
version
16298
d2b0b69d8bc7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 15524
diff changeset
   116
    ^ '$Header$'
13857
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
!
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
version_CVS
16298
d2b0b69d8bc7 #UI_ENHANCEMENT by cg
Claus Gittinger <cg@exept.de>
parents: 15524
diff changeset
   120
    ^ '$Header$'
13857
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
! !
f60d162c2af2 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122