Commit graph

127 commits

Author SHA1 Message Date
José Valim 48b611faeb Run formatter 2021-04-21 12:17:35 +02:00
Benjamin Philip d41f3a73fe Beautify match file selector results
- Makes the file selector results to have a "box"/"container" of its own

- Seperates the filtred files from rest of the files with a border

- Optimize path selector to only traverse the filesystem if the directory
  changes
2021-04-21 12:16:28 +02:00
Jonatan Kłosko 193050cae5 Don't print token in URL when disabled 2021-04-21 00:04:17 +02:00
Jonatan Kłosko 5dd3b82e1f
Don't register named supervisors on remote node (#230) 2021-04-20 20:03:13 +02:00
Jonatan Kłosko 700987dc02
Add editor completion to Elixir cells (#208)
* Implement editor completion for Elixir cells

* Add completion tests

* Refactor completion

* Only extract Markdown docs for now

* Fix Elixir version-dependent test

* Fix docs matching

* Use upcoming Code.cursor_context/2

* Start temporary completion processes under a supervisor

* Show Erlang docs in completion items

* Update to latest Code.cursor_context

* Refactor completion

* Fix module completion when alias expands to Erlang module

* Remove tests-generated notebook

* Show variables and map fields differently

* Adjust signatures formatting
2021-04-20 19:34:17 +02:00
Jonatan Kłosko 04edc75181
Scroll to section when moved (#226) 2021-04-20 19:31:23 +02:00
Jonatan Kłosko 44eda43d02
Fix markdown line breaks rendering (#227) 2021-04-20 19:31:02 +02:00
Frank Hunleth b1ceedc220
Ignore RFC 1468 switch to ASCII code sequence (#225)
This ignores "\e(B" which sometimes shows up even when the other RFC
1468 Japanese character set switch codes aren't used. This also updates
defmodifier so that it can be used with non-CSI escape codes (the
ones that start with '[').
2021-04-20 15:05:30 +02:00
Jonatan Kłosko 5100d2723a Fix invalid File.get_cwd! call 2021-04-20 14:17:09 +02:00
Frank Hunleth 0f49351c3b
Handle a short ANSI reset ("\e[m") (#220)
It's legal to omit the 0 in the "\e[0m" sequence to reduce the number of
bytes needed to reset the terminal. See
https://en.wikipedia.org/wiki/ANSI_escape_code#CSI_(Control_Sequence_Introducer)_sequences
and a simple explanation and the cited reference for a more involved
one.
2021-04-20 14:16:21 +02:00
Benjamin Philip 682ee396d0
Allow re-ordering of sections (#221)
* Allow server-side re-ordering of sections

* `Livebook.Notenook.move_section` definition
* Management and implementation of requests
* tests

This commit allows a person to send a request to the server to move a
section. However, the functionality in not yet available in the UI.

* Allow "Move up" and "Move down" functionality for sections

* Rendering of up and down "arrows" at Section's side
* Request from UI on click

This commit enables a user to move a section upwards or downwards, much
like a cell. However, after the section moves, the focus is not changed
to it.

* Apply formatting

* Define a function to update cell status

* Defines a common function for `move_cell` and `move_section` to use to
update cell status.
2021-04-20 12:12:29 +02:00
José Valim 81b123d5b5
Make root path configurable from outside (#217) 2021-04-19 19:50:09 +02:00
Juha 08c4025bd7
Remove assumption about root path (#209) 2021-04-17 20:32:19 +02:00
Frank Hunleth 73caecc7f1
Fix typos in comments (#207) 2021-04-17 00:40:30 +02:00
José Valim c4d06d877e Move auth to its own view
Prior to this PR the HTML head was being
included twice on the password auth page.
One from root.html and another from the
error page, so we decoupled those.
2021-04-16 22:18:59 +02:00
José Valim d00393ca86 Keep uppercase letters together 2021-04-16 22:18:59 +02:00
José Valim 8a17130391
Improvements to runtime initialization (#201)
1. Do not use nouse_stdio as it causes slowdowns when IEx
   is also running

2. Reduce the amount of generated random atoms by using the
   child_node as the name of the parent process

3. Do not pass quoted strings nor newlines to Windows to eval,
    use argv instead

Closes #194.
2021-04-16 12:31:25 +02:00
Cheng Zhe f06891cd6d
Fix typo on notebook cell (#200)
Fix typo on notebook cell
2021-04-16 08:05:35 +02:00
José Valim 101f582196
Use known cookie when starting runtimes (#199) 2021-04-15 20:09:54 +02:00
Jonatan Kłosko d6e9c36571 Use password input for entering passphrase 2021-04-15 16:19:17 +02:00
José Valim 57047f9c7f
Unify env variables and change auth to use session (#195) 2021-04-15 15:50:29 +02:00
Frank Hunleth 3a19021983
Support config of the root path for storing notebooks (#191)
This adds a `:root_path` key to the application environment so that
file dialogs can default to known location where notebooks are stored.
2021-04-15 14:51:27 +02:00
Jakub Perżyło a9c8e20775
Password access (#187) 2021-04-15 14:15:56 +02:00
José Valim dee372c623
Improve error message if we can't boot epmd, closes #196 (#197) 2021-04-15 11:42:56 +02:00
José Valim 5190e01db7 Remove unused root module 2021-04-15 11:30:24 +02:00
José Valim 31e16f6b93 Fix typo on CLI entries 2021-04-15 09:06:01 +02:00
Cheng Zhe d3ffb7978d
Rename litebook_cli.ex to livebook_cli.ex (#174)
Rename litebook_cli.ex to livebook_cli.ex
2021-04-15 08:56:49 +02:00
Cheng Zhe 9978d29831
Fix spec error type (#181) 2021-04-15 08:56:20 +02:00
Cheng Zhe bfaf6b7776
Fix spec in delta operation (#193) 2021-04-15 08:56:03 +02:00
Cheng Zhe 9b0ac23c2c
Fix typo in delta operation docs (#192) 2021-04-15 08:55:43 +02:00
Jonatan Kłosko 69343bfc3c
Link to live dashboard for each running session to show process info (#186)
* Link to live dashboard for each running session to show process info

* Update lib/livebook_web/live/home_live/sessions_component.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-04-14 22:37:17 +02:00
James Baldwin 9c6d747aca
Remove extra word in comment (#185) 2021-04-14 21:02:47 +02:00
Jakub Perżyło a3c55a801d
Add live dashboard (#183) 2021-04-14 20:10:25 +02:00
Jonatan Kłosko 9e026ee4b9
Make sure write-protected files can only be forked (#182)
* Format file errors into readable messages

* Make sure write-protected files can only be forked

* Show tooltip when the file is write protected
2021-04-14 16:27:35 +02:00
Michał Gibowski 539cb8e2b1
Fix some typos in moduledocs (#180) 2021-04-14 13:40:32 +02:00
TED 623c5b3290
Add notbook runtime settings shortcut (#176) 2021-04-14 12:20:51 +02:00
Jonatan Kłosko 2887527dc9
Fix sections sidebar overflow (#171) 2021-04-14 11:35:54 +02:00
Jonatan Kłosko 252642f601
Start standalone runtimes as hidden nodes (#172) 2021-04-14 11:23:05 +02:00
Alexandre Antonio Juca 5f3230f7aa
Add spelling corrections to welcome livebook (#169) 2021-04-14 00:17:20 +02:00
Jonatan Kłosko d8213c3f68
Change wording from delete session to close session (#160) 2021-04-12 23:24:26 +02:00
Jonatan Kłosko 5f5ef1d0b6
Improve path selector (#159)
* Synchronously save file when the location is chosen and fix default path

* Handle enter press in the path selector
2021-04-12 22:59:48 +02:00
Jonatan Kłosko c6f9c54f31
Buffer IO evaluation output (#156)
* Buffer IO evaluation output

* Respect CR in IOProxy

* Handle CR when adding cell output rather than during each render

* Optimise CR handling in buffer
2021-04-12 17:56:40 +02:00
Wojtek Mach caea9610ad
Update Welcome notebook (#154) 2021-04-09 15:24:41 +02:00
Jonatan Kłosko d68c271aae
Add support for math formulas (#151)
* Add support for LaTeX equations

* Mention math support in the introductory notebook
2021-04-08 15:31:46 +02:00
Jonatan Kłosko e9766ed7a5
Introduce token auth and add basic cli configuration (#148)
* Add token authentication

* Restructure CLI

* Allow port configuration

* Further refactoring

* Make sure livebook node starts with unique name

* Improve startup error handling

* Further refactoring

* Add authentication tests

* Add authentication view for entering the token

* Fix auth tests

* Always use random Livebook name for distribution

* Don't enable ANSI on Windows

* Define CLI Task behaviour and move generic logic to the main module

* Generalize convertion from cli arguments to configuration

* Randomly generate secret key base

* Update test/livebook_web/plugs/auth_plug_test.exs

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Override app config in persistent manner

* Update lib/litebook_cli.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Move auth error to ErrorView

* Unify node name configuration and allow it via CLI

* Set all applications configs at once

* Move token generation to application.ex to work outside CLI

* Clean up overriding configuration

* Store auth token in separate cookies

* Update lib/livebook_cli/server.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Update lib/livebook_web/endpoint.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Update lib/livebook_web/plugs/auth_plug.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-04-08 11:41:52 +02:00
Jonatan Kłosko b3661ed2f0
Make failed evaluations preserve evaluation context (#145) 2021-04-05 17:01:07 +02:00
Jonatan Kłosko 70be004ee0
Make autoscroll behaviour more intuitive (#143)
* Fix editor shift

* Make autoscrolling more intuitive
2021-04-05 15:06:14 +02:00
Jonatan Kłosko 7d1d1f4d98
Respect CR in cell output (#137)
* Respect CR in cell output

* Update test/livebook_web/helpers_test.exs

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Improve rewind implementation

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-04-04 21:22:28 +02:00
Jonatan Kłosko d93b5d8450
Set up image uploads for Markdown content (#132)
* Add cell image upload modal

* Add controller for serving the images and handle this on markdown side

* Use per-session images dir

* Add etag header to session image responses

* Adjust markdown image styling

* Properly manage session images dir

* Add tests

* Set maximum file size for image uploads

* Move images dir specifics to the Session module

* Move images when nonpersistent session becomes persistent

* Update lib/livebook_web/live/session_live.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Update lib/livebook_web/live/session_live.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Update lib/livebook_web/live/session_live/cell_upload_component.ex

Co-authored-by: José Valim <jose.valim@dashbit.co>

* Test that close gets rid of session temporary dir

Co-authored-by: José Valim <jose.valim@dashbit.co>
2021-04-04 18:55:51 +02:00
José Valim 5fb753c4d1
Logo and README (#133) 2021-04-04 12:42:46 +02:00