The Trunk: Tools-nice.1040.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Tools-nice.1040.mcz

commits-2
Nicolas Cellier uploaded a new version of Tools to project The Trunk:
http://source.squeak.org/trunk/Tools-nice.1040.mcz

==================== Summary ====================

Name: Tools-nice.1040
Author: nice
Time: 14 April 2021, 11:41:49.287889 pm
UUID: 30dc2572-5638-c849-a103-cd00af68fca7
Ancestors: Tools-mt.1039, Tools-tcj.834, Tools-mva.748, Tools-ct.1006, Tools-ct.1020, Tools-ct.1031

Merge commit

Tools-mt.1039:
        Complements Kernel-mt.1385

Tools-tcj.834:
        Add 'alphabetize' to Package Pane Browser's class category menu, as is found on standard Browser.

Tools-mva.748:
        fix selecting a directory in the left pane in a MVC project FileList on Mac and Linux (and it still works on Windows afterwards)

Tools-ct.1006:
        Complements Compiler-ct.449 (CompilationCue in SyntaxErrorNotification). Fixes syntax highlighting in SyntaxError window.

Tools-ct.1020:
        Fixes code styling in change sorters.

Tools-ct.1031:
        Fixes styling in change sorters if no real method is selected. No need to invoke Shout on messages such as "method was removed".

=============== Diff against Tools-mt.1039 ===============

Item was changed:
  CodeHolder subclass: #ChangeSorter
+ instanceVariableNames: 'parent myChangeSet currentClassName currentSelector priorChangeSetList contentsAreStyleable'
- instanceVariableNames: 'parent myChangeSet currentClassName currentSelector priorChangeSetList'
  classVariableNames: ''
  poolDictionaries: ''
  category: 'Tools-Changes'!
 
+ !ChangeSorter commentStamp: 'ct 3/10/2021 18:24' prior: 0!
- !ChangeSorter commentStamp: 'wiz 2/3/2010 23:38' prior: 0!
  I display a ChangeSet.  Two of me are in a DualChangeSorter.
 
  aStringOrNil
  Instance Variables
  currentClassName: <aStringOrNil>
  currentSelector: <aStringOrNil>
  myChangeSet: <aChangeSet>
  parent: <aDualChangeSorterOrNil>
  priorChangeSetList: <aCollection>
+ contentsAreStyleable <aBoolean>
 
 
  currentClassName
  - string parseable into class-name [class] [class trait]
  needs to be fitlered by (self withoutItemAnnotation: currentClassName) to remove pakaging note
 
 
  currentSelector
  - string parseable into selector-name
  needs to be fitlered by (self withoutItemAnnotation: currentSelector) to remove pakaging note
 
  myChangeSet
  - name of current changeset
  parent
  -the dual changesorter that contains this one. Used for dealing with the other half.
  priorChangeSetList
+ - holds the current change set list. Used to detect changes in list when a newly generated list no long match the prior list.!
- - holds the current change set list. Used to detect changes in list when a newly generated list no long match the prior list.
- !

Item was changed:
  ----- Method: ChangeSorter>>aboutToStyle: (in category 'code pane') -----
  aboutToStyle: aStyler
  "This is a notification that aStyler is about to re-style its text.
  Set the classOrMetaClass in aStyler, so that identifiers
  will be resolved correctly.
  Answer true to allow styling to proceed, or false to veto the styling"
 
+ contentsAreStyleable ~= false ifFalse: [^false].
- self isModeStyleable ifFalse: [^false].
- self currentSelector ifNil: [^false].
  aStyler classOrMetaClass: self selectedClassOrMetaClass.
  ^true!

Item was changed:
  ----- Method: ChangeSorter>>buildWith:in:rect: (in category 'toolbuilder') -----
  buildWith: builder in: window rect: rect
  | csListHeight msgListHeight csMsgListHeight listSpec textSpec |
  contents := ''.
  csListHeight := 0.25.
  msgListHeight := 0.25.
  csMsgListHeight := csListHeight + msgListHeight.
 
  listSpec := builder pluggableListSpec new.
  listSpec
  model: self;
  list: #changeSetList;
  getSelected: #currentCngSet;
  setSelected: #showChangeSetNamed:;
  menu: #changeSetMenu:shifted:;
  keyPress: #changeSetListKey:from:;
  dragItem: #dragChangeSet:;
  autoDeselect: false;
  frame: (((0@0 extent: 0.5@csListHeight)
  scaleBy: rect extent) translateBy: rect origin).
  window children add: listSpec.
 
  listSpec := builder pluggableListSpec new.
  listSpec
  model: self;
  list: #classList;
  getSelected: #currentClassName;
  setSelected: #currentClassName:;
  menu: #classListMenu:shifted:;
  keyPress: #classListKey:from:;
  dragItem: #dragClass:;
  frame: (((0.5@0 extent: 0.5@csListHeight)
  scaleBy: rect extent) translateBy: rect origin).
  window children add: listSpec.
 
  listSpec := builder pluggableListSpec new.
  listSpec
  model: self;
  list: #messageList;
  getSelected: #currentSelector;
  setSelected: #currentSelector:;
  menu: #messageMenu:shifted:;
  keyPress: #messageListKey:from:;
  dragItem: #dragMessage:;
  frame: (((0@csListHeight extent: 1@msgListHeight)
  scaleBy: rect extent) translateBy: rect origin).
  window children add: listSpec.
 
