aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
...
* | | fix(compatibility): don't drop empty lines when resizing (#148)Aram Drevekenin2021-01-19
| | |
* | | Update GOVERNANCE.mdHenil Dedania2021-01-17
|/ /
* | fix(compatibility): clear characters should preserve current styling (#143)Aram Drevekenin2021-01-14
| | | | | | | | | | * fix(compatibility): clear characters should preserve current styling * style(fmt): rustfmt
* | feat(ui): added a help / status bar for keybindings and modesBrooks Rady2021-01-13
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To implement this status bar as a plugin (https://github.com/mosaic-org/status-bar/blob/master/src/main.rs), the following bits of infrastructure were changed: - Layouts can now have an exact size constraint (1 row high, for example) - Unconstrained blocks in a layout are now grown to fill the remaining space - Default plugins and layouts are now stored in an OS-dependent data directory. The initial installation of these assets is done a build-time via `build.rs` - All new tabs are created with a user-configurable default layout, unless provided with a different layout - Plugins can now capture *all* key presses detected by Mosaic via `global_handle_key()` - Plugins can now control whether or not they are selectable via `set_selectable()` - Plugins can now fetch a vector of help-strings from Mosaic, which is currently being used to display helpful keybindings, via `get_help()` - Also patched up all remaining compiler warnings and 23 of the 25 clippy lints on main
| * | Patched a width miscalculation in the status bar pluginBrooks J Rady2021-01-12
| | |
| * | Fixed 23 clippy lints and warningsBrooks J Rady2021-01-12
| | |
| * | Merge branch 'main' into wasm-status-barBrooks J Rady2021-01-12
| |\ \ | |/ / |/| |
* | | refactor(terminal-pane): simplify Scroll into Grid (#137)Aram Drevekenin2021-01-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * refactor(grid): move from scroll to grid (prototype with tests passing) * refactor(grid): remove scrollbuffer * fix(terminal): do not overflow cursor y position when resizing * refactor(file-structure): move grid to different file * fix(compatibility): vim horizontal resize * fix(compatibility): various fixes for cursor movement * style(grid): remove unused imports * style(grid): remove debugging * style(fmt): rustfmt * style(fmt): rustfmt
| * | Finish implementing default layoutsBrooks J Rady2021-01-12
| | |
| * | Install default layouts and plugins at build-timeBrooks J Rady2021-01-11
| | |
| * | Fully functional status bar!Brooks J Rady2021-01-11
| | |
| * | Added a get_help function to the plugin APIBrooks J Rady2021-01-11
| | |
| * | Added the set_selectable plugin API functionBrooks J Rady2021-01-11
| | |
| * | Add a plugin callback for global keypressesBrooks J Rady2021-01-10
| | |
| * | Add support for layouts with parts of a fixed or unspecified sizeBrooks J Rady2021-01-10
|/ /
| * Add some message types for server-client commsKyle2021-01-17
|/
* feat(infra): initial plugin systemBrooks Rady2021-01-08
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Added the ability to load and keep track of several plugins at once - Removed `wasm-wip` feature flag, enabling plugins in all builds - `split_space` now returns a tuple with the `part_position_and_size` (as before) plus a cloned version of the part, so plugins and terminals can be distinguished by its users - Added a `Draw` instruction for rendering plugins when asked to by Mosaic - Added a new `PluginPane`, implementing `Pane` for plugins! - Replaced RawFd as a pane-identifier with the `PaneId` enum in most places - `change_size` -> `change_pos_and_size`, with the functionality updated to fit the new name - `buffer_as_vte_output` -> `render` - `pid()` on the `Pane` trait now returns a `PaneId` - Changed lots of functions in `tab.rs` to be more pane oriented, renaming some to remove the `terminal` and switching to `PaneId`s - splitting functions in `tab.rs` now correctly update the positions of returned fragments - Used `PaneId`'s as a replacement for `PaneKind` in the tab `BTreeMap` - Removed `get_rows` and `get_columns` from the `Pane` trait - Layouts can now create plugin panes! - Changed lots of the `active_terminal` stuff in `tab.rs` to work with all panes - Changed the `Tab` `render` function, so that common requirements are moved there and out of the `Pane::render()` methods - Added a `shared.rs` to `utils` with a couple of useful functions - We can now accept input and pass it to plugins via serialised JSON - Trigger a screen render after handling input meant for a plugin - Allow plugins to be properly closed - Allow plugin panes to be split (opening a new terminal) - Allow plugin API functions to send messages on the PTY bus - Added the API functionality needed for a plugin to open a file in a new pane - No more compiler warnings! - Fixed 53 clippy lints!
| * Don't forget to tell split terminals that they have a new size!Brooks J Rady2021-01-08
| |
| * Change the layout to only one pluginBrooks J Rady2021-01-07
| |
| * Merge in changes from main and fix a clippy lintBrooks J Rady2021-01-07
| |\ | |/ |/|
* | chore(cleanup): Clean up project root (#135)Henil Dedania2021-01-07
|\ \ | | | | | | * Clean up the root of the project
| * | clean up root of projecthenil2021-01-07
|/ /
* | feat(completions): Add shell completions files (#128)Henil Dedania2021-01-07
| | | | | | | | | | | | | | * Add shell completions and output files to `assets/completions` * Rename files and struct name * Update tests to take into account new changes
| * Finished plugin system! (Added file opening)Brooks J Rady2021-01-07
| |
| * Fix the plugin splitting bugsBrooks J Rady2021-01-07
| |
| * Make it possible to cleanly close pluginsBrooks J Rady2021-01-07
| |
| * Get rid of BuiltIn Pane (for now) + style tweakBrooks J Rady2021-01-07
| |
| * Working input response!Brooks J Rady2021-01-07
| |
| * Add LTO and use a termion fork with serde supportBrooks J Rady2021-01-07
| |
| * Massively optimise the strider WASM fileBrooks J Rady2021-01-07
| |
| * Merge branch 'wasm-launchable' into wasm-inputBrooks J Rady2021-01-07
| |\
| | * Might as well use the From traitBrooks J Rady2021-01-07
| | |
| | * Fix a positioning bugBrooks J Rady2021-01-07
| | |
| * | Loop through input keysBrooks J Rady2021-01-07
| | |
| * | Parse bytes into keys with TermionBrooks J Rady2021-01-07
| |/
| * Merge branch 'main' into wasm-launchableBrooks J Rady2021-01-06
| |\ | |/ |/|
* | Merge pull request #131 from mosaic-org/mosaic#130Denis Maximov2021-01-06
|\ \ | | | | | | fix: fixes #130 by adding overflowing_sub
| * | wip: added a testdenis2021-01-06
| | |
| * | chore: fmtdenis2021-01-05
| | |
| * | fix: fixes #130 by adding overflowing_subdenis2021-01-05
| | |
| | * Add a FIXME for a clippy lintBrooks J Rady2021-01-06
| | |
| | * Get clipped, foolBrooks J Rady2021-01-06
| | |
| | * A module rename to please clippyBrooks J Rady2021-01-06
| | |
| | * Warnings purged and some FIXME's addressedBrooks J Rady2021-01-06
| | |
| | * Fix early quit with pluginsBrooks J Rady2021-01-06
| | |
| | * The RawFd has been slain...Brooks J Rady2021-01-06
| | |
| | * Functional drawing of plugins to the screenBrooks J Rady2021-01-06
| | |
| | * Very nearly workingBrooks J Rady2021-01-06
| | |
| | * Also borkenBrooks J Rady2021-01-06
| | |
| | * fix(render): properly render plugin borders and contentAram Drevekenin2021-01-06
| | |