Commit Graph

252 Commits

Author SHA1 Message Date
Marcin Kostrzewa
4ba26a3034
Compile Error Handling (#687) 2020-04-28 14:03:33 +02:00
Ara Adkins
9013407091
Implement dataflow analysis for Enso (#673) 2020-04-23 16:25:39 +01:00
Dmitry Bushev
9fcef233a8
Add: executionContext/recompute command (#669)
* add: executionContext/recompute

* doc: review comments
2020-04-23 15:13:02 +03:00
Łukasz Olczak
413962df92
Implementation of The Visualisation Binary Protocol (#665) 2020-04-23 12:42:59 +02:00
Dmitry Bushev
a10e37342b
Execution Context Integration with Text Change Events (#668)
* add: notifications to CollaborativeBuffer

* impl: trigger re-execution on file notifications

* add: file notifications test

* doc: update

* update: don't re-execute on file open

* fix: typo

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-04-22 21:11:30 +03:00
Marcin Kostrzewa
e2d901fb68
Module file operations through execution server (#660) 2020-04-20 14:33:51 +02:00
Dmitry Bushev
75f25b66db
Integrate the LS with context management (#657) 2020-04-17 17:31:12 +01:00
Dmitry Bushev
86fdc07ce0
Run scalafmt after updating its version (#661) 2020-04-17 17:05:56 +01:00
Łukasz Olczak
50e6072b41
Flatbuffers integration (#655) 2020-04-17 15:47:58 +02:00
Łukasz Olczak
d296ac1ef8
Implementation of session initialisation (#649) 2020-04-15 12:56:11 +02:00
Ara Adkins
8a99415a30
Fix warnings, docs, and repo structure (#651) 2020-04-14 17:00:51 +01:00
Dmitry Bushev
4e73aba706
Add executionContext/expressionValuesComputed notifincation (#648)
* WIP ExpressionValueUpdate

* Add client reference

* doc: update

* refactor: ExpressionValuesComputed

* refactor: conversion functions

* impl: Config findRelativePath

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-04-14 16:33:24 +03:00
Łukasz Olczak
e966392cc8
Implementation of the Language Server Supervisor Process (#643) 2020-04-10 12:11:15 +02:00
Dmitry Bushev
76faaaabcd
Add executionContext push & pop commands (#637)
* add: executionContext/push

* add: executionContext/pop

* add: stack to engine handler

* misc: cleanup

* misc: update error handling

* misc: cleanup
2020-04-09 16:29:14 +03:00
Marcin Kostrzewa
23f7797632
Language Execution Service (#642)
* Execution service

* fix language server

* cr feedbakz

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-04-09 15:02:12 +03:00
Dmitry Bushev
dc58fc6b2a
Add executionContext/destroy (#634)
* add: executionContext/destroy

* remove: ExecutionProtocol

* refactor: UnhandledLogging

* add: custom errors

* refactor: runtime errors
2020-04-06 14:15:50 +03:00
Dmitry Bushev
a0d68eca37
Add executionContext/create command (#632)
* WIP Context

* test: executionContext/create

* misc: scalafmt

* add: requestId

* doc: update

* update: routing

* misc: cleanup

* doc: update

* fix: runtime

* fix: runtime tests

* add: message envelope

* refactor: remove ContextManager

* refactor: correlationId
2020-04-02 16:58:32 +03:00
Łukasz Olczak
5c616c2727
Implementation of project/open and project/close commands. (#631) 2020-03-31 15:51:05 +02:00
Dmitry Bushev
0ffce13894
Add file/event command (#626)
* WIP FileEventWatcher

* WIP Capabilities

* update: FileEvent

* test: FileEventRegistryTest

* update: cleanup resources

* doc: misc

* update: FileEventRegistry protocol

* refactor: FileEventRegistry

* misc: cleanup

* doc: fix scaladoc

* test: resolve real path

* refactor: FileEventWatcher

* refactor: FileEventManager

* fix: test path

* update: FileEventManager handle watcher errors

* add: respond with custom errors

* add: handle ClientDisconnected

* doc: update

* add: force release capability on errors

* refactor: FileEventManager

* add: enumeratum

* update: stop manager after error

* update: watch manager

* update: manager sends events to client

* refactor: file event actors

* refactor: rename registry to handler

* refactor: rename manager to PathWatcher

* refactor: effectful watcher start and stop

* refactor: rename FileEventWatcher to WatcherAdapter

* misc: cleanup

* impl: unhandled

* feat: cancel timeout timers
2020-03-31 15:23:23 +03:00
Dmitry Bushev
47ad474790
Add file/info command (#614)
* feat: impl file/info

* doc: typo

* add: OffsetDateTime

* update: UTCDateTime JSON format

* update: remove UTCDateTime

* fix: review comments

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-03-25 13:30:26 +03:00
Dmitry Bushev
f4d4b001aa
test: remove filemanager warmup (#624) 2020-03-25 13:12:41 +03:00
Dmitry Bushev
6f8d3b73bb
test: wait for FileManager init (#617) 2020-03-23 21:37:11 +03:00
Dmitry Bushev
1910498524
Add file/list filemanager command (#612)
* feat: impl file/list

* test: warmup zio executor
2020-03-19 18:40:23 +03:00
Marcin Kostrzewa
ed7c7c75f9
Execution context management (#611) 2020-03-19 12:29:11 +01:00
Dmitry Bushev
4864d2623f
Refactor FileManager file commands (#609)
* refactor: create Config.scala

* WIP FileSystemHandler

* doc: update FileSystem list

* add: zio FileSystem

* update: FileSystemHandler runAsync

* add: config timeouts

* rename FileSystemHandler to FileSystemManager

* add: ZioExec

* add: FileManager router

* fix: FileManager return FileWiteResult

* update: FileSystemApi interface

* refactor: FileSystem with Zio

* impl: FileManager

* impl: cleanup LanguageServer

* impl: ReadFileHandler

* impl: CreateFileHandler

* impl: DeleteFileHandler

* impl: CopyFileHandler

* impl: MoveFileHandler

* impl: ExistsFileHandler

* impl: TreeFileHandler

* fix: filemanager tests

* misc: cleanup

* fix: BufferRegistry tests

* doc: add misc

* doc: misc

* feat: add ZioExec parameter to FileManager

* feat: FileManager uses FileSystemApi interface

* feat: FileSystem has blocking semantics

* feat: FileManager props
2020-03-19 13:47:08 +03:00
Łukasz Olczak
2863498da3
Scaffold the Project Manager (#610) 2020-03-18 11:41:55 +01:00
Dmitry Bushev
b5010d65c7
Add file/tree message for language server (#585)
* feat: impl FileSystem tree

* impl: conversion to DirectoryTree

* refactor: rename Path RelativePath

* WIP path encoding

* feat: add SystemPath encoding

* misc: fetch master

* doc: update engine-services

* refactor: rename SystemPath

* doc: cleanup

* test: fix json ordering

* test: fix symlink target

* test: fix unclosed source

* test: fix windows

* misc: cleanup

* doc: typo

* feat: follow symlinks

* feat: detect symlink loops

* refactor: rename RelativePath to Path

* feat: extend FileSystmObject api

* doc: update engine-services

* feat: add path to Other file system object

* test: fix windows

* refactor: remove TreeSet

* feat: DirectoryTree files filter directories

* feat: add NotDirectory error

* refactor: readDirectoryEntry

* feat: SymlinkLoop contains target to the loop

* refactor: DirectoryTree conversion

* feat: tailrec tree algorithm

* misc: cleanup

* misc: remove redundant if branch

Co-authored-by: Łukasz Olczak <lukasz.jan.olczak@gmail.com>
2020-03-13 19:41:57 +03:00
Marcin Kostrzewa
4b3943ce9b
Create a server instrument for language server <> runtime communications (#602) 2020-03-12 18:32:21 +01:00
Łukasz Olczak
7a1b333f2c
'text/save' method (#601) 2020-03-12 16:27:47 +01:00
Łukasz Olczak
004f73c649
text/applyEdit method (#598) 2020-03-11 17:55:07 +01:00
Dmitry Bushev
7b17e7e789
Add file/move message to language server (#574)
* feat: impl Ws MoveFile

* doc: update engine-services

* misc: run scalafmt

* test: add more

* fix: rebase

* test: add missing cases

* misc: run scalafmt

* test: update
2020-03-09 14:26:10 +03:00
Dmitry Bushev
22f505b6c4
Add file/exists message to language server (#579)
* feat: impl file/exists

* doc: update engine-services

* doc: wrap 80
2020-03-09 13:54:44 +03:00
Łukasz Olczak
31d5e6eb5b
text/closeFile method (#583) 2020-03-06 19:14:50 +01:00
Łukasz Olczak
e5530045bf
text/openFile method (#575) 2020-03-06 15:17:46 +01:00
Dmitry Bushev
2275a97233
Add file/copy message to language server (#570)
* feat: impl file/copy command

* test: add Ws tests

* doc: update engine-services

* misc: run scalafmt

* test: exists

* test: typo

* fix: impl missing test cases
2020-03-05 19:18:20 +03:00
Dmitry Bushev
a712288aad
Add file/delete message (#568)
* impl: file/delete

* add: tests

* doc: update engine-services

* misc: remove irrelevant comment

* test: address review comments

* Revert "misc: remove irrelevant comment"

This reverts commit a89a5505db59407a6ce7a8e8ab8e274ec0ee8f3f.

* test: exists
2020-03-04 16:43:35 +03:00
Marcin Kostrzewa
da392ff26f
Split tests & select random port 2020-03-03 11:16:17 +01:00
Marcin Kostrzewa
5628752271
Rope data structure (#561) 2020-02-28 14:17:48 +01:00
Łukasz Olczak
0b22606fa1
File and directory creation for LS (#560) 2020-02-28 10:37:42 +00:00
Łukasz Olczak
fe471314ec
File Reads for the Language Server (#559)
File Reads for the Language Server
2020-02-26 18:03:14 +01:00
Łukasz Olczak
016602972f
File write feature. (#557)
Provides writing to a file capability. It writes a textual content to an arbitrary file.
2020-02-25 14:38:48 +01:00
Marcin Kostrzewa
d394888a5a
Capabilities system & canEdit capability (#555) 2020-02-24 11:23:08 +01:00
Marcin Kostrzewa
639c2aeceb
Json RPC improvements & basic server structure. (#522) 2020-02-21 12:35:14 +01:00
Dmitry Bushev
8d8e95e14a
Update to scala 2.13.1 (#481) 2020-02-13 14:33:39 +00:00
Dmytro Mitin
3412606e2a
Subset of LSP - Part 1 (#453)
* Rename language-server -> runner, add language-server, gateway

* Add entry point --lsp

* Add Gateway, LanguageServer

* Add stab for Initialize

* Add stubs for Initialize, Initialized

* Add GatewayTest

* fix PR

* increase timeout

* merge with master

* fix compilation after merge

* reformat with scalafmt

* Add TODOs

* Add doc for gateway

* Update CONTRIBUTING.md

* Refactor code for PR

* Add Request#response(..)

* Make Initialize, Initialized extractor objects

* Refactor for -> map

* Fix docs

* Remove DerivationConfig

* Make Request, Notification polymorphic

* Add Param.Array, Params.Array

* Replace Decoder#apply -> tryDecode

* Refactor code

* Add docs

* Refactor code

* Refactor code

* Refactor code

* Make gateway a pure actor

* Add client capabilities

* Add server capabilities

* Add docs for capabilities

* Add docs

* Add docs

* Fix Server.Config

* Update doc for Server

* Add requests, notifications and params

* Improve PR

* Rename Protocol -> JsonRpcController

* Add docs

* Add requests and notifications

* Fix Result

* Add requests and notifications

* Add WillSaveTextDocumentWaitUntil request params and result

* Add params

* Add tests for requests

* Add textDocumentSync.willSaveWaitUntil server capability

* Handle text id

* Fix Edit workspace client capability

* Clean up

* Add initialize, initialized, shutdown, exit

* Add docs

* Fix identation

* Fix identation

* Refactor code

* Add docs

* Improve PR

* Add tests

* Fix docs for RequestExtractor

* Fix docs
2020-01-27 13:23:32 +02:00
Dmytro Mitin
498587e271
Stub Out Gateway and Language Server Akka Services, Implement a Starting Subset of LSP (beginning) (#418)
* Rename language-server -> runner, add language-server, gateway

* Add entry point --lsp

* Add Gateway, LanguageServer

* Add stab for Initialize

* Add stubs for Initialize, Initialized

* Add GatewayTest

* fix PR

* increase timeout

* merge with master

* fix compilation after merge

* reformat with scalafmt

* Add TODOs

* Add doc for gateway

* Update CONTRIBUTING.md

* Refactor code for PR

* Add Request#response(..)

* Make Initialize, Initialized extractor objects

* Refactor for -> map

* Fix docs

* Remove DerivationConfig

* Make Request, Notification polymorphic

* Add Param.Array, Params.Array

* Replace Decoder#apply -> tryDecode

* Refactor code

* Add docs

* Refactor code

* Refactor code

* Refactor code

* Make gateway a pure actor

* Add client capabilities

* Add server capabilities

* Add docs for capabilities

* Add docs

* Add docs

* Fix Server.Config

* Update doc for Server

* Improve PR

* Rename Protocol -> JsonRpcController

* Add docs

* Fix identation.

* Fix identation

* Fix identation

* Fix identation

* Fix docs
2020-01-17 17:35:44 +02:00
Marcin Kostrzewa
37e383b430
Polyglot API & module-level expression eval (#424) 2020-01-10 15:53:46 +01:00
Marcin Kostrzewa
1eed651728
Interpreter lifecycle & Module changes (#414) 2019-12-20 16:02:34 +01:00
Marcin Kostrzewa
85272edcb0
Graal upgrade to 19.3.0 (#350) 2019-11-22 16:38:31 +01:00
Marcin Kostrzewa
427e784663
Repl & Debugger (#345) 2019-11-19 16:16:58 +01:00
Marcin Kostrzewa
51d66cdef6
Jupyter bindings (#335) 2019-11-18 14:36:03 +01:00
Ara Adkins
bfe81a731f
Reorganise repo for further development (#308) 2019-11-08 17:32:48 +00:00