Fixed Lint service to work on CVS Smalltalk/X...
authorJan Vrany <jan.vrany@fit.cvut.cz>
Tue, 17 Sep 2013 15:29:24 +0100
changeset 86 3b615594edf6
parent 85 d6a3fdbd87db
child 87 36026147c428
Fixed Lint service to work on CVS Smalltalk/X... ...by shipping SmallSense's compatible lint highlighter.
Make.proto
Make.spec
SmallSense__EditService.st
SmallSense__SmalltalkLintAnnotation.st
SmallSense__SmalltalkLintHighlighter.st
SmallSense__SmalltalkLintService.st
abbrev.stc
bc.mak
jv_smallsense.st
libInit.cc
smallsense.rc
--- a/Make.proto	Mon Sep 16 23:20:08 2013 +0100
+++ b/Make.proto	Tue Sep 17 15:29:24 2013 +0100
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libhtml -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/helpers -I$(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint -I$(INCLUDE_TOP)/stx/libcomp -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libwidg2
 
 
 # if you need any additional defines for embedded C code,
@@ -137,7 +137,6 @@
 	cd $(TOP)/libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/refactoryBrowser/browser && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
-	cd $(TOP)/goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/goodies/refactoryBrowser/lint && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd $(TOP)/libhtml && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
@@ -179,6 +178,8 @@
 $(OUTDIR)SmallSense__SelectorNode.$(O) SmallSense__SelectorNode.$(H): SmallSense__SelectorNode.st $(INCLUDE_TOP)/stx/libcomp/ParseNode.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SettingsAppl.$(O) SmallSense__SettingsAppl.$(H): SmallSense__SettingsAppl.st $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkChecker.$(O) SmallSense__SmalltalkChecker.$(H): SmallSense__SmalltalkChecker.st $(INCLUDE_TOP)/stx/goodies/refactoryBrowser/lint/SmalllintChecker.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SmalltalkLintAnnotation.$(O) SmallSense__SmalltalkLintAnnotation.$(H): SmallSense__SmalltalkLintAnnotation.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SmalltalkLintHighlighter.$(O) SmallSense__SmalltalkLintHighlighter.$(H): SmallSense__SmalltalkLintHighlighter.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkLintService.$(O) SmallSense__SmalltalkLintService.$(H): SmallSense__SmalltalkLintService.st $(INCLUDE_TOP)/stx/libtool/Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__CodeViewService.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkParser.$(O) SmallSense__SmalltalkParser.$(H): SmallSense__SmalltalkParser.st $(INCLUDE_TOP)/stx/libcomp/SyntaxHighlighter.$(H) $(INCLUDE_TOP)/stx/libcomp/AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)/stx/libcomp/Parser.$(H) $(INCLUDE_TOP)/stx/libcomp/Scanner.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkQuickFixer.$(O) SmallSense__SmalltalkQuickFixer.$(H): SmallSense__SmalltalkQuickFixer.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/Make.spec	Mon Sep 16 23:20:08 2013 +0100
+++ b/Make.spec	Tue Sep 17 15:29:24 2013 +0100
@@ -67,6 +67,8 @@
 	SmallSense::SelectorNode \
 	SmallSense::SettingsAppl \
 	SmallSense::SmalltalkChecker \
+	SmallSense::SmalltalkLintAnnotation \
+	SmallSense::SmalltalkLintHighlighter \
 	SmallSense::SmalltalkLintService \
 	SmallSense::SmalltalkParser \
 	SmallSense::SmalltalkQuickFixer \
@@ -113,6 +115,8 @@
     $(OUTDIR_SLASH)SmallSense__SelectorNode.$(O) \
     $(OUTDIR_SLASH)SmallSense__SettingsAppl.$(O) \
     $(OUTDIR_SLASH)SmallSense__SmalltalkChecker.$(O) \
+    $(OUTDIR_SLASH)SmallSense__SmalltalkLintAnnotation.$(O) \
+    $(OUTDIR_SLASH)SmallSense__SmalltalkLintHighlighter.$(O) \
     $(OUTDIR_SLASH)SmallSense__SmalltalkLintService.$(O) \
     $(OUTDIR_SLASH)SmallSense__SmalltalkParser.$(O) \
     $(OUTDIR_SLASH)SmallSense__SmalltalkQuickFixer.$(O) \
