Commit Graph

47 Commits

Author SHA1 Message Date
Łukasz Olczak
b2f67c5353
project/create and project/delete methods (#615) 2020-03-24 13:03:43 +01:00
Łukasz Olczak
2863498da3
Scaffold the Project Manager (#610) 2020-03-18 11:41:55 +01:00
Michał Wawrzyniec Urbańczyk
ad806e7a81
Fix for Parser Giving Ids (#595) 2020-03-13 18:20:52 +01:00
Josef
ed1a37f902
Fix parsing of metadata. (#604) 2020-03-13 12:34:38 +01:00
Josef
c2df4e7957
Store idmap with metadata in source file. (#586) 2020-03-11 21:13:23 +01:00
Michał Wawrzyniec Urbańczyk
22c431c796
Parser Attaching Ids to Expressions (#577)
This PR makes two changes:
1. parser will give IDs to nodes' expressions (unless already set);
2. `ASTOf.equals` will not compare IDs

Both were already agreed to and implemented as part of `wip/mwu/graph-syntax` branch (though 1. in quite different shape). However, it was abandoned after Rust was selected as the technology for IDE "backend". Now, as we are reimplementing double representation in Rust we need parts of the technology back in the parser.

Prerequisite for https://github.com/luna/ide/issues/186.
Implements https://github.com/luna/ide/issues/228.
2020-03-09 15:49:04 +01:00
Łukasz Olczak
e5530045bf
text/openFile method (#575) 2020-03-06 15:17:46 +01:00
Michał Wawrzyniec Urbańczyk
75127d07b9
Fixed nested serialization on the parser service request format. (#558) 2020-02-26 14:32:05 +01:00
Josef
083fa0e4a5
Pass id map to parser calls. (#556) 2020-02-25 13:11:20 +01:00
Josef
06363f4126
Pass id map to parser calls. (#519) 2020-02-19 13:10:01 +01:00
Ara Adkins
adf5fe7db2
Add more in-depth tests to core (#489) 2020-02-14 16:29:24 +00:00
Dmitry Bushev
8d8e95e14a
Update to scala 2.13.1 (#481) 2020-02-13 14:33:39 +00:00
Ara Adkins
9dee1911f8
Add smart constructors for the core nodes (#480) 2020-02-13 09:52:05 +00:00
Ara Adkins
ba84ee7e6e
Implement the primitive core entities (#463) 2020-01-31 16:58:35 +00:00
Michał Wawrzyniec Urbańczyk
4533780d1f
Remove IDE Code From This Repository (#461)
* removed IDE code

* updated readme, removed ide dir

* typo

* Update README.md

Co-Authored-By: Ara Adkins <iamrecursion@users.noreply.github.com>

* flatten common/scala to scala

Co-authored-by: Ara Adkins <iamrecursion@users.noreply.github.com>
2020-01-29 23:35:03 +01:00
Marcin Kostrzewa
a2703bb296
Language Server files interface (#462) 2020-01-29 16:17:36 +01:00
Michał Wawrzyniec Urbańczyk
175212bf4c
File Manager Client Libary for Rust (#454)
ref #423
2020-01-25 02:38:59 +01:00
Ara Adkins
053df2ac2b
Upgrade the graph macros (#456) 2020-01-24 18:56:52 +00:00
Maciej Mikołajek
222b132aee Enso-Doc: Changes to style & HTML generator (#428) 2020-01-24 03:44:44 +01:00
Michał Wawrzyniec Urbańczyk
dbecb2c871
JSON-RPC Client Support Library for Rust (#429)
This PR adds `json-rpc` crate — a library facilitating writing clients using JSON-RPC 2.0 protocol.

This library is meant to be used in implementation of File Manager and, in future, of Language Server clients.

The library is agnostic about `Transport` — but the interface has been designed in compliance with web-sys websockets, as this will be primary platform. 

The RPC clients implemented on top of this library are expected to provide Future-based asynchronous API.

Client is designed to work in a single-thread environment,

Implements #426.
2020-01-18 03:45:38 +01:00
Josef
a29cadbd48
Add CI For Rust. (#410) 2020-01-15 11:56:42 +01:00
Michał Wawrzyniec Urbańczyk
2f015c70de
HasSpan and HasRepr implementation for AST (#416)
Provides implementation of `HasSpan` and (newly introduced) `HasRepr` for all relevant Ast types.
Implements #379.

Wherever feasible, I tried to reduce boilerplate with macros. Certainly more can be done in that regard but that'd require spending more time on this task than we allocated.
2020-01-08 00:51:59 +01:00
Michał Wawrzyniec Urbańczyk
192440bedd
derive(Iterator) support for structs with fields of dependent types (#412)
This adds support for using `derive(Iterator)` to iterate over such structures like 
```rust 
struct Foo<T> { 
    a:(T,U,T), 
    b:Option<T> 
}
```
i.e. where fields are dependent over last type argument, however they do not store it directly.

Dependent types like `Option<T>` are required to provide a compatible `iter` method.

Implements #407.
2019-12-21 03:55:39 +01:00
Marcin Kostrzewa
1eed651728
Interpreter lifecycle & Module changes (#414) 2019-12-20 16:02:34 +01:00
Michał Wawrzyniec Urbańczyk
3455d75101
derive(Iterator) support for enum types (#387)
This PR extends `derive(Iterator)` proc macro to support enumeration type when they have variants with a single unnamed field, that implements `IntoIterator`.
Thanks to that, it is now finally possible to derive iterator for the `Shape` type and similar enum types used in AST.
Implements #385
2019-12-18 14:30:46 +01:00
Josef
0b9664de60
Integrating Scala Parser Into Rust. (#362) 2019-12-17 14:33:21 +01:00
Michał Wawrzyniec Urbańczyk
68c6ceff40
Completing Rust AST data structures (#378)
This pull request adjusts AST data structures in Scala and Rust to be compatible, while also fixing a number of JSON format mismatches find along the way. This implements #336.
2019-12-16 14:03:59 +01:00
Ara Adkins
c3acc5c615
Complete AST to AstExpression translation (#374) 2019-12-06 19:22:20 +00:00
Josef
8ae06e0f09
support escaping in raw strings (#369) 2019-12-05 11:13:46 +01:00
Ara Adkins
db4cbacec3
Add suspended blocks, fix thunk performance (#371)
This commit adds support for suspended blocks in the interpreter and also fixes 
a major performance issue with nested thunks that was causing quadratic 
evaluation time.
2019-12-04 16:00:53 +00:00
Michał Wawrzyniec Urbańczyk
07baa9212b
Scala/Rust JSON serialization protocol unification (#370)
This PR updates JSON serialization in Scala in Rust, so they are compatible, implementing #297. The parser wrapper now uses the real AST in API. Still most of non-trivial use-cases will fail. Once #336 is done, it should finally work.
2019-12-04 16:34:54 +01:00
Marcin Kostrzewa
c7b3d31415
Source locations in Truffle nodes (#368) 2019-12-02 19:41:46 +01:00
Michał Wawrzyniec Urbańczyk
47f9a4889c
Scala AST refactoring (#360)
A new implementation of Scala AST, as described in #352.
2019-12-02 14:30:37 +01:00
Marcin Kostrzewa
6bc14a3b9f Add a tiny subset of nodelocs (#364) 2019-11-29 12:36:48 +00:00
Marcin Kostrzewa
8432a9695a
Absolute code locations (#363) 2019-11-29 10:27:34 +01:00
Maciej Mikołajek
5ce9f0b023
Documentation Generator: Styles (#359)
* wip

* up style

* WD changes

* @wdanilo - should be ready

* Tuple -> case class

* hide bodies in constructors

* rm test

* final touches
2019-11-27 21:05:48 +01:00
Ara Adkins
9a4332108f
Add lambdas, types, and methods support to new syntax (#358) 2019-11-27 11:32:36 +00:00
Maciej Mikołajek
1e3e105232
Documentation Parser: Fix lists parsing, changes to HTML file rendering (#357)
* save a questionable bit of code

* Fix indentation manager by introducing stack of indents

* more fixes

* ui wip

* HTML Rendering change - first module name, then documentation, last
module functions

* Apply changes requested by @wdanilo
2019-11-27 00:48:35 +01:00
Josef
9665150c5d
Enable Scalajs For Syntax (#329) 2019-11-26 14:02:50 +01:00
Maciej Mikołajek
05877a7d0c
Documentation Parser: Extended HTML Files Generator (#237)
* Update CSS

* Add some code - WIP

* recursive Documented HTML generation

* WIP - Better documentation, better code, better test

* documentation wip

* code complexity changes

* update  docs

* update docs

* move saving out of class

* move all html generator code to separate object

* Fix documentation

* Change example text

* 80 chars/ln

* Merge remote-tracking branch 'origin/master' into wip/mm/doc-parser-html-output

# Conflicts:
#	Syntax/specialization/src/main/scala/org/enso/syntax/text/Parser.scala

* Merge remote-tracking branch 'origin/master' into wip/mm/doc-parser-html-output

# Conflicts:
#	Syntax/specialization/src/main/scala/org/enso/syntax/text/Parser.scala

* just add example

* add sass

* minor fix

* cleanup

* rm unused func
2019-11-25 10:36:31 +01:00
Michał Wawrzyniec Urbańczyk
e51a06e263
Initial Rust AST implementation (#348)
AST lives in `ast` package, that relies significantly on `ast-macros` to generate boilerplate.
Additional `macro-utils` library was split out from `shapely-macros` and `ast-macros`.

The implementation was contributed by @wdanilo , I basically just did some refactoring, documenting and testing.

### Important Notes
* AST is known to be incomplete structurally, finishing it is #336 
* AST is missing a number of necessary functions, some of them explicitly marked as FIXME in the code, finishing them is #338 
* while I have written some tests, they are not yet part of CI — I want to this smart way (i.e. allowing tests that rely on parser), it is tracked as #340 
* AST JSON serialization is incompatible with Scala, solving this is #297 
* there is some non-deterministic issue with CI on Windows — I need to look into this closer but it seems to not be related to any Rust parts
2019-11-22 15:21:18 +01:00
Ara Adkins
b91ab25fdb
Translate arith expressions using the new parser (#346) 2019-11-20 09:18:53 +00:00
Michał Wawrzyniec Urbańczyk
d1796345a4
The prelude library, coming from basegl, in preparation for AST. (#342) 2019-11-19 22:26:54 +01:00
Michał Wawrzyniec Urbańczyk
6078b54f50
Wrapping parser for Rust (#325)
* deriving JSON Encoder for Scala AST types
* websocket-based Parser Service
* wrapper for Parser in Rust that includes client for Parser Service
2019-11-18 14:12:16 +01:00
Ara Adkins
22aa4efda8
Add a low-level graph library (#334) 2019-11-18 11:18:16 +00:00
Josef
8da25bec2d
Text AST Reimplementation. (#327) 2019-11-14 13:55:45 +01:00
Ara Adkins
bfe81a731f
Reorganise repo for further development (#308) 2019-11-08 17:32:48 +00:00