Commit graph

258 commits

Author SHA1 Message Date
Aram Drevekenin
14783c2b2c
feat(ui): new keybindings and status bar (#160)
* work

* feat(statusbar): new design and keybindings

* fix(ipc): add missing const

* style(fmt): rustfmt

* style(input): remove accidental comment
2021-02-09 17:36:37 +01:00
Henil Dedania
c5370803ac
Merge pull request #158 from mosaic-org/add-files
docs: Add initial issue template and CONTRIBUTING.md
2021-02-05 21:18:11 +05:30
henil
0508bf90d3 chore(cleanup): Remove .vscode 2021-02-05 21:15:40 +05:30
henil
b1006b9f4d Follow Conventional commits where necessary 2021-02-05 21:03:24 +05:30
Kyle Sutherland-Cash
b6fb330da3
refactor(input): hotkeys (#132)
* Initial definitions and thoughts for hotkeys

* Actually document InputKey properly

* Add a to string function for input keys

* Define keybinds and actions; restructure

* Implement hash and start on defining key bindings

* Derive Serialize for input keys

* Store the key strings as tuples for two-way mapping

* Some string to key functions

* Use termion's Key definition and implement action dispatch

* Fix some borrow-checker errors

* Missing keybind and command mode switching

* Fix incorrect handling of spawn terminal command

* fix(plugins): work with new input - tests not passing

* fix(infra): stabilize tests and properly close pty sessions

* style(fmt): rustfmt

Co-authored-by: Brooks J Rady <b.j.rady@gmail.com>
Co-authored-by: Aram Drevekenin <aram@poor.dev>
2021-02-05 11:28:34 +01:00
henil
81989ede17 change heading level 2021-02-04 18:51:00 +05:30
henil
0854461519 fix links 2021-02-04 18:48:47 +05:30
henil
c906a8b2fa removed CHANGELOG for now and added some more details 2021-02-04 14:51:11 +05:30
henil
aa8da0b142 Add initial issue template and CONTRIBUTING.md 2021-01-31 12:12:55 +05:30
Denis Maximov
63a2dc3399
Merge pull request #157 from mosaic-org/restructure
Restructure
2021-01-30 13:45:51 +02:00
denis
1afab052a9 chore: formatting 2021-01-29 10:55:25 +02:00
denis
c488b38642 wip: unused imports 2021-01-29 10:55:12 +02:00
denis
354316d20c chore: formatting 2021-01-29 07:25:58 +02:00
denis
be9a059116 wip: moved stuff from main into common 2021-01-29 07:21:33 +02:00
denis
6a3481f54f Merge branch 'main' into restructure 2021-01-29 06:24:59 +02:00
Aram Drevekenin
dd56deb2d2
feat(statusbar): max status bar height (#156) 2021-01-28 18:29:44 +01:00
Aram Drevekenin
5191dfe416
Min max height and width (#155)
* feat(tab): min/max pane height

* style(fmt): rustfmt
2021-01-28 12:56:39 +01:00
henil
a32b0a59da fix(metadata): remove extra / from path and add .md 2021-01-27 11:21:46 +05:30
Henil Dedania
df02e4e51c
Merge pull request #153 from mosaic-org/ci-release-binaries
ci(release): Automatically build release binary on tag push
2021-01-27 09:41:55 +05:30
Henil Dedania
21dc6c2050
Merge pull request #154 from mosaic-org/add-alternative-buffer
fix(compatibility): Use alternate buffer like tmux
2021-01-26 20:38:21 +05:30
henil
21d6d025c4 more integration tests poping up.... 2021-01-26 01:44:41 +05:30
henil
cdd94133ae update integration tests 2021-01-26 01:29:18 +05:30
henil
a39eb66be8 Use alternate buffer 2021-01-25 23:50:07 +05:30
denis
454de6c52c wip: oops shouldn't forget that 2021-01-24 18:40:14 +02:00
denis
b23ef332c7 wip: restructing in progress, to prep for server-client 2021-01-24 18:38:46 +02:00
denis
a6ccb753c2 Merge branch 'main' into server-client 2021-01-24 10:51:52 +02:00
henil
bdf1b13758 Automatically build release binaries 2021-01-23 11:43:05 +05:30
Henil Dedania
5c043d063d
Merge pull request #151 from mosaic-org/add-cargo-metadata
feat(metadata): Add metadata to Cargo.toml for building deb packages
2021-01-23 11:41:00 +05:30
henil
da5317274e Add depends field 2021-01-23 11:32:41 +05:30
Aram Drevekenin
15b92262b7
fix(compatibility): properly erase previous state before switching grids (#152)
* fix(compatibility): properly erase previous state before switching grids

* style(fmt): rustfmt
2021-01-22 10:24:34 +01:00
denis
bd1e3d2d7b Merge branch 'main' into server-client 2021-01-22 08:24:56 +02:00
Henil Dedania
c32b837df7
feat(plugin): Search in root folder for plugins and layout files 2021-01-21 12:04:29 +05:30
Aram Drevekenin
decc38232b
fix(main): do not hang on exit (#150) 2021-01-20 19:25:35 +01:00
Aram Drevekenin
81af57b15d
fix(compatibility): fix grid glitch edge-case when resizing (#149)
* fix(compatibility): fix grid glitch edge-case when resizing a grid with a scroll region

* style(fmt): rustfmt
2021-01-20 17:01:13 +01:00
Aram Drevekenin
e7ea05f50b fix(compatibility): don't drop empty lines when resizing (#148) 2021-01-19 18:34:53 +01:00
Kyle
09b1e03843 Add some message types for server-client comms 2021-01-17 19:15:32 +00:00
Henil Dedania
cbeae35f17
Update GOVERNANCE.md 2021-01-17 11:45:47 +05:30
henil
7c3c3f3231 Add metadata to Cargo.toml for building deb packages 2021-01-17 11:36:57 +05:30
Aram Drevekenin
e6a7ed31f6
fix(compatibility): clear characters should preserve current styling (#143)
* fix(compatibility): clear characters should preserve current styling

* style(fmt): rustfmt
2021-01-14 12:48:36 +01:00
Brooks Rady
e7f16ed468
feat(ui): added a help / status bar for keybindings and modes
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
2021-01-13 13:10:48 +00:00
Brooks J Rady
69c19b90d1 Patched a width miscalculation in the status bar plugin 2021-01-12 16:01:49 +00:00
Brooks J Rady
7d9a33e13e Fixed 23 clippy lints and warnings 2021-01-12 05:50:59 +00:00
Brooks J Rady
67dbd1d0e4 Merge branch 'main' into wasm-status-bar 2021-01-12 04:56:29 +00:00
Brooks J Rady
209cce96a5 Finish implementing default layouts 2021-01-12 04:34:19 +00:00
Brooks J Rady
555f9af37a Install default layouts and plugins at build-time 2021-01-11 23:00:19 +00:00
Brooks J Rady
e9e49ef45f Fully functional status bar! 2021-01-11 21:53:40 +00:00
Brooks J Rady
01df6ed568 Added a get_help function to the plugin API 2021-01-11 19:55:29 +00:00
Aram Drevekenin
98e5e94670
refactor(terminal-pane): simplify Scroll into Grid (#137)
* 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
2021-01-11 18:23:29 +01:00
Brooks J Rady
efcd36a52c Added the set_selectable plugin API function 2021-01-11 07:33:35 +00:00
Brooks J Rady
7e308515e5 Add a plugin callback for global keypresses 2021-01-10 23:02:41 +00:00