Jedi IDE
1. Working with the IDE
1.1. Login
1.2. Workspaces
Workspaces are groups of related windows, tools, ... that are activated together. The buttons located at the right-hand side of the Jedi toolbar can be used to switch the active workspace. Jedi comes with the following workspaces installed:- Home
- Text
- Debugger
- Groupware
1.3. Bindings
The following bindings are predefined:- Jazz
- Emacs (basic)
- Mac (todo)
- Windows
1.4. Properties
This window is used to visually edit properties of components. Mainly used by the workbench at the moment.1.5. Preferences
1.6. Getting Help
1.7. Eclipse Glossary
Here is a very informal correspondance between some Eclipse and Jazz concepts where applicable.Eclipse | Jazz |
---|---|
workspace | profile |
feature | package |
project | project |
perspective | workspace |
2. Managing Projects
2.1. Workbench
The workbench is the window used to manage source files.2.2. Project
Projects are workbench entities that contain source files and resources. For every project, Jedi will build a full cross-reference database (its catalog) of every source file in that project. You update your project's catalog either by using the 'Update Catalog' context menu item or through the 'Catalogs Manager' window found in the 'Tools' menu. Once you catalog is up-to-date, you can:- edit a symbol's definitions by using alt-period on it
- list all definitions that reference a certain symbol by pressing ctrl-alt-period on it
- Scheme
- JazzScheme
- CommonLisp
- C
- C++
- Java
- Lua
- Python
- CSS
2.3. Language Specific Project
In addition to plain projects, Jedi supports language specific projects that can be used to build and run code in that language. Two languages are supported at the moment:- Gambit (in development)
- Jazz
2.3.1. Configuration
2.3.2. Building
2.3.3. Testing
2.3.4. Debugging
2.3.5. Running
2.3.6. Gambit Development
2.3.7. Jazz Development
2.4. Catalog
A catalog is a full cross-reference database of a set of source files. Catalogs can be created manually but the easiest way to manage catalogs is through projects as each project automatically creates a catalog of it's source files. Note that a new profile comes with projects for all Jazz packages pre-installed in the workbench. An easy way to update the catalogs of all these projects is through the Catalogs Manager window that can be invoked using Tools / Catalogs / Catalogs Manager. In the catalog manager, if no project is selected, pressing the Update button will update all catalogs. Languages Languages supported at the moment:- CommonLisp
- Scheme
- Jazz
- C (very basic)
- CSS (very basic)
- Java (very basic)
- JavaScript (very basic)
- Lua-Parser (very basic)
- Properties (very basic)
- Python (very basic)
3. Source Code
3.1. Text
3.1.1. Scrolling
3.1.2. Syntax Coloring
3.1.3. Evaluating Code
In a Jazz text, use ctrl-enter to evaluate the current definition. Note that Jazz will need to know to what debuggee to send the code for evaluation. You can right-click on any debuggee in the Processed window and select 'Focus' to focus this debuggee so it will be the one that gets the code evaluations.3.1.4. Cataloging Code
3.1.5. Printing
3.2. Exploring
3.2.1. Chapters
3.2.2. Hierarchy
3.2.3. Find Definitions
3.2.4. Find References
3.2.5. History Navigation
3.2.6. Class Browser
3.3. Searching
3.3.1. Incremental Search
3.3.2. Search
- Multiple search & replace
- Preserve Case
- Textual macros on replace
Shortcut | Description |
---|---|
Alt-W | Toggle Whole Words |
Alt-I | Toggle Ignore Case |
Alt-C | Toggle Preserve Case |
Alt-R | Toggle Play Recording |
3.4. Editing
3.4.1. Navigation
- char
- word
- expression
3.4.2. Clipboard Stack
3.4.3. Mouse Copy
3.4.4. Symbol Completion
3.4.5. Code Tabulation
3.4.6. Macro Recording
3.4.7. Undo / Redo
3.5. Editing Lisp Code
3.5.1. Select Outer Expression
3.5.2. Flash Matching Character
4. Debugging
- debugger
- debuggee
4.1. Debugger
The Jazz debugger is a remote debugger. This means that the debugger will debug one or more remote 'debuggee' that are automatically connected to it via TCP/IP. Note that Jedi also a debuggee that is debugged by itself so that should an error occur inside the IDE, the debugger can be used to debug it. A great advantage of remote debugging is that you are debugging your application exactly as itself with all its features: windows, menus, connections, ports, threads, ... instead of simulating inside the IDE it's various features. With a remote debugger it is even possible to debug a game running remotely on a gaming console. The Jazz kernel supports debugging of Jazz code. But it really is a Gambit debugger and can be used to debug any Gambit code. All you need to do is create a product that will load your Gambit code and then run your product using the Debug command.4.1.1. Terminal
The terminal represent's Gambit console. The terminal name was choose to distinguish it from Jedi's own console.4.1.2. Console
The console is where the debuggee interact with the debugger usually through a read-eval-print loop. Each thread that throws an exception will open it's own console and start a repl at that point. Note that Jedi automatically opens a console when it starts to enable experimenting. Expression entered in that console are evaluation inside the IDE's primordial thread. Beware that if you built Jedi in release safety, Gambit's safe mode is disabled so that code entered in that console can crash the IDE. Evaluation Context Enclosing REPL4.1.3. Processes
4.1.4. Threads
4.1.5. Frames
4.1.6. Detail
4.1.7. Variables
4.1.8. Inspector
4.1.9. View Explorer
4.1.10. Test Functions
4.2. Debuggee
4.2.1. Restart
Jazz supports a concept of restarts similar to CommonLisp. The debugger will automatically propose all restarts when displaying an exception or break point.4.2.2. Crash Handler
5. Profiling
5.1. Profiler
6. Collaborative Work
6.1. Compare Directories
6.2. Compare Files
6.3. Screen Captures
7. Web Development
8. User Preferences
8.1. Launch Parameters
Jedi supports the following launch parameters in addition to the ones supported by the kernel:
Parameter | Description |
---|---|
/profile | automatic profile name used for loggin |
Example: