mirror of
https://github.com/roc-lang/roc.git
synced 2025-09-30 07:14:46 +00:00
Add editor/ crate
This commit is contained in:
parent
ce9e7a91f6
commit
50357acd55
4 changed files with 101 additions and 0 deletions
35
Cargo.lock
generated
35
Cargo.lock
generated
|
@ -1065,6 +1065,7 @@ dependencies = [
|
||||||
"roc_can",
|
"roc_can",
|
||||||
"roc_collections",
|
"roc_collections",
|
||||||
"roc_constrain",
|
"roc_constrain",
|
||||||
|
"roc_editor",
|
||||||
"roc_gen",
|
"roc_gen",
|
||||||
"roc_load",
|
"roc_load",
|
||||||
"roc_module",
|
"roc_module",
|
||||||
|
@ -1152,6 +1153,40 @@ dependencies = [
|
||||||
"roc_uniq",
|
"roc_uniq",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "roc_editor"
|
||||||
|
version = "0.1.0"
|
||||||
|
dependencies = [
|
||||||
|
"bumpalo",
|
||||||
|
"im",
|
||||||
|
"im-rc",
|
||||||
|
"indoc",
|
||||||
|
"inkwell",
|
||||||
|
"inlinable_string",
|
||||||
|
"maplit",
|
||||||
|
"pretty_assertions",
|
||||||
|
"quickcheck",
|
||||||
|
"quickcheck_macros",
|
||||||
|
"roc_builtins",
|
||||||
|
"roc_can",
|
||||||
|
"roc_collections",
|
||||||
|
"roc_constrain",
|
||||||
|
"roc_gen",
|
||||||
|
"roc_load",
|
||||||
|
"roc_module",
|
||||||
|
"roc_mono",
|
||||||
|
"roc_parse",
|
||||||
|
"roc_problem",
|
||||||
|
"roc_region",
|
||||||
|
"roc_reporting",
|
||||||
|
"roc_solve",
|
||||||
|
"roc_types",
|
||||||
|
"roc_unify",
|
||||||
|
"roc_uniq",
|
||||||
|
"target-lexicon",
|
||||||
|
"tokio",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "roc_fmt"
|
name = "roc_fmt"
|
||||||
version = "0.1.0"
|
version = "0.1.0"
|
||||||
|
|
|
@ -22,6 +22,7 @@ members = [
|
||||||
"vendor/ena",
|
"vendor/ena",
|
||||||
"vendor/pathfinding",
|
"vendor/pathfinding",
|
||||||
"vendor/pretty",
|
"vendor/pretty",
|
||||||
|
"editor",
|
||||||
"cli"
|
"cli"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
57
editor/Cargo.toml
Normal file
57
editor/Cargo.toml
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
[package]
|
||||||
|
name = "roc_editor"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Richard Feldman <oss@rtfeldman.com>"]
|
||||||
|
edition = "2018"
|
||||||
|
description = "An editor for Roc"
|
||||||
|
license = "Apache-2.0"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
roc_collections = { path = "../compiler/collections" }
|
||||||
|
roc_can = { path = "../compiler/can" }
|
||||||
|
roc_parse = { path = "../compiler/parse" }
|
||||||
|
roc_region = { path = "../compiler/region" }
|
||||||
|
roc_module = { path = "../compiler/module" }
|
||||||
|
roc_problem = { path = "../compiler/problem" }
|
||||||
|
roc_types = { path = "../compiler/types" }
|
||||||
|
roc_builtins = { path = "../compiler/builtins" }
|
||||||
|
roc_constrain = { path = "../compiler/constrain" }
|
||||||
|
roc_uniq = { path = "../compiler/uniq" }
|
||||||
|
roc_unify = { path = "../compiler/unify" }
|
||||||
|
roc_solve = { path = "../compiler/solve" }
|
||||||
|
roc_mono = { path = "../compiler/mono" }
|
||||||
|
roc_load = { path = "../compiler/load" }
|
||||||
|
roc_gen = { path = "../compiler/gen" }
|
||||||
|
roc_reporting = { path = "../compiler/reporting" }
|
||||||
|
# TODO switch to clap 3.0.0 once it's out. Tried adding clap = "~3.0.0-beta.1" and cargo wouldn't accept it
|
||||||
|
im = "14" # im and im-rc should always have the same version!
|
||||||
|
im-rc = "14" # im and im-rc should always have the same version!
|
||||||
|
bumpalo = { version = "3.2", features = ["collections"] }
|
||||||
|
inlinable_string = "0.1.0"
|
||||||
|
tokio = { version = "0.2", features = ["blocking", "fs", "sync", "rt-threaded", "process", "io-driver"] }
|
||||||
|
# NOTE: rtfeldman/inkwell is a fork of TheDan64/inkwell which does not change anything.
|
||||||
|
#
|
||||||
|
# The reason for this fork is that the way Inkwell is designed, you have to use
|
||||||
|
# a particular branch (e.g. "llvm8-0") in Cargo.toml. That would be fine, except that
|
||||||
|
# breaking changes get pushed directly to that branch, which breaks our build
|
||||||
|
# without warning.
|
||||||
|
#
|
||||||
|
# We tried referencing a specific rev on TheDan64/inkwell directly (instead of branch),
|
||||||
|
# but although that worked locally, it did not work on GitHub Actions. (After a few
|
||||||
|
# hours of investigation, gave up trying to figure out why.) So this is the workaround:
|
||||||
|
# having an immutable tag on the rtfeldman/inkwell fork which points to
|
||||||
|
# a particular "release" of Inkwell.
|
||||||
|
#
|
||||||
|
# When we want to update Inkwell, we can sync up rtfeldman/inkwell to the latest
|
||||||
|
# commit of TheDan64/inkwell, push a new tag which points to the latest commit,
|
||||||
|
# change the tag value in this Cargo.toml to point to that tag, and `cargo update`.
|
||||||
|
# This way, GitHub Actions works and nobody's builds get broken.
|
||||||
|
inkwell = { git = "https://github.com/rtfeldman/inkwell", tag = "llvm10-0.release1" }
|
||||||
|
target-lexicon = "0.10"
|
||||||
|
|
||||||
|
[dev-dependencies]
|
||||||
|
pretty_assertions = "0.5.1"
|
||||||
|
maplit = "1.0.1"
|
||||||
|
indoc = "0.3.3"
|
||||||
|
quickcheck = "0.8"
|
||||||
|
quickcheck_macros = "0.8"
|
8
editor/src/lib.rs
Normal file
8
editor/src/lib.rs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
use std::io;
|
||||||
|
|
||||||
|
/// The editor is actually launched from the CLI if you pass it zero arguments.
|
||||||
|
pub fn launch() -> io::Result<()> {
|
||||||
|
println!("TODO launch the editor.");
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue