VA 7.5 Browser Integration

VA Smalltalk is a "100% VisualAge compatible" IDE that includes the original VisualAge technology and the popular VA Assist and WidgetKit add-ons.

Moderators: Eric Clayberg, wembley, tc, Diane Engles, solveig

VA 7.5 Browser Integration

Postby cknittel » Fri Feb 09, 2007 4:06 am


In VA 7.5, we have (at least? ;-)) the following four kinds of browsers:
  • "Standard" Class Browser / Hierarchy Browser
  • "VisualAge" Browser (the one including the Composition/Interface Editor)
  • Refactoring Browser
  • TrailBlazer
and (at least?) the following add-ins / new features:
  • VA Assist (syntax highlighting, enhanced look and feel etc. etc.)
  • ENVY/QA (code formatting etc.)
  • "Mastering ENVY/Developer" extensions

While I am very happy with the inclusion of these features, I would have hoped for a better integration with the different browsers.

Especially, I would consider it essential to have the syntax highlighting and code formatting available in the Refactoring Browser and TrailBlazer, too. This does not seem to be the case now. (Or am I missing something?)

Best regards,
Posts: 27
Joined: Tue Nov 28, 2006 6:10 am
Location: Vienna - Austria

Postby wembley » Sun Feb 11, 2007 3:23 pm

Christoph -

Yes, there are many choices of browsers in VA Smalltalk 7.5. Here is how I imagine things sorting themselves out in the future (my speculation is always subject to change, of course):

Trailblazer is not being actively developed or enhanced. It will continue to be included with VA Smalltalk since some developers perfer it and, at least right now, it has some unique function for building database applications that is not available in other browsers.

The "standard" browsers will continue to be the primary browsers for the IDE. VA Assist, ENVY/QA, and Mastering ENVY/Developer provide added capability that will be more tightly integrate (and likely disappear, in all or part, as separate features) over time.

The "VisualAge" Browser, an alternate Class Browser, provides some unique function when accessed through the Composition Editor and will likely remain substantially unchanged in the future.

The Refactoring Browser's UI could/should be more closely aligned with the "standard" browsers, as extended by VA Assist. It could eventually be subsumed by enhancements to the "standard" browsers.

SmallLint and ENVY/QA Code Critic proform essentially the same function, but do not have an identical rule set. Since ENVY/QA is better aligned with the "standard" browsers, this is where we would make investments in producing a superset of lint rules.

I think that about covers it.

John O'Keefe
VA Smalltalk Team
Instantiations, Inc.
Posts: 405
Joined: Mon Oct 16, 2006 3:01 am
Location: Durham, NC

Re: VA 7.5 Browser Integration

Postby Eric Clayberg » Sun Feb 11, 2007 7:15 pm

I basically agree with John, but I will relate some of my personal feelings on the subject.

I consider the "VisualAge Browser" to be in the same family as the standard browsers. In fact, it actually includes the standard class browser as one of its pages. VA Assist enhances all of the standard browsers including the VisualAge Browser.

The "Mastering ENVY/Developer" Refactoring Browser extensions have been well integrated with the standard browser and VA Assist for many years. They are included in order to provide seamless integration of the Refactoring Browser's refactoring functionality into the standard browsers. With those extensions loaded, there is no need to use the Refactoring Browser UI itself (which I personally find to be rather ugly). As John indicates, we don't plan to enhance the RB UI itself but rather to subsume its functionality into the standard browsers (currently available now via the MED extension).

We are also including the Trailblazer for historical reasons, but have no intention of enhancing it. I view it as a UI experiment that never really worked out. To the extent that it has any unique functionality, we will likely include those functions into the standard (and still the best) browsers. Back when we originally developed VA Assist, I looked into adding the VA Assist enhancements to the Trailblazer, but quickly discovered that it was not very open to enhancement. That said, if anyone wants to take a crack at enhancing it with syntax highlighting, etc., we'd be happy to accept the donation.

As John says, the standard browser will continue to be the primary browsers included in the tool, and we will be focusing all of our browser-related efforts on them.
Eric Clayberg
Software Engineering Manager

Author: "Eclipse Plug-ins"
Eric Clayberg
Posts: 4503
Joined: Tue Sep 30, 2003 6:39 am
Location: Boston, MA USA

Postby cknittel » Mon Feb 12, 2007 7:44 am

Hi John and Eric,

Thank you very much for the detailed information!

I implemented an ugly hack that adds ENVY/QA code formatting to TrailBlazer by modifying the GtTrailBlazer class.

It works most of the time ;-) (if ENVY/QA is loaded...).

Maybe you can use it as a starting point ...

Best regards,

Code: Select all
!GtTrailBlazer publicMethods !

   " "

   ^super defaultTextMenu
      add: #format label: 'Format Text' enable: [ self selectedMethod notNil. ] for: self;


   "Format requested."
   | text mode objects result |

   text := self textArea value.
   mode := #Source.
   objects := Array with: self selectedMethod methodClass with: text with: mode with: self textArea.

   result := CfUserInterface formatFrom: self text: objects.

   (result isNil or: [ result == text or: [ result = text. ]. ]) ifTrue: [ ^self ].

   self sqaUpdateTextWidget: self textArea with: result mode: mode.!


   "Answer the inherited pull down menu of operations for
    a generic text widget.  Change the title to GtTrlBlz579 before
    answering the menu."

   ^super menuEdit
      add: #highlightNext
         label: GtTrlBlz346
         enable: [ self isHighlighting. ]
         for: self
         accelerator: (CwAccelerator mask: ControlMask keysym: XKH)
         acceleratorText: GtTrlBlz241;
      add: #save
         label: GtTrlBlz546
         enable: [ self allowSave. ]
         for: self
         accelerator: (CwAccelerator mask: ControlMask keysym: XKS)
         acceleratorText: GtTrlBlz245;
      add: #revert
         label: GtTrlBlz540
         enable: [ self allowSave. ]
         for: self
         accelerator: (CwAccelerator mask: ControlMask keysym: XKR)
         acceleratorText: GtTrlBlz244;
      add: #format
         label: 'Format'
         enable: [ self selectedMethod notNil. ]
         for: self
         accelerator: (CwAccelerator mask: ControlMask keysym: XKW)
         acceleratorText: 'Ctrl+W';
      yourself! !
Posts: 27
Joined: Tue Nov 28, 2006 6:10 am
Location: Vienna - Austria

Return to VA Smalltalk 7.0, 7.5 & 8.0

Who is online

Users browsing this forum: No registered users and 1 guest