* Synchronize smart cell source before evaluation
* Sync JS view only if present
* Synchronize with smart cell only when started
* Update references to kino packages
* Update the Smart cells notebook
* Rename add dependnecy to add package
* Update changelog
* Fix indentation in HTML format
* Adds more spacing between items
* Use horizontal lines to better mark the sections,
unless the header itself is followed by a table.
Those changes are inspired by GitHub's current
settings page.
* Keep memory usage state at the root on homepage
* Update lib/livebook/system_resources.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Show information when a new Livebook version is available
* Wording
* Use more precise version comparison
* Update lib/livebook/application.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Up
* Update notificaion styles
* Update lib/livebook_web/live/home_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Update lib/livebook_web/live/home_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Apply review comments
* Use async_nolink
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Add LIVEBOOK_SHUTDOWN_ENABLED
Previously we relied on code:get_mode(), but since
releases are starting in interactive mode to use
less memory, we need a clearer mechanism.
* Move shutdown feature check to Livebook.Config
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Add support for mix run flags to the Mix runtime
* Support mix run flags in runtime config string
* Add flag validation
* Update lib/livebook_web/live/session_live/mix_standalone_live.ex
Co-authored-by: José Valim <jose.valim@dashbit.co>
Co-authored-by: José Valim <jose.valim@dashbit.co>
* Fix horizontal scrollbar on smaller screens
* Apply navigation shortcuts without an additional roundtrip
* Shorten the data element selector
* Fix URL in changelog
* Return reference from handle_intellisense
* Automate searching and adding new dependencies
* Restructure runtime management
* Leave search restrictions up to the runtime
* Support predefined dependencies in Embedded runtime dependency search
* Use the embedded runtime for dependency search test
* Fix typo
* Use module for loading embedded runtime dependencies
* Improve naming
* List predefined smart cells and automatically add their dependencies
* Generalize dependency insertion to multiple entries
* Add runtime setup modal
* Don't evaluate setup when restarting the runtime fails
* Automatically add vega_lite for chart builder
* Improve confirmation modal actions when the action is not destructive
* Add support for scanning evaluation context from smart cells
* Rename prev_locator to base_locator to clarify the meaning
* Adjustments
* Add data tests
* Adjustments
* Test smart cell intearaction with RuntimeServer
* Serialize binding scanning and leave sending to the user
* Monitor the scanning process
Say we have this path on Windows: `C:/Users/wojtek/foo.livemd`. Opening
it: (ignore it's not escaped)
http://localhost:4000/open?path=C:/Users/wojtek/foo.livemd
would have failed with:
** (ArgumentError) expected an expanded absolute path, got: "C:/Users/wojtek/foo.livemd"
and that's because absolute paths (in other words, Path expanded) start
with `c:/`, not `C:/`.
* Reads the output after a cell has been evaluated
* Creates SR landmarks when errors happen
* fixes formatting
* Reads a clearer message when a runtime restart is required
* Update lib/livebook_web/live/session_live/cell_component.ex
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Group all runtime messages under a common prefix
* Move output specification ot the Runtime protocol
* Update doc comments
* Livebook.Evaluator -> Livebook.Runtime.Evaluator
* Livebook.ContentLoader -> Livebook.Notebook.ContentLoader
* Livebook.UniqueTask -> Livebook.Utils.UniqueTask
* Add import/export delegates to Livebook.LiveMarkdown
* Serve iframes from another local port when running on http
* Use relative hostname in local iframe URL
* Simplify server start check
* Use random iframe port when Livebook runs on a random port
* Rename space/ to iframe/
* LivebookWeb.IframePlug -> LivebookWeb.IframeEndpoint
* Accessibility improvements on home page
* Unique ids for file info path buttons
* Improves navigation for screen readers in the session list
* Landmarks navigation for screen readers
* Headings navigation for screen readers
* Group navigation - running sessions list
* Fix typo
* Minor adjustments based on review suggestions
* Support downloading source on a per session basis
* Update session_list_component.ex
* Add test
* Update lib/livebook_web/live/home_live/session_list_component.ex
* Update test/livebook_web/live/home_live_test.exs
Co-authored-by: José Valim <jose.valim@gmail.com>
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
* Export file with title or file name
* Export with title or file name
* Add Session.file_name_for_download/1
* Compute the name without calling the server
Co-authored-by: Jonatan Kłosko <jonatanklosko@gmail.com>
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>
* High-contrast option for the code editor
* Small refactor
* Creates a high-contrast theme from the custom theme
* Refactor to store the theme as a string
* Fix prettier
* Adds an option to increase the font size of the editor
* Update lib/livebook_web/live/settings_live.ex
Co-authored-by: José Valim <jose.valim@gmail.com>
* Editor font size options as constants
Co-authored-by: José Valim <jose.valim@gmail.com>
* Adds the greens and yellows from the custom color palette
* Keeps the cell status indicators with the original bright colors
* Increases icon-button contrast
* Increases labeled_text font-size
* Removes type: button to fix the runtime sidebar buttons style on Safari
* Increases the toggleable menu contrast on hover
* Use the same color for the stale state in the sections sidebar
* Add version section to settings
* Add System Settings Version subsection
* Apply suggestions from code review
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
* Remove delete prompt for empty sections
If a section has no cell views or only empty cell views, avoid
prompting the user to delete the section and just go ahead and delete
it.
Closes#800
* Move delete prompt logic to SessionLive
This avoids creating two separate paths in the view for displaying
delete buttons (triggering either a prompt, or deleting the empty
section).
Instead, the `delete_section` callback is always triggered, and the
"display prompt" logic is kept here.
Couple of things I'm unsure about so will discuss on the PR.
See https://github.com/livebook-dev/livebook/pull/829#discussion_r775560671
* Check only against empty cell list in `delete_section`
* Fix indentation
* Handle section not existing on deletion
* Match empty cell list in case expression
Also explicitly set the section and then re-use it. I think this is a
bit nicer than just matching against the empty list since it matches
the following match too
* Disable Choose button if draft file is a directory
* Fix warnings
* Decide if choose is disabled on handle info
* Revert "Decide if choose is disabled on handle info"
This reverts commit 43a2cbc5ea.
* Use the disabled attribute
* Fix error on back after closing session
Clicking the browsers back button after closing a session
resulted in an error since it was trying to close an already closed notebook
* Overwrite back history on section delete
* 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>
* Improve file select layout on long paths
* Automatically back up notebooks without a file
* Run formatter
* Add margin when there are no sections
* Add an informative note about autosave directory
* Store autosave path instead of file in the config
* Rename autosave dir to autosave path
* Fix insert mode escape on section headlines
* Show ellipsis on selected file too
* Always create the default directory
* Apply review comments
* 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>