--- a/SmallSense__EditService.st	Mon Sep 16 23:20:08 2013 +0100
+++ b/SmallSense__EditService.st	Tue Sep 17 15:29:24 2013 +0100
@@ -10,6 +10,33 @@
 !
 
 
+!EditService class methodsFor:'initialization'!
+
+initialize
+
+    "
+    | map |
+    map := Screen current keyboardMap.
+    map bindValue:#CodeCompletion to: #'Ctrl '.
+    map bindValue:#CodeCompletion to: #'Ctrlspace'.
+    "
+
+    Smalltalk isInitialized ifTrue:[
+        Smalltalk addStartBlock:[
+            Screen current notNil ifTrue:[
+                | map |
+                map := Screen current keyboardMap.
+                (map keyAtValue:#CodeCompletion) isNil ifTrue:[
+                    map bindValue:#CodeCompletion to: #'Ctrl '.
+                    map bindValue:#CodeCompletion to: #'Ctrlspace'.
+                ].
+           ]
+        ]
+    ]
+
+    "Created: / 17-09-2013 / 15:23:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !EditService class methodsFor:'accessing'!
 
 label
@@ -132,3 +159,5 @@
     ^ '$Changeset: <not expanded> $'
 ! !
 
+
+EditService initialize!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__SmalltalkLintAnnotation.st	Tue Sep 17 15:29:24 2013 +0100
@@ -0,0 +1,129 @@
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+"{ Package: 'jv:smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+Object subclass:#SmalltalkLintAnnotation
+	instanceVariableNames:'startPosition endPosition line rule'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Smalltalk-Lint'
+!
+
+!SmalltalkLintAnnotation class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+! !
+
+!SmalltalkLintAnnotation class methodsFor:'instance creation'!
+
+from: start to: end rule: rule
+
+    ^self new
+        startPosition: start;
+        endPosition: end;
+        rule: rule;
+        yourself.
+
+    "Created: / 30-01-2012 / 15:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkLintAnnotation methodsFor:'accessing'!
+
+endPosition
+    ^ endPosition
+!
+
+endPosition:anInteger
+    endPosition := anInteger.
+!
+
+line
+    ^ line
+!
+
+line:anInteger
+    line := anInteger.
+!
+
+rule
+    ^ rule
+!
+
+rule:anRBLintRule
+    self assert: anRBLintRule isComposite not.
+    rule := anRBLintRule.
+
+    "Modified: / 30-01-2012 / 15:22:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+startPosition
+    ^ startPosition
+!
+
+startPosition:anInteger
+    startPosition := anInteger.
+! !
+
+!SmalltalkLintAnnotation methodsFor:'comparing'!
+
+< anObject
+
+    anObject isNumber ifTrue:[^startPosition < anObject].
+    anObject class == self class ifFalse:[^false].
+
+    ^endPosition < anObject startPosition
+
+    "Created: / 14-02-2010 / 13:39:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+<= aMagnitude
+    "return true, if the argument is greater or equal than the receiver"
+
+    ^ (aMagnitude < self) not
+!
+
+= anObject
+
+    anObject class == self class ifFalse:[^false].
+
+    ^startPosition == (anObject startPosition) and:
+        [endPosition == (anObject endPosition) and:
+            [rule = anObject rule]]
+
+    "Created: / 14-02-2010 / 13:33:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+> aMagnitude
+    "return true, if the argument is less than the receiver"
+
+    ^ aMagnitude < self
+!
+
+>= aMagnitude
+    "return true, if the argument is less or equal than the receiver"
+
+    ^ (self < aMagnitude) not
+! !
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SmallSense__SmalltalkLintHighlighter.st	Tue Sep 17 15:29:24 2013 +0100
@@ -0,0 +1,256 @@
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+"{ Package: 'jv:smallsense' }"
+
+"{ NameSpace: SmallSense }"
+
+Object subclass:#SmalltalkLintHighlighter
+	instanceVariableNames:'rules annotations formattingMethod emphasisError
+		emphasisInformation emphasisWarning'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SmallSense-Smalltalk-Lint'
+!
+
+!SmalltalkLintHighlighter class methodsFor:'documentation'!
+
+copyright
+"
+ COPYRIGHT (c) 2006 by eXept Software AG
+              All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice.   This software may not
+ be provided or otherwise made available to, or used by, any
+ other person.  No title to or ownership of the software is
+ hereby transferred.
+"
+! !
+
+!SmalltalkLintHighlighter methodsFor:'accessing'!
+
+annotations
+    ^ annotations
+!
+
+rules
+    ^ rules
+!
+
+rules:aCollectionOfRules
+    rules := aCollectionOfRules.
+
+    "Modified (format): / 07-03-2012 / 17:24:02 / cg"
+! !
+
+!SmalltalkLintHighlighter methodsFor:'accessing-emphasis'!
+
+emphasisForError
+    |warnColor|
+
+    emphasisError isNil ifTrue:[
+        warnColor := Color red.
+        emphasisError := Array 
+            "/with: #backgroundColor -> warnColor lightened lightened 
+            with: #underwave 
+            with: #underlineColor -> warnColor                    
+    ].
+    ^emphasisError
+
+    "Created: / 05-08-2011 / 09:31:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-03-2012 / 03:00:51 / cg"
+    "Modified: / 20-04-2012 / 18:29:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+emphasisForInformation
+    |warnColor|
+
+    emphasisInformation isNil ifTrue:[
+        warnColor := Color blue lighter.
+        emphasisInformation := Array 
+            "/with: #backgroundColor -> warnColor lightened lightened
+            with: #underwave 
+            with: #underlineColor -> warnColor                    
+    ].
+    ^emphasisInformation
+
+    "Created: / 05-08-2011 / 09:31:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-03-2012 / 03:01:22 / cg"
+    "Modified: / 20-04-2012 / 18:29:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+emphasisForSeverity: severity
+
+    severity == #error ifTrue:[^self emphasisForError].
+    severity == #information ifTrue:[^self emphasisForInformation].
+
+    ^self emphasisForWarning
+
+    "Created: / 05-08-2011 / 09:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+emphasisForWarning
+    |warnColor|
+
+    emphasisWarning isNil ifTrue:[
+        warnColor := (Color redByte: 224 greenByte: 200 blueByte: 45).
+        emphasisWarning := Array 
+            "/with: #backgroundColor -> warnColor lightened lightened
+            with: #underwave 
+            with: #underlineColor -> warnColor                  
+    ].
+    ^emphasisWarning
+
+    "Created: / 05-08-2011 / 09:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-03-2012 / 03:00:19 / cg"
+    "Modified: / 20-04-2012 / 18:29:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkLintHighlighter methodsFor:'formatting'!
+
+formatClassDefinition:source in:class
+
+    formattingMethod := false.
+    ^ self format: source
+
+    "Created: / 04-08-2011 / 23:44:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+formatClassDefinition:source in:class elementsInto: elements
+
+    formattingMethod := false.
+    ^ self format: source
+
+    "Created: / 04-08-2011 / 23:44:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+formatExpression:source in:class
+
+    formattingMethod := false.
+    ^ self format: source
+
+    "Created: / 04-08-2011 / 23:45:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+formatExpression:source in:class elementsInto: elements
+
+    formattingMethod := false.
+    ^ self format: source
+
+    "Created: / 04-08-2011 / 23:43:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+formatMethod:mth source:source in:class using: preferences
+
+    formattingMethod := true.
+    ^ self format: source
+
+    "Created: / 04-08-2011 / 23:45:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+formatMethod:mth source:source in:class using: preferences elementsInto: elements
+
+    formattingMethod := true.
+    ^ self format: source
+
+    "Created: / 04-08-2011 / 23:42:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkLintHighlighter methodsFor:'formatting-private'!
+
+format: text
+
+    | tree |
+    tree := RBParser parseMethod: text string onError:[:error :pos| ^ text ].
+    self format: text tree: tree.
+    ^text
+
+    "Created: / 04-08-2011 / 23:51:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+format: text tree: tree
+
+    annotations := SortedCollection new.
+    rules ? #() do:[:rule|
+        self format: text tree: tree rule: rule
+    ].
+    ^text
+
+    "Created: / 02-02-2012 / 23:32:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+format: text tree: tree rule: rule
+
+    | string |
+
+    string := text string.
+    rule result isParseTreeEnvironment ifTrue:[
+        formattingMethod ifTrue:[
+            rule result selectionIntervalsForSource: string tree: tree do: [:interval|
+                interval notEmptyOrNil ifTrue:[
+                    (interval first == 1 and:[interval last == text size]) ifTrue:[
+                        (OperatingSystem getLoginName = 'jv') ifTrue:[
+                            Transcript showCR:'>> no meaningful selection interval for ' , rule printString.
+                        ].
+                    ] ifFalse:[
+                        self mark: text from: interval first to: interval last for: rule.
+                    ]
+                ]
+            ].
+        ].
+    ] ifFalse: [
+        | searches |
+
+        searches := rule result searchStrings asSet.
+
+        searches do:[:search|
+            | i |
+            i := 1.
+            [ 
+                i := string findString: search startingAt: i.
+                i ~~ 0
+            ] whileTrue:[
+                self mark: text from: i to: (i + search size - 1) for: rule.
+                i := i + search size + 1.
+            ]
+            
+
+        ]
+    ]
+
+    "Created: / 03-02-2012 / 10:39:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkLintHighlighter methodsFor:'initialization'!
+
+reset
+    annotations := OrderedCollection new.
+
+    "Created: / 18-02-2012 / 22:54:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-08-2013 / 12:40:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SmalltalkLintHighlighter methodsFor:'markup'!
+
+mark: text from: start to: end for: rule
+    | emphasis |
+
+    emphasis := self emphasisForSeverity: rule severity.
+    text emphasisFrom: start to: end add: emphasis.     
+    annotations add:
+        (SmalltalkLintAnnotation from: start to: end rule: rule)
+
+    "Created: / 30-01-2012 / 15:30:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 17-09-2013 / 15:24:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/SmallSense__SmalltalkLintService.st	Mon Sep 16 23:20:08 2013 +0100
+++ b/SmallSense__SmalltalkLintService.st	Tue Sep 17 15:29:24 2013 +0100
@@ -36,33 +36,6 @@
 "
 ! !
 
