Hi Marcel,
Did you see ShoutCore-ct.76? I think my solution could also work for dead contexts, instead of just refusing to style :-)
Best,
Christoph
________________________________ Von: Squeak-dev squeak-dev-bounces@lists.squeakfoundation.org im Auftrag von commits@source.squeak.org commits@source.squeak.org Gesendet: Donnerstag, 21. November 2019 15:51:18 An: squeak-dev@lists.squeakfoundation.org; packages@lists.squeakfoundation.org Betreff: [squeak-dev] The Trunk: ShoutCore-mt.76.mcz
Marcel Taeumel uploaded a new version of ShoutCore to project The Trunk: http://source.squeak.org/trunk/ShoutCore-mt.76.mcz
==================== Summary ====================
Name: ShoutCore-mt.76 Author: mt Time: 21 November 2019, 3:51:18.231156 pm UUID: c0aa1566-69f3-1845-8993-0f5f67fcdb96 Ancestors: ShoutCore-eem.75
Fixes a bug with syntax highlighting for dead context's in the debugger.
=============== Diff against ShoutCore-eem.75 ===============
Item was changed: ----- Method: SHParserST80>>initializeInstanceVariables (in category 'parse support') ----- initializeInstanceVariables
instanceVariables := classOrMetaClass ifNil: [ #() ] ifNotNil: [ classOrMetaClass allInstVarNames asArray ]. allowUnderscoreAssignments := Scanner allowUnderscoreAsAssignment. allowUnderscoreSelectors := Scanner prefAllowUnderscoreSelectors. allowBlockArgumentAssignment := Scanner allowBlockArgumentAssignment. sourcePosition := 1. arguments ifNil: [ arguments := OrderedCollection with: nil ] ifNotNil: [ arguments reset; addLast: nil ]. temporaries ifNil: [ temporaries := OrderedCollection with: nil ] ifNotNil: [ temporaries reset; addLast: nil ]. + (context notNil and: [ context isDead not ]) + ifTrue: [ self initializeVariablesFromContext ]. - context ifNotNil: [ self initializeVariablesFromContext ]. bracketDepth := 0. ranges ifNil: [ ranges := OrderedCollection new: 40 "Covers over 80% of all methods." ] ifNotNil: [ ranges reset ]!
Item was changed: ----- Method: SHParserST80>>initializeVariablesFromContext (in category 'parse support') ----- initializeVariablesFromContext
| contextSourcePcIndex contextSourceParser | contextSourcePcIndex := (context debuggerMap rangeForPC: context pc in: context method + contextIsActiveContext: true "... to really use the context's pc.") - contextIsActiveContext: true "little white lie to work in every situation") start. contextSourceParser := self class new classOrMetaClass: context method methodClass; environment: self environment; source: (context method getSource first: contextSourcePcIndex); yourself. contextSourceParser parse. arguments := contextSourceParser activeArguments. temporaries := contextSourceParser activeTemporaries.!