GithubHelp home page GithubHelp logo

pharo-ide / calypso Goto Github PK

View Code? Open in Web Editor NEW
38.0 11.0 21.0 5.22 MB

Pharo system browser

Home Page: http://dionisiydk.blogspot.com/2017/07/calypso-update-many-improvements-and.html

License: MIT License

Smalltalk 88.50% HTML 11.50%
pharo systembrowser ide

calypso's Introduction

Calypso

Build Status

The Pharo system browser (now live in Pharo 7)

Consists of:

  • new navigation model
  • fast table for UI
  • tabs toolbar instead of single source code panel
    • separate tools in tabs to create/edit methods/classes
  • explicit commands instead of duplicated menu and shortcuts
  • extendable by plugins
  • suitable for remote scenario
  • new features:
    • method group view instead of protocols view
      • "dynamic protocols"
      • based on method tags as symbols
      • support multiple tags per method
      • not required star convention for class extension
    • package view is based on class groups
      • "dynamic protocols" for classes
      • based on class tags as symbols
      • support multiple tags per class
    • visibility option for inherited methods
    • methods inherited from traits are not shown by default
    • variable view as special mode for method group view.
    • and more

Contribution (Pharo 7 and higher)

Use dev branch of Calypso for contribution:

Metacello new
  baseline: 'Calypso';
  repository: 'github://pharo-ide/Calypso:dev/src';
  load

Pharo 6 installation

To install Calypso in Pharo 6 use following script (which disables Iceberg intergation):

Iceberg enableMetacelloIntegration: false.
Metacello new
  baseline: 'Calypso';
  repository: 'github://pharo-ide/Calypso:pharo6';
  load

To make Calypso default toolset evaluate:

ClyBrowserMorph beAllDefault

And to open browser evaluate:

ClyFullBrowser open.

Or use World menu Calypso item

Documentation

If you want to learn more about the architecture of Calypso, refer to the the Pharo Infrascture mini booklet as well as the ClassAnnotation project.

The classes in the Calypso package also have some high level documentation as well.

Problems

If you will find many processes hanging in the image it can be caused by some issue of critic plugin implementation. Some people report it in the past. It should be fixed now but there is always possibility that fix is not complete.

Following line should be enough to disable critic method group with all related computation. It is the main reason of that kind of problems:

ClyCriticEnvironmentPlugin disableMethodGroup.

It is not full critic disable. If it not helps then turn off it completely:

ClyCriticBrowserPlugin disable.
ClyCriticEnvironmentPlugin disable.
ClyNavigationEnvironment reset.

And please report this problem on issue tracker or with direct mail or Pharo mailing list.

calypso's People

Contributors

astares avatar dionisiydk avatar ducasse avatar estebanlm avatar fortizpenaloza avatar guillep avatar jecisc avatar macta avatar oliveiraallex avatar pavel-krivanek avatar peteruhnak avatar seandenigris avatar stephaneggermont avatar tesonep avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

calypso's Issues

Toolbar: The ui should tell which radio are linked

Trying to use Calypso I see that "Flat classes" and "Hier." are linked together. But there is no indication that they are not linked to "Inst. side".

The UI should give this information. Maybe with separators?

Protocol pane, inherited methods, awkward to select multiple superclasses

In 60334,

  1. Select Collections-Streams > MultiByteBinaryOrTextStream
  2. Expand "inherited methods"
    To show all inherited methods up from PositionableStream
    you need to expand "inherited methods" several times.

Options:
A. Leave "inherited methods" list open to allow multiple selections
B. Presumably the common case is not cherry picking superclasses, but picking all superclasses to a certain point in hierarchy. So maybe have a shift-click that selects all classes down to PositionableStream.

waitReadyMorphFor: missing

Hi!
I just had a look into this package and what I saw was a great upgrade on the Systems Browser! Great!
However, I had trouble to load the code into the most current Pharo6 image.

The mothod "waitReadyMorphFor:" is missing....

One notice on the side. It would be a great and an additional improvement if one would be presented the content of Class Variables in the 4th column (methods list view) upon selection in the 3rd column (categories list view). Like an inspector view...

Extension protocols not highlighted when method selected

Selecting... Collections-Streams > ReadWriteStream > inherited methods
asBinaryOrTextStream(PositionableStream) is shown normal
asZLibReadStream(PositionableStream) is shown grey
Can you explain?

It's easy. Class extension is shown with grey and #asZLibReadStream is from
Compression package.
Actually this logic is a bit different. If method not belongs to selected
package (from package view) then it will be shown with grey.
It is current logic of Nautilus.

Okay. That should have been obvious. So in trying to work out why my mind faltered, I think it may be because Nautlius provides visual feedback by light-highlighting the extension package (i.e. Compression) where Calypso does not - it only highlights real protocols.

Better updating selections after tree expansion

Try expand inherited methods group then select Object items and you will see all methods of Object.
Now if you collapse inherited group method panel will be not changed. It will be still show inherited methods.
Also expanding/collapsing break position of highlighted table rows

Add navigation history

It is very helpful to be able to step back and forth in history of movements. Without it Calypso is not very usable.

Protocol pane scroll bar doesn't position properly when items added

In 60334,

  1. ClySystemBrowser open.
  2. Select Collections-Streams > PositionableStream
  3. Select inherited methods > Object
  4. Scroll down to "extensions" at the bottom of list and expand it
    ==> scroll bar resizes okay, but it doesn't reposition. So it looks like you are already at the bottom of the list, when the bottom of list has moved with added items.

Is this maybe a FastTable issue?

Installation from Gofer asks to resolve dependencies in ClassTagAnnouncement and FTSubstringFilter

While installing from Gofer I got this warnings:

This package depends on the following classes:
  ClassTagAnnouncement
You must resolve these dependencies before you will be able to load these definitions: 
  ClassTagAnnouncement>>#fixEnvironmentContent:
This package depends on the following classes:
  FTSubstringFilter
You must resolve these dependencies before you will be able to load these definitions: 
  FTSubstringFilter>>#asClyItemFilter

and, of course, launching doesn't work without those dependencies installed. I'm working on Pharo 5. (Latest update: #50761)

Implement hierarchical class/method tags

New browser support multiple tags.
It would be nice to build and show tags hierarchically.
For example by simple convention #'accessing-private', #'accessing-public' browser could show tree with accessing as parent and private and public as children

Tooltip for the inherited methods

It is not obvious to know the exact effect of the check box and (T) icons at the right of the 'inherited method'.
Add contextualized tooltips, newbies will really appreciate it.
Nice work.

Review again how BrowserTool's implemented

Now I not completely happy with names in tool model and how model is defined:
Now model defined as #managedItems variables which is list of DataSourceItem's. It needs to be rethinking.

Implement add new class command

With ConfigurationOfCalypso-DenisKudryashov.8
in packages pane, right-click > Add New Package "AAAA"
in empty classes pane, right-click > Add New Class
==> Instance of ClyStandardBrowserCommands did not understand #addNewClass

Implement nautilus method icons with Calypso way

Now special ClyNautilusBrowserPlugin is introduced to push method icons from Nautilus to Calypso.
To remove this plugin and dependency from Nautilus all this features should be implemented in terms of Calypso.
And at the end this plugins should be removed

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.