GtkIDE.jl
GtkIDE.jl copied to clipboard
A Gtk based IDE for Julia
GtkIDE.jl
GtkIDE.jl is a Gtk-based IDE for Julia 1.0 written in Julia. It includes a terminal, a plotting window and an editor.

Demo video.
Installation
-
Install the dependencies :
add Cairo add Gadfly add https://github.com/jonathanBieler/GtkExtensions.jl.git add https://github.com/jonathanBieler/JuliaWordsUtils.jl.git add https://github.com/jonathanBieler/GtkTextUtils.jl.git add https://github.com/jonathanBieler/RemoteGtkREPL.jl.git add https://github.com/jonathanBieler/GtkREPL.jl.git add https://github.com/jonathanBieler/GtkIDE.jl.git -
Use the package and run the application
using GtkIDE GtkIDE.run()
Usage
Warning: make sure to backup or commit your work before editing files, as this editor is still somewhat experimental.
Opening files
Use cd, ls, pwd to navigate in the console, and type edit filename to open a file.
If filename does not exists it will be created instead. You can also use the files panel on the left.
See ConsoleCommands.jl for a list of console commands.
Running code
Each console is associated with a Julia worker. The first worker runs GtkIDE, so running computations that use all the CPU on it will freeze the application. Additional workers/consoles can be via the right-click activated menu.
F5: Include the current fileCtrl+Return: Run selected code, or run code between two `## ' (like Matlab's code sections).Ctrl+Shift+Return: Run selected code, or run current line.
The evaluation context of each console can be changed with the ConsoleCommand evalin Module.
The current context is printed via evalin ?.
Making plots
Currently interactive plots are available via Immerse.jl.
You can create new figures by typing figure() into the console (see Immerse documentation).
Immerse uses Gadfly.jl to create plots.
Since displaying images is slow in Gadly there is also an Image widget available.
Use image(randexp(500,500)) to display a matrix. Zooming on images is handled by Immerse.
Press r to reset the zoom.
Shortcuts
Ctrl+§Switch focus between editor and console.
In the editor:
-
Ctrl+Shift+Dwhen the cursor is above a word will show you some info on it. -
Ctrl+Clickon a method will jump to its first definition. -
Ctrl+sSave file. -
Ctrl+nNew tab. -
Ctrl+wClose current tab. -
Ctrl+cCopy. -
Ctrl+vPaste. -
Ctrl+xCut. -
Ctrl+kDelete line. -
Ctrl+dDuplicate line. -
Ctrl+/Toggle comment. -
Ctrl+gGo to line. -
Alt+eMove cursor to line end. -
Alt+aMove cursor to line start. -
Ctrl+zUndo. -
Ctrl+Shift+zRedo. -
Ctrl+fSearch. -
Ctrl+aSelect all. -
F3Autocompletion using the console history as a provider.
In the console:
Alt+xInterrupt current task.Ctrl+kClear console.
See Actions.jl for all actions.
Refactoring
You can create a function for a selected piece of code by pressing Ctrl+e and typing the name of the function. GtkIDE will try to guess
the parameters but will fail to do so in some situations.
Projects
A project is a path and a set of files. You can open and create projects in the project panel on the left.
Misc.
To gain space you can hide elements of the UI, e.g.:
GtkIDE.visible(GtkIDE.main_window.menubar,false)
Issues
- Prints and error outputs are a bit buggy.
- No stdin.
- Evaluating in sub-modules doesn't work.
- Random crashes.
- Too many issues to list.