0.1.x
This is meant to be labeled Release ... I digress. 0.1.x will demonstrate basic functionality of Olive. With this will also come a few choice extensions and way to customize such things. As of right now, here is a list of things we need to get there...
- More cell controls; right now there is new, evaluate, and delete -- new needs to be fixed and I need to work a better append system into toolips session.
- Settings overhaul. Many settings will be stored inside of the
Project.tomlfile, and I need to create a loader/saver for that and have such things load into theOliveCoreappropriately on startup. - I would like to be able to add two windows.
- There needs to be an expansion of tabs.
- The start/create functions all need to be worked appropriately to serve things correctly.
- Custom (UI) directories for home, wd, and things of that nature.
- The file cells for the files you are working on can go in the top left of the top-bar.
- A more luxurious interface for working with components of a topbar.
- Syntax highlighting (it's a nightmare)
- Completion of IPyRW (this is really close, read is essentially done I just need to mostly just test it and add write -- the easier of the two. Another thing that might be needed is to
- Pkg/environment cells -- both controls for using
]much like in the REPL and controls for a larger cell that controls the environment. - The file menu
- Build function for
Cell{:dir}, which will make cells for a given directory and then be able to set the children along with having a bumper to go up. All the while this is of course. - Settings panel
- Progress
This is a lot, but in the grand scope of things isn't too much work -- there are still a lot of small things.
updated list ...
- complete
setupand tutorial, all that jazz - complete other cell bindings
- complete
filemenu - create
olive-settingsmenu - create
TOMLsettings loader - SYNTAX HIGHLIGHTING
- put project tabs into topbar, allowing for more than window to be opened at a thyme. If we would like to have two windows at once be possible, we will need to instead put each cell into a window with the project name, and pass the project name in the
buildfunctions. For now, this is what we have.... This might be a change going forward, as it is not on the target list for0.1.0 - more animations, polish
- new build function for Olive home directory
- DOCS
- dir
buildfunction - new files
-
[IPy](https://github.com/ChifiSource/IPy.jl)save (should be pretty easy)
- ~~complete setup and tutorial, all that jazz~~
- ~~complete other cell bindings~~ - note, stilll need save bindings.
- ~~complete filemenu~~, somewhat complete, need to build alternate
Cell{:dir}build function that takes strings for sub-directories (it only works for one directory level) - create olive-settings menu
- create TOML settings loader
- SYNTAX HIGHLIGHTING
- put project tabs into topbar, allowing for more than window to be opened at a thyme. If we would like to have two windows at once be possible, we will need to instead put each cell into a window with the project name, and pass the project name in the build functions. For now, this is what we have.... This might be a change going forward, as it is not on the target list for 0.1.0 more animations, polish
- new build function for Olive home directory
- DOCS
- ~~dir build function~~
- ~~IPy save (should be pretty easy~~ This one was actually done when I wrote this -- I didn't even realize I had already wrote it.
So...
- settings menu
- tabs
- syntax highlighter
- TOML settings loader
- TOML project loader
- custom build function for olive home
- for setup, we need to create a source dir file that will store the home directory if it is not at the standard
homedir - bring image data out of memory and into source dir files
- multi-window management (partial implementation already done)
- finish cell design (partial implementation, once again)
- finish
dirbuildfunction with new arguments for sub-directories of sub-directories (i'm crazy) - fix cell as string bug ...
- fix cell rebuild bug (actions not being binded on rebuilt cells, odd considering it happens with added cells. E.g. This does not work when we come back from a Pkg repl cell)
- finish Pkg, other REPL cells
- dep cells at the top of files, letting one know both environment and dependencies of project.
oh, and
- all
style!calls need to be exported to theolivesheet, in order to make such styles a lot more easily mutable with theStylesextension, or otherwise :)
- ~~settings menu~~
- ~~tabs~~ (not fully implemented)
- syntax highlighter
- TOML settings loader
- TOML project loader
- custom build function for olive home
- or setup, we need to create a source dir file that will store the home directory if it is not at the standard homedir
- bring image data out of memory and into source dir files
- multi-window management (partial implementation already done)
- ~~finish cell design (partial implementation, once again)~~ They're beautiful!
- ~~finish dir build function with new arguments for sub-directories of sub-directories (i'm crazy)~~ actually I used a better technique with
Directory{:subdir}In your face past emmy! - ~~fix cell as string bug ...~~ BOOM
- ~~fix cell rebuild bug (actions not being binded on rebuilt cells, odd considering it happens with added cells. E.g. This does not work when we come back from a Pkg repl cell)~~ BOOM
- finish Pkg, other REPL cells
- dep cells at the top of files, letting one know both environment and dependencies of project.
- syntax highlighter
- TOML settings loader
- TOML project loader
- custom build function for olive home
- for setup, we need to create a source dir file that will store the home directory if it is not at the standard homedir
- bring image data out of memory and into source dir files
- multi-window management (partial implementation already done)
- finish Pkg, other REPL cells
- dep cells at the top of files, letting one know both environment and dependencies of project.
- tab menus
- dir file options
- docs
- styles in stylesheet
This is about it, but of course there are more smaller things which I will do. All in all, we're getting real close to a release on this :)
oh,
- dir permissions
- authentication keys
those are smaller easier things, not worried about them as much. ^.^ I think that should be about it...
- syntax highlighter
- ~~TOML settings loader~~
- TOML project loader
- custom build function for olive home
- ~~for setup, we need to create a source dir file that will store the home directory if it is not at the standard homedir~~
- bring image data out of memory and into source dir files
- ~~multi-window management (partial implementation already done)~~
- finish Pkg, other REPL cells
- dep cells at the top of files, letting one know both environment and dependencies of project.
- tab menus
- dir file options partial implementation
- dir permissions
- authentication keys
- syntax highlighter
- TOML project loader
- custom build function for olive home
- finish Pkg, other REPL cells
- dep cells at the top of files, letting one know both environment and dependencies of project.
- tab menus
- dir file options partial implementation
- dir permissions
- authentication keys
We're so close... I will be registering Olive 0.0.9 here in (probably) less than a week, really depends on how challenging syntax highlighting ends up being with my next attempt. For some background, I have tried like 4 different techniques for this, some of them better than others -- some just complicated things a lot more than I liked. That being said, this is not too far off.
- syntax highlighter
- TOML project loader
- custom build function for olive home
- finish Pkg, other REPL cells
- dep**/module** cells at the top of files, letting one know both environment and dependencies of project.
- tab menus
- ~~dir file options~~
- dir permissions
- authentication keys
-
IPy also needs
read_jlcellscompleted -- these are post-saveIPycells which preserve output. This will be pretty easy to do, so no worries :)
- ~~IPy also needs read_jlcells completed -- these are post-save IPy cells which preserve output. This will be pretty easy to do, so no worries :)~~ Did this last night 🥲😮💨
- syntax highlighter
- TOML project loader
- custom build function for olive home
- finish Pkg, other REPL cells
- dep**/module** cells at the top of files, letting one know both environment and dependencies of project.
- ~~tab menus~~ missing
save asandrun all - ~~dir file options~~
- dir permissions
- authentication keys
- ~~syntax highlighter~~
Given the design of the new syntax highlighter, we can just use the regular cell input text! This means that parseerrors are going to soon be a thing of the past, as well -- so long as the file actually parses correctly! Yay! Aside from this, the highlighter works pretty flawlessly, so that's great news!
- TOML project loader
- custom build function for olive home
- finish Pkg, other REPL cells
- dep**/module** cells at the top of files, letting one know both environment and dependencies of project.
- tab menus missing save as and run all
- dir permissions
- authentication keys
- TOML project loader
- custom build function for olive home
- finish Pkg, other REPL cells partial implementation -- semi-broken help cells for some reason (they break the entire project), no commands yet for the Pkg cells -- they just exist. Still need to add shell and Olive cells. Also need to make
shellcells only activate for those with permissions to use them... This will go along with generally creating access and all of that, something I will be diving into soon. - dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with
modulein them without getting errors :) - tab menus missing save as and run all - this is what I will probably be doing next.
- dir permissions
- authentication keys
- on file save, I need like a
olive_save(uri::String, ::Cell{:jl}, cells::Vector{Cell{<:Any}})function... The reason why is pretty obvious; different save functions for different types of files. This will also be another easy implementation, just need to do it!
- update Olive display funcs
oh!! also
-
new_cellin project tab... Should append a new cell creator that scans for methods that exist to build cells inside of such a context.
- TOML project loader
- custom build function for olive home
- ~~finish Pkg, other REPL cells partial implementation -- semi-broken help cells for some reason (they break the entire project), no commands yet for the Pkg cells -- they just exist. Still need to add shell and Olive cells. Also need to make shell cells only activate for those with permissions to use them... This will go along with generally creating access and all of that, something I will be diving into soon.~~
- dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
- tab menus missing save as and run all - this is what I will probably be doing next.
- dir permissions
- authentication keys
- on file save, I need like a olive_save(uri::String, ::Cell{:jl}, cells::Vector{Cell{<:Any}}) function... The reason why is pretty obvious; different save functions for different types of files. This will also be another easy implementation, just need to do it!
- update Olive display funcs
I got a lot more than just this done today. Three big features are missing for 0.0.9 release;
- Directory permissions/auth keys (quick and easy to do don't worry)
- new cell creator
- save as
- run all control
- namebox in setup
- icons/olive defaults in setup
other than this, any other improvements can wait to make it into the final version.
this is in addition to expanding with olive_save, an update to olive display, and updating Pkg cells.
All in all, we are looking at less than a week, that is for certain.
Also wanted to note ^-^ IPy is in the process of registration :)
- ~~on file save, I need like a olive_save(uri::String, ::Cell{:jl}, cells::Vector{Cell{<:Any}}) function... The reason why is pretty obvious; different save functions for different types of files. This will also be another easy implementation, just need to do it!~~
another one knocked out :)
- TOML project loader
- custom build function for olive home
- finish Pkg, other REPL cells partial implementation -- still need
oliveandshellcells :) - dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
- tab menus missing save as and ~~run all - this is what I will probably be doing next.~~
- dir permissions
- authentication keys
- update Olive display funcs
- Directory permissions/auth keys (quick and easy to do don't worry)
- ~~new cell creator~~
- save as
- ~~run all control~~
- namebox in setup
- icons/olive defaults in setup
we're so close! Olive looks awesome!!

- TOML project loader
- ~~custom build function for olive home~~
- finish Pkg, other REPL cells partial implementation -- still need olive and shell cells :)
- dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
- tab menus missing save as (needs to open project explorer dir :o)
- dir permissions
- authentication keys
- update Olive display funcs
- Directory permissions/auth keys (quick and easy to do don't worry)
- new cell creator
- save as
- run all control
- namebox in setup
- icons/olive defaults in setup
- ~~TOML project loader~~
- finish Pkg, other REPL cells partial implementation -- still need olive and shell cells :)
- dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
- tab menus missing save as (needs to open project explorer dir :o)
- update Olive display funcs
- Directory permissions/auth keys (quick and easy to do don't worry)
- ~~new cell creator~~
- save as
- ~~run all control~~
- namebox in setup
- icons/olive defaults in setup
I am still going, just a lot of actual OLIVE work is mainly focused on me now building my own syntax highlighter. I really had to build my own in order for it to work in this context.
There is still a lot to do, I am going to go ahead and get this to 0.0.8 standards, release it, then I will be opening a new issue for each upgrade I plan to make.
I'm going to open a separate issue for the 0.0.8 release viva 0.1.x!
- finish Pkg, other REPL cells partial implementation -- still need olive and shell cells :) dep /module cells at the top of files, letting one know both environment and dependencies of project. This will just allow one to run cells with module in them without getting errors :)
- tab menus missing save as (needs to open project explorer dir :o)
- update Olive display funcs
- ~~Directory permissions/auth keys (quick and easy to do don't worry)~~
- save as
- ~~namebox in setup~~
- icons/olive defaults in setup