|
Class: BreakpointService (in Tools)
Object
|
+--Tools::CodeViewService
|
+--Tools::BreakpointService
- Package:
- stx:libtool
- Category:
- Interface-CodeView
- Version:
- rev:
1.83
date: 2019/06/26 18:02:40
- user: cg
- file: Tools__BreakpointService.st directory: libtool
- module: stx stc-classLibrary: libtool
somewhat badly designed for non-reusability:
I should not care for recompiling methods here,
but instead delegate this task to a breakPointInstaller.
The way it is currently designed makes it hard to reuse this
component in non-smalltalk setups (i.e. groovy-, node- or C editors).
Fiddling around here breaks it almost for sure, as this is highly obfuscated code.
accessing
-
label
-
Answers a short label - for UI
testing
-
isUsefulFor: aCodeView
-
this filters useful services.
Redefined to return true for myself - not for subclasses
accessing
-
breakpointAtLine: line
-
return the breakpoint at line (may be disabled) or nil, if there is none
-
breakpoints
-
-
firstBreakpointAtLine: line
-
return the breakpoint at line (may be disabled) or nil, if there is none
-
removeAllBreakpoints
-
-
setOrToggleBreakpointAtLine: line
-
if true, setting a single breakpoint in a method will create
change & update
-
update: aspect with: param from: sender
-
ATTENTION: I thought that fetching the methodHolder once in initialize would
-
updateBreakPointsFor: aMethod
-
Transcript show:'update breakpoints for method: '; showCR:aMethod.
-
updateCurrentMethod
-
codeView methodHolder class == BlockValue ifTrue:[self breakPoint:#cg].
event handling
-
buttonMultiPress: button x: x y: y in: view
-
(comment from inherited method)
Handles an event in given view (a subview of codeView).
If the method returns true, it has eaten the event and it will not be processed
by the view.
-
buttonPress: button x: x y: y in: view
-
now disabled: need a double click (like in other editors);
also this allows toggling breakpoints even if there are service-annotations
-
keyPress: key x: x y: y in: view
-
Handles an event in given view (a subview of codeView).
If the method returns true, it has eaten the event and it will not be processed
by the view.
-
linesDeletedFrom: start to: end
-
-
linesInsertedFrom: start to: end
-
help
-
basicHelpTextAtLine: ignoredLineNr
-
-
helpTextAtLine: ignoredLineNr
-
initialization
-
fetchMethodHolder
-
redefinable in subclasses, which do not have a codeView2/methodHolder
-
initialize
-
(comment from inherited method)
just to ignore initialize to objects which do not need it
private
-
fixupBreakpointPositions
-
computes the character positions of all line breakpoints
-
moveBreakpointsAfterLine: line by: delta
-
Note that position will be fixed up in BreakpointService>>breakpoints
-
recompile
-
recompile the current method for changed breakpoints
-
recompileMethod: oldMethod
-
recompile oldMethod for changed breakpoints
queries
-
canCreateOrToggleBreakpointAtLine: lineOrNilForAnywhere
-
is it possible to place a breakpoint here and now?
-
hasBreakpoints
-
redrawing
-
drawLine: lineNo in: view atX: x y: yBaseline width: w height: hFont ascent: aFont from: startCol to: endColOrNil with: fg and: bg
-
Called by both gutterView and textView (well, not yet) to
allow services to draw custom things on text view.
Ask JV what the args means if unsure (I'm lazy to document
them, now it is just an experiment...)
registering
-
registerIn: aCodeView
-
testing
-
isBreakpointService
-
|