Skip to content
Jakob Reschke edited this page Dec 9, 2015 · 12 revisions

How do I open the pane on the left again?

The pane on the left is called VivideLight. If you have closed it you can reopen it by executing: VivideLight open.

How do I put my tool in the bookmarks section of VivideLight?

Just get a copy of your tool by dragging form the + icon at the top left corner of the tool's window and drop it in the bookmarks section.

How do I manage my scripts with a version control system?

Profile information can be serialized into a class, called archive, to be committed to a version control system. This information includes all scripts. The following steps explain how to store scripts into a subclass of ViScriptArchive:

  1. Be sure to have added all your scripts to your profile. Bookmarks and open tools will not be considered. If needed, add your script(s) to your profile: ViProfile active addScript: myScript.
  2. If ViProfile active archive does not return a class located in your project namespace, you can set the archive class with ViProfile active createArchiveNamed: 'MyScripts' inCategory: #'MyProject-Scripts'.
  3. Now serialize all scripts in the current profile into that class/archive with ViProfile active serializeIntoArchive.
  4. Finally, you can commit that archive class to your repository.

Loading scripts from an archive works with MyScripts merge, where MyScriptsis a subclass of ViScriptArchive. Do not forget to checkout the most recent version of your script archive before merging.

I have merged a ScriptArchive, but the newly created profile has no bookmarks?

To get the default bookmarks like Workspace, Add class etc. back, activate the new profile and execute the following in a Workspace: ViProfile active initializeBasicBookmarks

The bookmarks might not appear instantly, but only after you switch to another profile and back.

How can I update Vivide?

Metacello does not support updating projects that are already installed. For now, execute this code in a workspace to update Vivide:

{ Metacello new
  baseline: 'Signals';
  repository: 'github://hpi-swa/signals:master/repository'.
Metacello new
  baseline: 'Animations';
  repository: 'github://hpi-swa/animations:master/repository'.
Metacello new
  baseline: 'Widgets';
  repository: 'github://hpi-swa/widgets:master/repository'.
Metacello new
  baseline: 'Vivide';
  repository: 'github://hpi-swa/vivide/repository'. }
do: [ :baseline | baseline get ];
do: [ :baseline | baseline load].
ViScriptArchive mergeAll.

You might need to close Vivide before doing that. Ensure that the currently loaded versions of BaselineOfSignals, BaselineOfAnimations, BaselineOfWidgets, and BaselineOfVivide point to dependent projects that have the same repository URLs as printed here.

Sometimes, the Squeak standard tools are opened instead of Vivide's tools.

After updates in the Squeak environment, the default tool set might have changed. You have to ensure that ToolSet default returns a Vivide tool set:

ToolSet default: ViToolset.

How can I create a class in Vivide?

There are some messages you can send to a behavior such as Object that result in a class being created or updated. The regular system browser shows this code; the bookmarks in an empty profile should include "Add class", which is a block that creates a code snippet containing that code as well:

Object subclass: #NameOfSubclass
	instanceVariableNames: ''
	classVariableNames: ''
	poolDictionaries: ''
	category: 'Uncategorized'

You can modify the (base) class, the name of your (new) subclass, its instance variables, category, etc. Then, you need to select the whole snippet and do-it (i.e. [CMD]+[D]).

Create a class

What is with those drag modifier keys?

Create a class

When dragging objects, you can decide what to do with them on a drop. Usually, environments support holding shift, control, alt, or command keys to modify drag/drop operations. Or combinations of them. This is somewhat limited in Smalltalk environments because the underlying operating system or the virtual machine catches several combinations, making them inaccessible for Vivide.

Thus, simple letter key presses can modify drag operations. As Vivide promotes working with sets of objects, you can hit [s] to script them or [u] to use them as a new input in a pane. Additionally, sending #value to objects seems to be useful from time to time. For example, when dragging block closures that hold plans for constructing objects or when dragging associations that enriched objects with a readable key.

You do not have to hold a letter key. Hitting [Escape] aborts a drag operation.

My question was not listed on this FAQ page!

Please also have a look at the beginner issues.