+ textSpec := builder pluggableCodePaneSpec new.
- textSpec := builder pluggableTextSpec new.
  textSpec
  model: self;
  getText: #contents;
  setText: #contents:notifying:;
  selection: #contentsSelection;
  menu: #codePaneMenu:shifted:;
  frame: (((0@csMsgListHeight corner: 1@1) scaleBy: rect extent) translateBy: rect origin).
  window children add: textSpec.
  ^window!

Item was changed:
  ----- Method: ChangeSorter>>setContents (in category 'code pane') -----
  setContents
  "return the source code that shows in the bottom pane"
 
  | sel class strm changeType |
  self clearUserEditFlag.
+ contentsAreStyleable := false.
  myChangeSet ifNil: [^ contents := String empty].   "should not happen but can"
  currentClassName ifNil: [^ contents := myChangeSet preambleString ifNil: [String empty]].
  class := self selectedClassOrMetaClass.
  (sel := self selectedMessageName) == nil
  ifFalse: [changeType := (myChangeSet atSelector: (sel := sel asSymbol) class: class).
  changeType == #remove
  ifTrue: [^ contents := 'Method has been removed (see versions)'].
  changeType == #addedThenRemoved
  ifTrue: [^ contents := 'Added then removed (see versions)'].
  class ifNil: [^ contents := 'Method was added, but cannot be found!!'].
  (class includesSelector: sel)
  ifFalse: [^ contents := 'Method was added, but cannot be found!!'].
+ contentsAreStyleable := true.
  contents := class sourceCodeAt: sel.
  (#(prettyPrint prettyDiffs) includes: contentsSymbol) ifTrue:
  [contents :=  class prettyPrinterClass
  format: contents in: class notifying: nil].
+ self showingAnyKindOfDiffs ifTrue: [
+ contentsAreStyleable := false.
+ contents := self diffFromPriorSourceFor: contents].
- self showingAnyKindOfDiffs
- ifTrue: [contents := self diffFromPriorSourceFor: contents].
  ^ contents := contents asText makeSelectorBoldIn: class]
  ifTrue: [strm := WriteStream on: (String new: 100).
  (myChangeSet classChangeAt: (self withoutItemAnnotation: currentClassName)) do:
  [:each |
  each = #remove ifTrue: [strm nextPutAll: 'Entire class was removed.'; cr].
  each = #addedThenRemoved ifTrue: [strm nextPutAll: 'Class was added then removed.'].
  each = #rename ifTrue: [strm nextPutAll: 'Class name was changed.'; cr].
  each = #add ifTrue: [strm nextPutAll: 'Class definition was added.'; cr].
  each = #change ifTrue: [strm nextPutAll: 'Class definition was changed.'; cr].
  each = #reorganize ifTrue: [strm nextPutAll: 'Class organization was changed.'; cr].
  each = #comment ifTrue: [strm nextPutAll: 'New class comment.'; cr.
  ]].
  ^ contents := strm contents].!

Item was changed:
  ----- Method: FileList>>volumeListIndex: (in category 'volume list and pattern') -----
  volumeListIndex: index
  "Select the volume name having the given index."
 
  | delim path |
  volListIndex := index.
  index = 1
  ifTrue: [self directory: (FileDirectory on: '')]
  ifFalse: [delim := directory pathNameDelimiter.
  path := String streamContents: [:strm |
  2 to: index do: [:i |
  strm nextPutAll: (volList at: i) withBlanksTrimmed.
  i < index ifTrue: [strm nextPut: delim]]].
+ self directory: (FileDirectory on: path)].
- self directory: (directory on: path)].
  brevityState := #FileList.
  self addPath: path.
  self changed: #fileList.
  self changed: #contents.
  self updateButtonRow.!

Item was changed:
  ----- Method: PackagePaneBrowser>>mainPackageMenu: (in category 'package list') -----
  mainPackageMenu: aMenu
  "Answer a Menu of operations on class packages to be
  displayed when the operate menu button is pressed."
  <packageListMenu>
  ^aMenu addList: #(
  ('find class...' findClass)
  ('recent classes...' recent)
  -
  ('reorganize' editSystemCategories)
+ ('alphabetize' alphabetizeSystemCategories)
+ -
  ('update' updatePackages));
  yourself.
  !

Item was changed:
  ----- Method: SyntaxError>>aboutToStyle: (in category 'text menu support') -----
  aboutToStyle: aStyler
 
  aStyler
  classOrMetaClass: self selectedClassOrMetaClass;
+ environment: notification environment;
+ context: notification context;
  parseAMethod: notification doitFlag not.
  ^ true!

Item was changed:
+ (PackageInfo named: 'Tools') postscript: 'ChangeSorter allSubInstancesDo: [:sorter |
+ (sorter instVarNamed: ''contentsAreStyleable'') ifNil: [
+ sorter instVarNamed: ''contentsAreStyleable'' put: true]].'!
- (PackageInfo named: 'Tools') postscript: '(Smalltalk globals at: #ObjectsUnderInspection ifAbsent: [#()])
- do: [:objectUnderInspection |
- ToolSet inspect: objectUnderInspection].
- Smalltalk globals removeKey: #ObjectsUnderInspection.'!