From 0e54acdf44c4d3e0f070afd198a2b37b12619596 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:28:02 +0100 Subject: [PATCH 01/15] initial reorganisation --- README.md | 51 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 150567670..3b0f61124 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,4 @@ -Home to the community effort to provide a common service backend for any IDE -making use of Haskell in general and GHC in particular. - -## Status - -This is currently a blank canvas. There has been a fair amount of discussion -about what needs to be done/exist, this is the place where it should all come -together. - -Right now there is a google group/mailing list for -[haskell-ide](https://groups.google.com/forum/#!forum/haskell-ide) and an empty -IRC channel at #haskell-ide-engine on freenode. - -The initial discussions have taken place in a number of email threads/IRC -channels, this should become the place where these discussions happen in future. - -If anyone wants to be a member of this project, contact @alanz or @hvr to add -you to it. - +# haskell-ide-engine [![Available on Hackage][badge-hackage]][hackage] [![License BSD3][badge-license]][license] [![Build Status][badge-travis]][travis] @@ -28,6 +10,37 @@ you to it. [badge-license]: https://img.shields.io/badge/license-BSD3-green.svg?dummy [license]: https://github.com/haskell/haskell-ide-engine/blob/master/LICENSE + +This project aims to be the universal `IDE interface` to all `haskell tools`, providing + + - [ ] Project Configuration + - [ ] Project Compilation + - [ ] Errors + - [ ] Warnings + - [ ] Linter + - [ ] Testing + - [ ] Get type at point + - [ ] Autocompletion + - [ ] Code beautify + - [ ] Jump to definition + - [ ] Call tracking + - [ ] REPL + - [ ] Documentation + +## About + + - isn't this _again_ an other `ghc-mod` or `ide-backend` like project ? + No: + > Both the ghc-mod and ide-backend maintainers have agreed to contribute code to this new repository and then rebase the old repos on this. The reason we're using a new repo instead of modifying one of the existing ones is so that the existing projects experience no disruption during this migration process. If this was a new set of people starting a new project without support from existing projects, I'd agree with you. But Alan's reached out to existing players already, which is an important distinction. + +Right now there is a google group/mailing list for +[haskell-ide](https://groups.google.com/forum/#!forum/haskell-ide) and an +IRC channel at #haskell-ide-engine on freenode. + +If anyone wants to be a member of this project, contact @alanz or @hvr to add +you to it. + + ## Next steps After lots of discussion around layers and licensing, it looks like the way From 85735125187867c137eef370ee9cf2d02b7123eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:29:05 +0100 Subject: [PATCH 02/15] misc --- README.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 3b0f61124..512ba22cc 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# haskell-ide-engine +# haskell-ide-engine [![Available on Hackage][badge-hackage]][hackage] [![License BSD3][badge-license]][license] [![Build Status][badge-travis]][travis] @@ -13,19 +13,19 @@ This project aims to be the universal `IDE interface` to all `haskell tools`, providing - - [ ] Project Configuration - - [ ] Project Compilation - - [ ] Errors - - [ ] Warnings - - [ ] Linter - - [ ] Testing - - [ ] Get type at point - - [ ] Autocompletion - - [ ] Code beautify - - [ ] Jump to definition - - [ ] Call tracking - - [ ] REPL - - [ ] Documentation + - [ ] Project Configuration + - [ ] Project Compilation + - [ ] Errors + - [ ] Warnings + - [ ] Linter + - [ ] Testing + - [ ] Get type at point + - [ ] Autocompletion + - [ ] Code beautify + - [ ] Jump to definition + - [ ] Call tracking + - [ ] REPL + - [ ] Documentation ## About From bf70cc7d672713717c78009a52e8a25c44442aa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:39:42 +0100 Subject: [PATCH 03/15] _ --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 512ba22cc..2548f846d 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,14 @@ This project aims to be the universal `IDE interface` to all `haskell tools`, pr - [ ] REPL - [ ] Documentation + via a `command line interface` or a `webservice` to best suit any possible editor. + ## About - isn't this _again_ an other `ghc-mod` or `ide-backend` like project ? + No: + > Both the ghc-mod and ide-backend maintainers have agreed to contribute code to this new repository and then rebase the old repos on this. The reason we're using a new repo instead of modifying one of the existing ones is so that the existing projects experience no disruption during this migration process. If this was a new set of people starting a new project without support from existing projects, I'd agree with you. But Alan's reached out to existing players already, which is an important distinction. Right now there is a google group/mailing list for From d8a6d228b6932e83b514db23a37be1bcb6d15020 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:40:39 +0100 Subject: [PATCH 04/15] fix the quote --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2548f846d..6b9956710 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ This project aims to be the universal `IDE interface` to all `haskell tools`, pr No: - > Both the ghc-mod and ide-backend maintainers have agreed to contribute code to this new repository and then rebase the old repos on this. The reason we're using a new repo instead of modifying one of the existing ones is so that the existing projects experience no disruption during this migration process. If this was a new set of people starting a new project without support from existing projects, I'd agree with you. But Alan's reached out to existing players already, which is an important distinction. + > Both the ghc-mod and ide-backend maintainers have agreed to contribute code to this new repository and then rebase the old repos on this. The reason we're using a new repo instead of modifying one of the existing ones is so that the existing projects experience no disruption during this migration process. If this was a new set of people starting a new project without support from existing projects, I'd agree with you. But Alan's reached out to existing players already, which is an important distinction. Right now there is a google group/mailing list for [haskell-ide](https://groups.google.com/forum/#!forum/haskell-ide) and an From 4a508156b22621364bb22729fb825346f188b7ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:51:19 +0100 Subject: [PATCH 05/15] better titles --- README.md | 6 ++---- docs/Challenges.md | 29 +++++++++++++++-------------- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 6b9956710..b3edfe0d5 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,9 @@ This project aims to be the universal `IDE interface` to all `haskell tools`, pr via a `command line interface` or a `webservice` to best suit any possible editor. -## About +### Is this _again_ an other `ghc-mod` or `ide-backend` like project ? - - isn't this _again_ an other `ghc-mod` or `ide-backend` like project ? - - No: +No: > Both the ghc-mod and ide-backend maintainers have agreed to contribute code to this new repository and then rebase the old repos on this. The reason we're using a new repo instead of modifying one of the existing ones is so that the existing projects experience no disruption during this migration process. If this was a new set of people starting a new project without support from existing projects, I'd agree with you. But Alan's reached out to existing players already, which is an important distinction. diff --git a/docs/Challenges.md b/docs/Challenges.md index 6fdfee8e7..e29edf487 100644 --- a/docs/Challenges.md +++ b/docs/Challenges.md @@ -1,27 +1,28 @@ # Challenges encountered by existing tooling -## ghc-mod +### ghc-mod -- Relying on files/binary data that Cabal uses which were never meant to be part of an API or protocol meant breakage was frequent and needing a specific version of ghc-mod to be matched with a specific version of Cabal. + 1. Relying on files/binary data that Cabal uses which were never meant to be part of an API or protocol meant breakage was frequent and needing a specific version of ghc-mod to be matched with a specific version of Cabal. + 2. A bit slow, especially on larger projects. + 3. Related to `1.`, hard for new people to get installed and working with their editor + projects. -- A bit slow, especially on larger projects. +:memo: Don't rely on files/binary data that Cabal uses +:memo: It must be fast to be pleasant to use -- Related to #1, hard for new people to get installed and working with their editor + projects. +### ide-backend / stack-ide -## ide-backend / stack-ide + 1. For various reasons mainly related to its original usecase, all of the information yielded by compilation gets sent to a separate process than ide-backend-server (ghc). While it's nice to have a datatype for all the info yielded by a compilation, this seems wasteful from a performance perspective. It also means extending ide-backend with new features requires a lot more boilerplate than it ought to. -- For various reasons mainly related to its original usecase, all of the information yielded by compilation gets sent to a separate process than ide-backend-server (ghc). While it's nice to have a datatype for all the info yielded by a compilation, this seems wasteful from a performance perspective. It also means extending ide-backend with new features requires a lot more boilerplate than it ought to. + 2. Another one of the reasons to have this multiple process architecture was to be able to accept mutations of the configuration of GHC (changing flags, etc), and intelligently either get GHC to update its flags or restart the ide-backend-server. This turned out to be very tricky, and we had lots of different issues and it's still imperfect. -- Another one of the reasons to have this multiple process architecture was to be able to accept mutations of the configuration of GHC (changing flags, etc), and intelligently either get GHC to update its flags or restart the ide-backend-server. This turned out to be very tricky, and we had lots of different issues and it's still imperfect. Let's just force a backend restart if you change ghc or RTS options. +:memo: Let's just force a backend restart if you change ghc or RTS options. -- With stack-ide, we ended up wrapping the pure API with another layer of datatypes for conversion to JSON. This meant the dataflow from the backend looked like: GHC types -> internal datatypes with explicit sharing -> byte serialized representation sent to ide-backend user -> public datatypes with sharing reified -> ide-backend function call -> stack-ide json datatype + 3. With stack-ide, we ended up wrapping the pure API with another layer of datatypes for conversion to JSON. This meant the dataflow from the backend looked like: GHC types -> internal datatypes with explicit sharing -> byte serialized representation sent to ide-backend user -> public datatypes with sharing reified -> ide-backend function call -> stack-ide json datatype -Lets avoid a lot of layers. +:memo: Lets avoid a lot of layers. ## Flycheck -- Works pretty well/reliably (for @bitemyapp anyway), but a bit slow. Basically fires off a `stack build` (or `cabal build`) or `hlint` from the command line and parses stdout. - -- Emacs-only - -- Easier to get working reliably than ghc-mod + 1. Works pretty well/reliably (for @bitemyapp anyway), but a bit slow. Basically fires off a `stack build` (or `cabal build`) or `hlint` from the command line and parses stdout. + 2. Emacs-only + 3. Easier to get working reliably than `ghc-mod` From 57597aefedc16056cdb19e24c629f6678a1595f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:51:35 +0100 Subject: [PATCH 06/15] add links to docs --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index b3edfe0d5..aca5e0aaf 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,12 @@ No: > Both the ghc-mod and ide-backend maintainers have agreed to contribute code to this new repository and then rebase the old repos on this. The reason we're using a new repo instead of modifying one of the existing ones is so that the existing projects experience no disruption during this migration process. If this was a new set of people starting a new project without support from existing projects, I'd agree with you. But Alan's reached out to existing players already, which is an important distinction. +This project doesn't start from scratch: + +1. See why [we should superseed previous tools](/docs/Challenges) +2. See the [list of existting tools / features ](/docs/Tools.md) + +### Architecture Right now there is a google group/mailing list for [haskell-ide](https://groups.google.com/forum/#!forum/haskell-ide) and an IRC channel at #haskell-ide-engine on freenode. From 4a314fd6253673216ebb15e46d23a2de76bc08d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:58:01 +0100 Subject: [PATCH 07/15] better aims list --- README.md | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index aca5e0aaf..96e5ea42b 100644 --- a/README.md +++ b/README.md @@ -11,23 +11,18 @@ [license]: https://github.com/haskell/haskell-ide-engine/blob/master/LICENSE -This project aims to be the universal `IDE interface` to all `haskell tools`, providing - - - [ ] Project Configuration - - [ ] Project Compilation - - [ ] Errors - - [ ] Warnings - - [ ] Linter - - [ ] Testing - - [ ] Get type at point +This project aims to be the universal `IDE interface` to all `haskell tools`. +It will adapt to all ide by offering a `command line interface` and a `webservice`: + + - [ ] cabal / stack project `Configuration` and `Compilation` + - [ ] Errors Checking, Warnings, Linter, Dead code detection, + - [ ] Refactoring tools, Code beautify, Auto-apply suggestions + - [ ] Code generation + - [ ] Run testing Suite, check coverage - [ ] Autocompletion - - [ ] Code beautify - - [ ] Jump to definition - - [ ] Call tracking + - [ ] Get type at point + - [ ] Jump to definition, find Usages, Browse documentation, Generate ctags - [ ] REPL - - [ ] Documentation - - via a `command line interface` or a `webservice` to best suit any possible editor. ### Is this _again_ an other `ghc-mod` or `ide-backend` like project ? From 0289790a68fde9e1f662e02ac8a968dc4ba609e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:58:31 +0100 Subject: [PATCH 08/15] fix markdown --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 96e5ea42b..0abb551ac 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ This project aims to be the universal `IDE interface` to all `haskell tools`. It will adapt to all ide by offering a `command line interface` and a `webservice`: - [ ] cabal / stack project `Configuration` and `Compilation` - - [ ] Errors Checking, Warnings, Linter, Dead code detection, + - [ ] Errors Checking, Warnings, Linter, Dead code detection - [ ] Refactoring tools, Code beautify, Auto-apply suggestions - [ ] Code generation - [ ] Run testing Suite, check coverage From c8e49c930d7220a682497a5fe5cea55d8c27a38c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Thu, 5 Nov 2015 23:59:30 +0100 Subject: [PATCH 09/15] attempt to bring badges on first line --- README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/README.md b/README.md index 0abb551ac..5057e1982 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@ -# haskell-ide-engine -[![Available on Hackage][badge-hackage]][hackage] -[![License BSD3][badge-license]][license] -[![Build Status][badge-travis]][travis] +# haskell-ide-engine [![Available on Hackage][badge-hackage]][hackage] [![License BSD3][badge-license]][license] [![Build Status][badge-travis]][travis] [badge-travis]: https://travis-ci.org/haskell/haskell-ide-engine.png?branch=master [travis]: https://travis-ci.org/haskell/haskell-ide-engine From 5ec763f24d0edc84f4d01b6d5faef18e13afb20f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Fri, 6 Nov 2015 00:00:15 +0100 Subject: [PATCH 10/15] revert --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5057e1982..d67c01431 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,7 @@ -# haskell-ide-engine [![Available on Hackage][badge-hackage]][hackage] [![License BSD3][badge-license]][license] [![Build Status][badge-travis]][travis] +# haskell-ide-engine +[![Available on Hackage][badge-hackage]][hackage] +[![License BSD3][badge-license]][license] +[![Build Status][badge-travis]][travis] [badge-travis]: https://travis-ci.org/haskell/haskell-ide-engine.png?branch=master [travis]: https://travis-ci.org/haskell/haskell-ide-engine From 580a0e3bfbf6589b08b1d732a212f643a9e9142f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Fri, 6 Nov 2015 00:06:52 +0100 Subject: [PATCH 11/15] invite people to join the project --- README.md | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index d67c01431..4d5328d60 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # haskell-ide-engine -[![Available on Hackage][badge-hackage]][hackage] -[![License BSD3][badge-license]][license] +[![Available on Hackage][badge-hackage]][hackage] +[![License BSD3][badge-license]][license] [![Build Status][badge-travis]][travis] [badge-travis]: https://travis-ci.org/haskell/haskell-ide-engine.png?branch=master @@ -11,12 +11,13 @@ [license]: https://github.com/haskell/haskell-ide-engine/blob/master/LICENSE -This project aims to be the universal `IDE interface` to all `haskell tools`. -It will adapt to all ide by offering a `command line interface` and a `webservice`: +This project aims to be the __universal IDE interface__ to __all haskell tools__. + +It will adapt to all ide by offering a `command line interface` and a `webservice`. - [ ] cabal / stack project `Configuration` and `Compilation` - [ ] Errors Checking, Warnings, Linter, Dead code detection - - [ ] Refactoring tools, Code beautify, Auto-apply suggestions + - [ ] Refactoring tools, Code beautify, Auto-apply suggestion - [ ] Code generation - [ ] Run testing Suite, check coverage - [ ] Autocompletion @@ -35,19 +36,20 @@ This project doesn't start from scratch: 1. See why [we should superseed previous tools](/docs/Challenges) 2. See the [list of existting tools / features ](/docs/Tools.md) -### Architecture -Right now there is a google group/mailing list for -[haskell-ide](https://groups.google.com/forum/#!forum/haskell-ide) and an -IRC channel at #haskell-ide-engine on freenode. +## Join the project ! + +:love: We need your help! Haskell tooling dream is near :love: + +You can already: + + - Register in our [google group mailing list](https://groups.google.com/forum/#!forum/haskell-ide) + - Join our IRC channel at `#haskell-ide-engine` on `freenode`. + - Ask @alanz or @hvr to join the project -If anyone wants to be a member of this project, contact @alanz or @hvr to add -you to it. +------------- -## Next steps -After lots of discussion around layers and licensing, it looks like the way -forward is as follows ### BIOS layer From 5b00ea4fa698a01b078f1fbfb7ff17a8755a8344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Fri, 6 Nov 2015 00:14:05 +0100 Subject: [PATCH 12/15] improve readability --- README.md | 65 +++++++++++++++++++++++++------------------------------ 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 4d5328d60..3a49c0b17 100644 --- a/README.md +++ b/README.md @@ -34,58 +34,53 @@ No: This project doesn't start from scratch: 1. See why [we should superseed previous tools](/docs/Challenges) -2. See the [list of existting tools / features ](/docs/Tools.md) +2. Check the [list of existting tools / features ](/docs/Tools.md) +3. See more [other tools / ide for inpiration](/docs/Inspirations.md) -## Join the project ! +## It's time to join the project ! -:love: We need your help! Haskell tooling dream is near :love: - -You can already: +:heart: Haskell tooling dream is near, we need your help ! :heart: - Register in our [google group mailing list](https://groups.google.com/forum/#!forum/haskell-ide) - Join our IRC channel at `#haskell-ide-engine` on `freenode`. - - Ask @alanz or @hvr to join the project + - Fork this repo and hack as much as you can. + - Ask @alanz or @hvr to join the project. ------------- +## Architecture +1. BIOS layer -### BIOS layer - -ghc-mod stays an AGPL project, and is used for its "awesome sauce" in terms of -the BIOS functions that it does so well. This interface is -[straightforward to use](http://alanz.github.io/haskell%20refactorer/2015/10/02/ghc-mod-for-tooling), -and if a license-constrained user wants to do something else it is also easy to -replace, if there is strong control of the operating environment. + ghc-mod stays an AGPL project, and is used for its "awesome sauce" in terms of + the BIOS functions that it does so well. This interface is + [straightforward to use](http://alanz.github.io/haskell%20refactorer/2015/10/02/ghc-mod-for-tooling), + and if a license-constrained user wants to do something else it is also easy to + replace, if there is strong control of the operating environment. -### Plugin layer +2. Plugin layer -A layer providing a point to integrate tools and existing functions, probably -including ghci. + A layer providing a point to integrate tools and existing functions, probably + including ghci. -### IDE interfacing layer +3. IDE interfacing layer -This provides a set of logical channels that can be integrated into standard -IDEs. The details still need to be worked out, but I would imagine something -like a channel for querying information about a project, one for a ghci session, -and whatever others are needed. These logical channels can then run over -whatever transport is appropriate to the specific IDE being integrated. + This provides a set of logical channels that can be integrated into standard + IDEs. The details still need to be worked out, but I would imagine something + like a channel for querying information about a project, one for a ghci session, + and whatever others are needed. These logical channels can then run over + whatever transport is appropriate to the specific IDE being integrated. -According to [#2](https://github.com/haskell/haskell-ide-engine/issues/2) it seems the -consensus is toward (re) using the Idris protocol, as the languages are similar -enough and it offers cross-IDE support already. + According to [#2](https://github.com/haskell/haskell-ide-engine/issues/2) it seems the + consensus is toward (re) using the Idris protocol, as the languages are similar + enough and it offers cross-IDE support already. -The Plugin and IDE layers are very fuzzy at this point, and there has been some -discussion on IRC around it. These layers may well live in a single repository -(this one), as two separate layers or just be a feature of how -haskell-ide-engine is built. + The Plugin and IDE layers are very fuzzy at this point, and there has been some + discussion on IRC around it. These layers may well live in a single repository + (this one), as two separate layers or just be a feature of how + haskell-ide-engine is built. ## Documentation -Rather than use the wiki we will put the documentation in the -[docs](https://github.com/haskell/haskell-ide-engine/tree/master/docs) directory here, -so collaborators can either edit or provide pull requests. - - * [Inspirations](https://github.com/haskell/haskell-ide-engine/blob/master/docs/Inspirations.md) - * [Tools](https://github.com/haskell/haskell-ide-engine/blob/master/docs/Tools.md) that could/should be integrated into haskell-ide-engine +All the documentation is [in the docs folder](/docs) at the root of the project. From 71cc9f02ead26efa9da8785d68474eb5fcf257e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Fri, 6 Nov 2015 00:18:32 +0100 Subject: [PATCH 13/15] clarify architecture --- README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 3a49c0b17..207e05dfc 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ This project doesn't start from scratch: ## Architecture -1. BIOS layer +1. __BIOS layer__: ghc-mod stays an AGPL project, and is used for its "awesome sauce" in terms of the BIOS functions that it does so well. This interface is @@ -59,12 +59,12 @@ This project doesn't start from scratch: and if a license-constrained user wants to do something else it is also easy to replace, if there is strong control of the operating environment. -2. Plugin layer +2. __Plugin layer__: A layer providing a point to integrate tools and existing functions, probably including ghci. -3. IDE interfacing layer +3. __IDE interfacing layer__: This provides a set of logical channels that can be integrated into standard IDEs. The details still need to be worked out, but I would imagine something @@ -81,6 +81,13 @@ This project doesn't start from scratch: (this one), as two separate layers or just be a feature of how haskell-ide-engine is built. +You can see more info [in the docs folder](/docs) at the root of the project, especially: + + - The [Architecture discussion](/docs/Architecture.md) + - The [Protocol discussion](/docs/Protocol.md) + - The [Design discussion](/docs/Design.md) + + ## Documentation All the documentation is [in the docs folder](/docs) at the root of the project. From 0a49ce444485afa5afbadcd666a35047eae1340a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Fri, 6 Nov 2015 00:39:06 +0100 Subject: [PATCH 14/15] rephrase presentation --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 207e05dfc..ce5eef9d6 100644 --- a/README.md +++ b/README.md @@ -11,9 +11,9 @@ [license]: https://github.com/haskell/haskell-ide-engine/blob/master/LICENSE -This project aims to be the __universal IDE interface__ to __all haskell tools__. +This project aims to be the __universal IDE interface__ to __all haskell tools__, proving a __full-featured and easy to query ide-backend__. -It will adapt to all ide by offering a `command line interface` and a `webservice`. +You'll find: - [ ] cabal / stack project `Configuration` and `Compilation` - [ ] Errors Checking, Warnings, Linter, Dead code detection @@ -25,6 +25,7 @@ It will adapt to all ide by offering a `command line interface` and a `webservic - [ ] Jump to definition, find Usages, Browse documentation, Generate ctags - [ ] REPL + ### Is this _again_ an other `ghc-mod` or `ide-backend` like project ? No: From f58f1d54e207a90a472134a40d1546ed50333b84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Vion?= Date: Fri, 6 Nov 2015 00:39:52 +0100 Subject: [PATCH 15/15] You'll find -> Features --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ce5eef9d6..f1a3041cd 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ This project aims to be the __universal IDE interface__ to __all haskell tools__, proving a __full-featured and easy to query ide-backend__. -You'll find: +Features: - [ ] cabal / stack project `Configuration` and `Compilation` - [ ] Errors Checking, Warnings, Linter, Dead code detection