Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/seandenigris/living-code
How do we make the IDE more like real life - live, direct, and fun!
https://github.com/seandenigris/living-code
dynabook ide pharo smalltalk
Last synced: about 2 months ago
JSON representation
How do we make the IDE more like real life - live, direct, and fun!
- Host: GitHub
- URL: https://github.com/seandenigris/living-code
- Owner: seandenigris
- License: mit
- Created: 2014-01-31T22:34:03.000Z (almost 11 years ago)
- Default Branch: master
- Last Pushed: 2021-07-30T17:01:40.000Z (over 3 years ago)
- Last Synced: 2024-10-24T02:16:01.772Z (2 months ago)
- Topics: dynabook, ide, pharo, smalltalk
- Language: Smalltalk
- Size: 134 KB
- Stars: 8
- Watchers: 4
- Forks: 0
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
LivingCode
==========How do we make the IDE more like real life - live, direct, and fun!
Installation
------------------[GToolkit](https://gtoolkit.com) is the reference platform, but the goal is for it to also work in the latest Pharo release
```smalltalk
[
EpMonitor current disable.
[ Metacello new
baseline: 'LivingCode';
repository: 'github://seandenigris/Living-Code/repository';
"onConflict: [ :ex | ex allow ];"
load ] ensure: [ EpMonitor current enable ].
] fork.
```
Quick Start Tutorial
------------------#### Opening a New World
From the World Menu, click "Open Self World"
Things to note:
- The world is infinite (see below for how to scroll)
- Currently, due to Morphic limitations, zooming is not available; but this is very much desired!#### Populating the World
1. In the Self window, in the editor bar near the top, type an expression
2. Accept with either Cmd+s or [Enter]
An object, very much like an Outliner in the Self Language, will appear in your hand. Place it in the world wherever you want#### Scrolling in the World
Just use the mouse wheel, or click and drag anywhere on the World's background#### Navigating a Complex World
Since grokking a complex world can be difficult, there is a RadarMorph, inspired by Self's RadarView.
Try the following:1. Accept in the window's evaluating editor: ``RadarMorph new extent: ([email protected]); openInHand``
2. Place the RadarMorph in one of the corners of the world
3. You now have a warp speed option for scrolling - click and drag in the RadarMorph. Compare the regular scrolling described above and you'll see that it is at a much finer levelFeature Map
------------------#### Creating new types
In self, the equivalent of creating a new instance is to copy a prototype e.g. "morph copy" ~ "Morph new". One key difference is that in most of the examples, you continue to customize the behavior, which is not a built-in way to deal with Smalltalk instances. So, we start with an equivalent of "Morph subclass: #MyMorphSubclass". In the future, we may make a real prototyping facility, but this will get the ball rolling.#### Classifying globals
In self, one would add a slot to globals under an appropriate category and then connect the slot to the new prototype. As a Smalltalk equivalent, we include a "package" slot in all outliners. So one can drag and drop the package slot handle onto an RPackage.