-!SmalltalkLintService class methodsFor:'initialization'!
-
-initialize
-
-    "
-    | map |
-    map := Screen current keyboardMap.
-    map bindValue:#CodeCompletion to: #'Ctrl '.
-    map bindValue:#CodeCompletion to: #'Ctrlspace'.
-    "
-
-    Smalltalk isInitialized ifTrue:[
-        Smalltalk addStartBlock:[
-            Screen current notNil ifTrue:[
-                | map |
-                map := Screen current keyboardMap.
-                (map keyAtValue:#CodeCompletion) isNil ifTrue:[
-                    map bindValue:#CodeCompletion to: #'Ctrl '.
-                    map bindValue:#CodeCompletion to: #'Ctrlspace'.
-                ].
-           ]
-        ]
-    ]
-
-    "Modified: / 15-08-2013 / 15:19:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
 !SmalltalkLintService class methodsFor:'accessing'!
 
 debugging
@@ -106,13 +79,10 @@
      must be redefined to return true in subclasses (but each class must do it only
      for itself - not for subclasses"
 
-    ^ self == SmalltalkLintService 
-        "/ Hack for eXept CVS libtool - I'll include modified version
-        "/ in SmallSense. sigh.
-        and:[Tools::LintHighlighter canUnderstand: #annotations]
+    ^ self == SmalltalkLintService
 
     "Created: / 24-07-2013 / 11:35:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 02-09-2013 / 13:06:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 17-09-2013 / 15:26:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmalltalkLintService class methodsFor:'testing'!
@@ -243,9 +213,10 @@
 
     super initialize.
 
-    highlighter := Tools::LintHighlighter new.
+    highlighter := SmalltalkLintHighlighter new.
 
     "Created: / 05-08-2011 / 11:53:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 17-09-2013 / 15:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SmalltalkLintService methodsFor:'private'!
@@ -417,5 +388,3 @@
     ^ '$Id: SmallSenseService.st 8039 2012-08-13 22:12:37Z vranyj1 $'
 ! !
 
-
-SmalltalkLintService initialize!
--- a/abbrev.stc	Mon Sep 16 23:20:08 2013 +0100
+++ b/abbrev.stc	Tue Sep 17 15:29:24 2013 +0100
@@ -21,8 +21,11 @@
 SmallSense::SelectorNode SmallSense__SelectorNode jv:smallsense 'SmallSense-Core' 0
 SmallSense::SettingsAppl SmallSense__SettingsAppl jv:smallsense 'SmallSense-Core-Interface' 1
 SmallSense::SmalltalkChecker SmallSense__SmalltalkChecker jv:smallsense 'SmallSense-Smalltalk-Lint' 0
+SmallSense::SmalltalkLintAnnotation SmallSense__SmalltalkLintAnnotation jv:smallsense 'SmallSense-Smalltalk-Lint' 0
+SmallSense::SmalltalkLintHighlighter SmallSense__SmalltalkLintHighlighter jv:smallsense 'SmallSense-Smalltalk-Lint' 0
 SmallSense::SmalltalkLintService SmallSense__SmalltalkLintService jv:smallsense 'SmallSense-Smalltalk-Lint' 0
 SmallSense::SmalltalkParser SmallSense__SmalltalkParser jv:smallsense 'SmallSense-Smalltalk' 3
+SmallSense::SmalltalkParserTests SmallSense__SmalltalkParserTests jv:smallsense 'SmallSense-Tests' 1
 SmallSense::SmalltalkQuickFixer SmallSense__SmalltalkQuickFixer jv:smallsense 'SmallSense-Smalltalk-Lint' 0
 SmallSense::SmalltalkSyntaxHighlighter SmallSense__SmalltalkSyntaxHighlighter jv:smallsense 'SmallSense-Smalltalk' 3
 SmallSense::SmalltalkUnacceptedMethodEnvironment SmallSense__SmalltalkUnacceptedMethodEnvironment jv:smallsense 'SmallSense-Smalltalk-Lint' 0
@@ -42,7 +45,6 @@
 SmallSense::MethodPO SmallSense__MethodPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::SmalltalkEditSupport SmallSense__SmalltalkEditSupport jv:smallsense 'SmallSense-Smalltalk' 0
 SmallSense::SmalltalkInferencer SmallSense__SmalltalkInferencer jv:smallsense 'SmallSense-Smalltalk-Types-Inference' 0
-SmallSense::SmalltalkParserTests SmallSense__SmalltalkParserTests jv:smallsense 'SmallSense-Tests' 1
 SmallSense::SnippetPO SmallSense__SnippetPO jv:smallsense 'SmallSense-Core-Interface-PO' 0
 SmallSense::UnionType SmallSense__UnionType jv:smallsense 'SmallSense-Smalltalk-Types' 0
 SmallSense::UnknownType SmallSense__UnknownType jv:smallsense 'SmallSense-Smalltalk-Types' 1
--- a/bc.mak	Mon Sep 16 23:20:08 2013 +0100
+++ b/bc.mak	Tue Sep 17 15:29:24 2013 +0100
@@ -34,7 +34,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libwidg2
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libhtml -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\helpers -I$(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint -I$(INCLUDE_TOP)\stx\libcomp -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libwidg2
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -60,7 +60,6 @@
 	pushd ..\..\stx\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\goodies\refactoryBrowser\browser & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
-	pushd ..\..\stx\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\goodies\refactoryBrowser\lint & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\stx\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
@@ -103,6 +102,8 @@
 $(OUTDIR)SmallSense__SelectorNode.$(O) SmallSense__SelectorNode.$(H): SmallSense__SelectorNode.st $(INCLUDE_TOP)\stx\libcomp\ParseNode.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SettingsAppl.$(O) SmallSense__SettingsAppl.$(H): SmallSense__SettingsAppl.st $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkChecker.$(O) SmallSense__SmalltalkChecker.$(H): SmallSense__SmalltalkChecker.st $(INCLUDE_TOP)\stx\goodies\refactoryBrowser\lint\SmalllintChecker.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SmalltalkLintAnnotation.$(O) SmallSense__SmalltalkLintAnnotation.$(H): SmallSense__SmalltalkLintAnnotation.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SmallSense__SmalltalkLintHighlighter.$(O) SmallSense__SmalltalkLintHighlighter.$(H): SmallSense__SmalltalkLintHighlighter.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkLintService.$(O) SmallSense__SmalltalkLintService.$(H): SmallSense__SmalltalkLintService.st $(INCLUDE_TOP)\stx\libtool\Tools__BackgroundSourceProcessingService.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__CodeViewService.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkParser.$(O) SmallSense__SmalltalkParser.$(H): SmallSense__SmalltalkParser.st $(INCLUDE_TOP)\stx\libcomp\SyntaxHighlighter.$(H) $(INCLUDE_TOP)\stx\libcomp\AbstractSyntaxHighlighter.$(H) $(INCLUDE_TOP)\stx\libcomp\Parser.$(H) $(INCLUDE_TOP)\stx\libcomp\Scanner.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SmallSense__SmalltalkQuickFixer.$(O) SmallSense__SmalltalkQuickFixer.$(H): SmallSense__SmalltalkQuickFixer.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/jv_smallsense.st	Mon Sep 16 23:20:08 2013 +0100
+++ b/jv_smallsense.st	Tue Sep 17 15:29:24 2013 +0100
@@ -46,7 +46,6 @@
     ^ #(
         #'stx:goodies/refactoryBrowser/helpers'    "BrowserEnvironment - superclass of SmallSense::SmalltalkUnacceptedMethodEnvironment "
         #'stx:goodies/refactoryBrowser/lint'    "RBLintRule - extended "
-        #'stx:goodies/sunit'    "TestAsserter - superclass of SmallSense::SmalltalkParserTests "
         #'stx:libbasic'    "Autoload - superclass of SmallSense::BaseTestClass "
         #'stx:libcomp'    "AbstractSyntaxHighlighter - superclass of SmallSense::SmalltalkParser "
         #'stx:libhtml'    "HTMLDocumentFrame - extended "
@@ -175,8 +174,11 @@
         #'SmallSense::SelectorNode'
         #'SmallSense::SettingsAppl'
         #'SmallSense::SmalltalkChecker'
+        #'SmallSense::SmalltalkLintAnnotation'
+        #'SmallSense::SmalltalkLintHighlighter'
         #'SmallSense::SmalltalkLintService'
         #'SmallSense::SmalltalkParser'
+        (#'SmallSense::SmalltalkParserTests' autoload)
         #'SmallSense::SmalltalkQuickFixer'
         #'SmallSense::SmalltalkSyntaxHighlighter'
         #'SmallSense::SmalltalkUnacceptedMethodEnvironment'
@@ -196,7 +198,6 @@
         #'SmallSense::MethodPO'
         #'SmallSense::SmalltalkEditSupport'
         #'SmallSense::SmalltalkInferencer'
-        (#'SmallSense::SmalltalkParserTests' autoload)
         #'SmallSense::SnippetPO'
         #'SmallSense::UnionType'
         #'SmallSense::UnknownType'
--- a/libInit.cc	Mon Sep 16 23:20:08 2013 +0100
+++ b/libInit.cc	Tue Sep 17 15:29:24 2013 +0100
@@ -44,6 +44,8 @@
 _SmallSense__SelectorNode_Init(pass,__pRT__,snd);
 _SmallSense__SettingsAppl_Init(pass,__pRT__,snd);
 _SmallSense__SmalltalkChecker_Init(pass,__pRT__,snd);
+_SmallSense__SmalltalkLintAnnotation_Init(pass,__pRT__,snd);
+_SmallSense__SmalltalkLintHighlighter_Init(pass,__pRT__,snd);
 _SmallSense__SmalltalkLintService_Init(pass,__pRT__,snd);
 _SmallSense__SmalltalkParser_Init(pass,__pRT__,snd);
 _SmallSense__SmalltalkQuickFixer_Init(pass,__pRT__,snd);
--- a/smallsense.rc	Mon Sep 16 23:20:08 2013 +0100
+++ b/smallsense.rc	Tue Sep 17 15:29:24 2013 +0100
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: jv_smallsense.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,32767,32767
+  FILEVERSION     6,2,6387,6387
   PRODUCTVERSION  6,2,3,0
 #if (__BORLANDC__)
   FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
     BEGIN
       VALUE "CompanyName", "eXept Software AG\0"
       VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
-      VALUE "FileVersion", "6.2.32767.32767\0"
+      VALUE "FileVersion", "6.2.6387.6387\0"
       VALUE "InternalName", "jv:smallsense\0"
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2011\nCopyright eXept Software AG 1998-2011\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Mon, 16 Sep 2013 22:19:31 GMT\0"
+      VALUE "ProductDate", "Tue, 17 Sep 2013 14:27:10 GMT\0"
     END
 
   END