1. Allow multiple sessions to close or disconnect at once,
and then request the system resources to be updated
2. Make sure that closing a session happens synchronously,
otherwise a race condition could still list the closed
session in a dashboard
3. Ensure close and disconnect can happen more than once
(for example if two users click the same button at the
same time)
* Minimize race condition in the frame update test
* Use defmacrop for building intellisense context
* Remove unnecessary cell view computation
* Fix nested assets resolution
* Fix typing errors
* Add missing async attribute to test suites
* Improve rendering synchronization
* Up
* Initial implementation to close multiple sessions
* Sessions: bulk actions with components
* Rename Disconnect sessions to Disconnect runtime
* Select all and disabled when nothing is selected
* Styled checkbox
* Renames toggle events
* Warning about not persisted notebooks
* Adds disconnect runtime option for a single session
* Edit sessions on right
* Fix: typos and plural
* Minor adjustments
* Removes the loop for rendering the menu
* Menus with fixed width
* Minor adjustments
* Pluralize as global helper
* Bulk actions form on client side
* Track bulk actions buttons state
* Fix: home live tests
* Doctests for pluralize
* Fix: bulk actions buttons losing state on session update
* Fix: format
* Minor adjustment on toggle_edit
* Review-based adjustments
* Reset the Edit state after single-session actions
* Minor adjustments
* Fixes bulk action events
* Submit the bulk action form directly
* Tests for bulk actions
* Indentation
* Update lib/livebook_web/live/home_live/close_session_component.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
Co-authored-by: José Valim <jose.valim@gmail.com>
* Address race condition on cancel timer
* Include memory measurement as part of evaluation metadata
* Move periodic resource computation to a single process
* Have a explicit call out for total memory
* Utils to fetch and format system and node memory usage
* Order by memory
* Track memory on session
* Show memory usage on runtime sidebar
* Shows memory usage percentage on home
* Layout adjustments
* Sidebar design adjustments to match Figma
* Home design adjustments to show the memory information
* Move memory calculations to utils
* Shows disconnected notebooks as consuming 0mb on home
* Simplifies the data structure of memory usage
* Node memory tracker on runtime
* Clean up
* Renames node memory to runtime memory
* Standardizes the data structure of memory usage
* Sends evaluation_finished to the runtime to update the memory usage after an evaluation
* Fix: The evalutor does not notify when there is no notify_to option
* Adds a test with the notify_to option to the evaluator
* Documents the notify_to option
* Minor fixes on runtime and runtime_server
* Minor fixes on sessions
* Minor adjustments
* Updates docs and specs on Utils
* Minor adjustments on session_live
* Fix total memory used by sessions on home
* Put duplicated functions on helpers
* Better filter by memory
* Fix the tooltip text for memory information on sidebar
* Minor alignment adjustment on home
* Restructure frame output
* Reboot JSComponent when ref changes
* Prune outputs from LV, handle frame and stdout updates via component messaging
* Keep ANSI modifiers as keyword list
* Don't re-render pruned outputs
* Improve empty frame styling
* Use more specific id
* Add clarification on trailing CR
* Handle output group borders with CSS
* Keep only relevant outputs in memory
* Adjust borders
* Update lib/livebook/live_markdown/import.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Apply review comments
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Show deprecated and since doc metadata on mouse over
* Make deprecated indication stronger
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Introduce broadcast communication from runtime
* Return broadcast target from group leader
* Increase timeout
* Make the channel test async
* Decouple base topic and ref
* override tab name when notebook is renamed
* set page_title in after operation function
* add custom page title to all live pages
* Revert "override tab name when notebook is renamed"
This reverts commit 90303e08a8.
* add test for update
* Add completion for struct keys
Largely ported from `IEx.Autocomplete`.
* Add test for __exception__ field in struct
* Fix exception test
* Fix exceptions assetion
* Create `:in_struct_field` identifier
Along with a refactor
* Fix typespecs for `:map_field`
* Address feedback
* Update lib/livebook/intellisense/identifier_matcher.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Use markdown snippet for both docs
* Fix tests
Co-authored-by: José Valim <jose.valim@gmail.com>
The currently suggested vim modeline formatting string to allow .livemd
files to render as markdown on GitHub works, but confuses vim itself.
```
<!-- vim: syntax=markdown -->
```
When opening a .livemd file with the suggested modeline in vim it errors
when it tries to parse `-->` as a modeline option.
e.g.
```
"2021/day2.livemd" 81L, 1616B
Error detected while processing modelines:
line 1:
E518: Unknown option: -->
```
The fix is to replace the suggested vim modeline
```
<!-- vim: syntax=markdown -->
```
With a modeline declaration format that indicates when the modeline
options are complete, allowing vim to ignore the rest of the line.
```
<!-- vim: set syntax=markdown: -->
```
Reference
- vim issue: https://github.com/vim/vim/issues/1648
- especially this comment: https://github.com/vim/vim/issues/1648#issuecomment-296386153Fixes#773
* Make cell status italic when content changed
* Add Ctrl+Shift+Enter for evaluating all cells
* Improve the behaviour of evaluating all cells
* Fix typo
* Add keywords to completion
* Fix signature request caching for call without parentheses
* Don't insert parentheses for def* macros
* Don't trigger missing runtime message when auto completion is enabled
* Don't insert parentheses for keyword macros
* Improve completion of env macros
* Apply review comments
* Update locals without parentheses
* Apply suggestions from code review
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Format
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Remove Code.Fragment backport
* Fix tests compatibility with Elixir 1.13
* Implement signature intellisense
* Don't show signatures on module attributes
* Add tests for calls with do-end block
* Unify spec formatting
* Insert parentheses when completing a function call
* Send all text until cursor in signature request
* Add configuration for completion/signature popups (#693)
* Add editor settings form
* Add configuration for intellisense defaults
* Read fresh settings when editor mounts
* Scope attribute names
* Fix disabled button styling
* Simplify signature box and enable by default
* Split settings into system and user sections
* Update lib/livebook_web/live/settings_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/live/settings_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Fix spacing in documentation tests
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Add support for controls output type
* Split controls into individual widgets
* Adjust ids
* Improve widget and controls garbage collection
* Allow arbitrary functions as object release hook
* Add type to button and input events
* Add keyboard status event
* Change release hooks into monitor messages
* Rename pointer to reference and return an error on bad monitor
* Improve notebook file locking to work across nodes
* Add node check for local file system opreations
* Replace node with host id
* Refactor process down cleanup
* Scope local file system with node
* local? -> type
* save static vegalite plot to livemd
* cleanup debug code
* using `vega-lite` as the type in the fenced code block
* wrap the text output in `{:text, output}` in take_outputs/2
* ignore :vega_lite_static when it is empty
* add import and export tests
* using `spec`
* format code
* keep the test focused
* improve tests for not including outputs
* always dump vage_lite spec
* Apply suggestions from code review
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Move notebook export menu item
* Add action for clearing evaluation and outputs
* Test data operation
* Update wording
* Update wording
* Reorder menu items
* Show reconnect for all runtime types when applicable
* Make it clear which runtime is the default
* Show Mix.install restart suggestion only for standalone runtimes
* Fix tests not to rely on the default runtime tab