Commit graph

721 commits

Author SHA1 Message Date
Aram Drevekenin
f6c56f6ea3
style(comment): remove outdated 2022-01-12 09:38:04 +01:00
Aram Drevekenin
737787702e
style(format): remove debug message 2022-01-11 17:03:47 +01:00
Jae-Heon Ji
d2cfcb3bab
fix: add condition for existence of current_dir (#995) 2022-01-09 18:18:03 +09:00
Aram Drevekenin
e06300f7db chore(version): bump development version 2022-01-05 11:14:15 +01:00
Kunal Mohan
e23d06b70d
Feature: Configurable scroll buffer (#936)
* Configurable scroll buffer

* Fix unit test failures

* Add scroll_buffer_size description in the default config file

* Fix config file
2022-01-04 23:24:05 +05:30
Aram Drevekenin
0d0064afff
fix(panes): do not crash when closing fixed pane (#987) 2022-01-04 11:43:34 +01:00
Aram Drevekenin
d5fe53ef57
fix(tabs): dont panic when tab history is empty and closing tab (#990) 2022-01-04 11:07:09 +01:00
Kunal Mohan
4496c4d4dc
Pass active terminal title through to terminal emulator (#980) 2022-01-03 22:18:22 +05:30
Aram Drevekenin
153ed175af
fix(plugins): send events to plugins properly in a multiuser env (#986) 2022-01-03 16:55:21 +01:00
Aram Drevekenin
7dad61e529
refactor(tab): separate concerns (namely move pane positioning actions out of tab) (#985)
* refactor: move resizing methods to pane resizer

* refactor: move focus and close methods to pane grid

* refactor(tab): move move methods positioning to pane grid

* refactor(tab): separate pane resizer from pane grid

* style(fmt): make rustfmt happy

* style(fmt): make clippy happy
2022-01-03 15:56:41 +01:00
Jae-Heon Ji
5dd3fce4a1
fix(plugins): register correct client id (#984) 2022-01-03 15:54:41 +01:00
auronandace
00e923cfdc
Implement passing the bell signal to the terminal (#981)
* implement passing the bell signal to the terminal

* Add files via upload

add fixture to test against
2022-01-03 15:50:00 +01:00
dswij
8f5325e4ed
fix(ui): left click on tabs when pane is on fullscreen mode (#977)
* Fix left click on tabs when pane is on fullscreen mode

* run fmt
2022-01-03 14:58:15 +01:00
Jae-Heon Ji
e1997f6e7d
fix: update switch to tab bug in multiple users (#959)
* fix: update switch to tab for multiple user

* chore: remove unnecessary comments
2021-12-29 16:32:38 +01:00
danieleades
a62a23a1c7
fix(clippy): ensure clippy runs on all targets (#972)
* ensure clippy runs on all targets

* use 'AtomicBool' instead of 'Mutex<bool>'

* remove unused import

* remove 'mem::drop' no-ops

* remove loop that never loops
2021-12-29 09:16:54 +01:00
Thomas Linford
6e35f29b0f
fix(mouse): prevent unhandled mouse events escape to terminal (#976)
* workaround to not write csi mouse seqs to terminal

* tab: copy selection to clipboard only if selecting was initiated with left click

* cleanup debug log messages

* unset selecting_with_mouse when selection is empty
2021-12-28 21:39:20 +01:00
Aram Drevekenin
0d7f22f09a
fix(attach): make removing clients atomic (#966) 2021-12-23 10:44:23 +01:00
Aram Drevekenin
ec4649c7c9
fix(compatibility): handle deleting chars in lines with widechars (#965)
* fix(compatibility): handle deleting chars in lines with widechars

* style(fmt): make rustfmt happy
2021-12-22 17:57:59 +01:00
Aram Drevekenin
52977a761f
fix(compatibility): handle inserting characters after wide character (#964)
* fix(compatibility): handle inserting characters in the middle of a line after a wide character

* style(fmt): make rustfmt happy
2021-12-22 14:34:28 +01:00
Aram Drevekenin
ce8e898e6d chore(version): bump development version 2021-12-20 18:31:54 +01:00
Aram Drevekenin
6175d57702 chore(version): bump development version 2021-12-20 17:56:47 +01:00
Aram Drevekenin
ca8438b0aa
feat(collaboration): implement multiple users (#957)
* work

* feat(collaboration): implement multiple users

* style(cleanup): some leftovers
2021-12-20 17:31:07 +01:00
Aram Drevekenin
1a991ce7fb chore(version): bump development version 2021-12-14 17:32:02 +01:00
Aram Drevekenin
10da4348ae
Fix tab fullscreen switch (#941)
* fix(tab): switch focus with fullscreen

* style(fmt): make rustfmt happy
2021-12-14 09:42:52 +01:00
Aram Drevekenin
5f1f190a85 chore(version): bump development version 2021-12-13 16:19:37 +01:00
Aram Drevekenin
514d9c9b0e style(fmt): make rustfmt happy and update plugins 2021-12-13 15:14:44 +01:00
Aram Drevekenin
a721495839 hotfix(plugins): run load function for every user when cloning plugin 2021-12-13 15:07:49 +01:00
Kunal Mohan
c75bcbd937
Feature: Add pane names (#928)
* Read pane name from layout

* Update pane name at runtime

* Fix tests

* prefer and render pane name over pane title

* fix clippy errors

* fix after rebase
2021-12-09 23:30:40 +05:30
Jae-Heon Ji
d79060f69a
feat(status-bar): add multiple tips (#848)
* feat(status-bar): add draft for multiple tips

* feat: add TIPS_MAP

* Simplified 'tip' function.

* chore: update file structure

* feat(status-bar): update method of Tip rendering

* feat(status-bar): change type of tip in State

* refactor(status-bar): related to random tip selection

* feat(status-bar): add simple local cache for testing

* feat(status-bar): add cache system for tip data

* Add mpadir to wasm for plugin to access zellij temp folder.

* refactor(status-bar): update cache and utils

* fix(status-bar): update file read error

* refactor(status-bar): update macros

* chore(status-bar): delete test data

* chore(status-bar): update missing fixes

* feat(status-bar): add detailed error

* style: make clippy
2021-12-09 18:53:46 +01:00
Aram Drevekenin
92bddf1b79
fix(plugins): support multiple users (#930)
* fix(plugins): support multiple clients

* fix(style): make clippy happy
2021-12-08 18:41:41 +01:00
Marcin Puc
56e85f87d6
fix(style): various internal refactorings 2021-12-07 10:24:42 +00:00
a-kenji
b727d105f3
fix(warn): remove unnecessary mut (#922) 2021-12-03 18:09:29 +01:00
Aram Drevekenin
cbe0d5405e
fix(compatibility): do not duplicate bracketed paste in chunked stdin input (#917)
* debug message

* fix attempt

* oops

* remove log message

* rustfmt

* style(clippy): make clippy happy

* style(clippy): make clippy happy again!
2021-12-02 18:35:55 +01:00
Aram Drevekenin
464cb6beec
fix(compatibility): full screen scroll region (#915)
* fix(compatibility): properly handle scrolling when scroll region is full screen

* style(fmt): make clippy and rustfmt happy
2021-12-01 13:01:22 +01:00
Jae-Heon Ji
4e5717ec6e
fix(plugin): mismatch JSON format on get_zellij_version
* chore(wasm): comment on target of error

* fix(wasm): formatting the VERSION string

* refactor(wasm): simplify code

* chore: delete comments resolved

* feat(wasm): update write_object fn for generic
2021-11-30 20:01:03 +00:00
Aram Drevekenin
1ee743156c chore(version): bump development version 2021-11-29 10:09:22 +01:00
Jae-Heon Ji
c349586d84
feat: provide the zellij version to plugins (#894)
* feat: add draft of feature

* feat(wasm): add plugin API for getting of zellij version

* feat(wasm): update feedback

* delete unnecessary function
2021-11-26 10:44:43 +01:00
Aram Drevekenin
6c6a4393f4
This adds a UI for multiple users in panes (behind a feature flag) (#897)
* feat(ui): multiple users in panes

* style(fmt): make rustfmt happy

* style(fmt): make clippy happy
2021-11-25 16:21:59 +01:00
Thomas Linford
a96b9d8769
feat(compatibility): add support for osc 8 escape code (#822)
Resolve #645 

* add support for osc 8 escape code

* refactor, add links to CharacterStyles

* cleanup

* refactor, add minimal tests
2021-11-22 18:54:49 +01:00
Thomas Linford
707fedd1df
fix(performance): keep track of scrollback buffer size (#881)
Fix #877. Avoid calculating scrollback buffer size on each render, since the calculation becomes slower proportionally to the amount of lines buffered, and to the width of each line.
* wip: keep track of scrollback buffer size

* account for lines dropped by bounded_push

* fix: use saturating sub

* fix: account for 0 width lines

* remove log messages
2021-11-22 18:34:45 +01:00
a-kenji
198950e0b9
add(overlay): add overlay (#875)
* add overlay instructions to the `render` function

  this is a continuation of #871
2021-11-17 00:12:34 +01:00
a-kenji
b861baa6a1
First attempt to provide an overlay prompt (#871) 2021-11-15 20:13:05 +01:00
Thomas Linford
0ba8e2f7b4
Simplify terminal character style diff (#839)
* optimize EMPTY_TERMINAL_CHARACTER diff

return a diff for EMPTY_TERMINAL_CHARACTER only when necessary (when new_styles different than current), so to avoid
emitting a ansi reset code every time.

* simply character styles diffing logic
2021-11-15 08:31:53 +01:00
Thomas Linford
44852cd6b2
refactor(tab): close_pane returns closed pane (#853)
* refactor(tab): close_pane returns closed pane

Prepare for break pane command by making close_pane return the closed
pane. Also split the function up to hopefully be more readable.

* more refactoring
2021-11-13 21:51:53 +01:00
Aram Drevekenin
bd795a3e9f
refactor(tabs): lay down infrastructure for multiple users (#864)
* refactor(screen): support multiple mirrored clients

* style(fmt): make rustfmt happy

* style(clippy): make clippy happy

* whitespace

* github, y u no update CI?!

* is this a cache issue?

* is it the checkout cache?

* no cache at all?

* Debug

* fix gototab

* decoment

* gototab none in wasm_vm

* gototab none in wasm_vm

* the fun never ends

* tests(e2e): update infra and add multiple user mirroring test

* refactor(tab): change structs in tabs and terminal panes to support multiple users

* style(fmt): make rustfmt happy

* style(fmt): make clippy happy
2021-11-12 17:22:14 +01:00
Thomas Linford
8a4161ee5b
fix(compatibility): CSI cursor next line fix (#863)
Move cursor to beginning of line after moving it down.

fixes #860.
2021-11-11 21:24:59 +01:00
a-kenji
bd8c834d7c
fix(options): handling and overwriting cli opts (#859)
* fix(options): handling ond verwriting cli opts

* previously it was only possible to turn off certain features with a
  command line option, now it is possible to also overwrite this
  behavior in a sane way, for that some breaking changes happened:

  following options got renamed and inverted:
  ```
  disable_mouse_mode -> mouse_mode
  no_pane_frames -> pane_frames
  ```

  following cli options got added:
  ```
  mouse-mode [bool]
  pane-frames [bool]
  simplified-ui [bool]
  ```

  the following cli flag got removed:
  ```
  simplified-ui
  ```

  They can be specified in the following way:
  ```
  zellij options --mouse-mode true
  ```
  in order to enable the mouse mode, even if it is turned off in the
  config file:
  ```
  mouse_mode: false
  ```

  The order is now as follows:
  1. corresponding flag (`disable-mouse-mode`)
  2. corresponding option (`mouse-mode`)
  3. corresponding config option (`mouse_mode`)

* add: options and flags for the same value conflict

* example:
  ```
  zellij options --mouse-mode true --disable-mouse-mode`
  ```
  ```
  $ error: The argument '--mouse-mode <mouse-mode>' cannot be used with '--disable-mouse-mode'
  ```
2021-11-11 17:13:34 +01:00
Aram Drevekenin
26bd80be2d chore(version): bump development version 2021-11-10 18:01:56 +01:00
Aram Drevekenin
0fec10b08b chore(release): v0.20.1 2021-11-10 17:54:39 +01:00
a-kenji
abbe3b237a
add(feature): toggle boolean options with cli flag (#855)
add the ability to toggle boolean options with a cli flag:

example:
    if the pane frames are turned off in the config file,
    then passing in the `--no-pane-frames` flag will toggle the
    pane frames on
2021-11-10 13:31:37 +01:00