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.
-
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()
Warning: make sure to backup or commit your work before editing files, as this editor is still somewhat experimental.
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.
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 ?
.
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.
Ctrl+§
Switch focus between editor and console.
In the editor:
-
Ctrl+Shift+D
when the cursor is above a word will show you some info on it. -
Ctrl+Click
on a method will jump to its first definition. -
Ctrl+s
Save file. -
Ctrl+n
New tab. -
Ctrl+w
Close current tab. -
Ctrl+c
Copy. -
Ctrl+v
Paste. -
Ctrl+x
Cut. -
Ctrl+k
Delete line. -
Ctrl+d
Duplicate line. -
Ctrl+/
Toggle comment. -
Ctrl+g
Go to line. -
Alt+e
Move cursor to line end. -
Alt+a
Move cursor to line start. -
Ctrl+z
Undo. -
Ctrl+Shift+z
Redo. -
Ctrl+f
Search. -
Ctrl+a
Select all. -
F3
Autocompletion using the console history as a provider.
In the console:
Alt+x
Interrupt current task.Ctrl+k
Clear console.
See Actions.jl for all actions.
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.
A project is a path and a set of files. You can open and create projects in the project panel on the left.
To gain space you can hide elements of the UI, e.g.:
GtkIDE.visible(GtkIDE.main_window.menubar,false)
- Prints and error outputs are a bit buggy.
- No stdin.
- Evaluating in sub-modules doesn't work.
- Random crashes.
- Too many issues to list.