emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/haskell-tng-mode 01789b1 075/385: y u no haskell-mode?


From: ELPA Syncer
Subject: [nongnu] elpa/haskell-tng-mode 01789b1 075/385: y u no haskell-mode?
Date: Tue, 5 Oct 2021 23:59:04 -0400 (EDT)

branch: elpa/haskell-tng-mode
commit 01789b1a9d93f47c725e6270b737304e88e078c6
Author: Tseen She <ts33n.sh3@gmail.com>
Commit: Tseen She <ts33n.sh3@gmail.com>

    y u no haskell-mode?
---
 README.md | 20 ++++++++++++++------
 1 file changed, 14 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md
index f69477d..fb211a4 100644
--- a/README.md
+++ b/README.md
@@ -4,17 +4,25 @@ This is an exploratory alternative to 
[`haskell-mode`](https://github.com/haskel
 
 ## Why?
 
-`haskell-mode` is almost 30 years old and has accumulated more than 25,000 
lines of code. It's too much to handle.
+In [Lessons from 6 Software 
Rewrites](https://medium.com/@herbcaudill/lessons-from-6-software-rewrite-stories-635e4c8f7c22),
 the author concludes *avoid rewrites and make incremental improvements 
instead, unless you want to a) remove functionality or b) take a different 
approach*.
 
-Meanwhile, the GNU Emacs ecosystem has evolved to provide many features that 
`haskell-mode` independently implemented, such as 
[`projectile`](https://github.com/bbatsov/projectile), 
[`comint`](https://masteringemacs.org/article/comint-writing-command-interpreter),
 [`highlight-symbol`](https://melpa.org/##/highlight-symbol), 
[`pretty-symbols`](https://github.com/drothlis/pretty-symbols), 
[`company`](http://company-mode.github.io), 
[`yasnippet`](http://joaotavora.github.io/yasnippet/), [`p [...]
+### Remove Functionality
 
-## Approach
+`haskell-mode` is almost 30 years old and has accumulated more than 25,000 
lines of code aimed at a wide variety of users from academics to industrial 
software engineers. We choose to focus on the requirements of the industrial 
engineer, removing features that are deeply embedded in the design of the 
original codebase.
+
+### Different Approach
+
+During those past 30 years, the GNU Emacs ecosystem has evolved to provide 
many features that `haskell-mode` independently implemented, such as 
[`projectile`](https://github.com/bbatsov/projectile), 
[`comint`](https://masteringemacs.org/article/comint-writing-command-interpreter),
 [`highlight-symbol`](https://melpa.org/##/highlight-symbol), 
[`pretty-symbols`](https://github.com/drothlis/pretty-symbols), 
[`company`](http://company-mode.github.io), 
[`yasnippet`](http://joaotavora.github.io [...]
+
+We choose to use idiomatic libraries to provide features, rather than building 
ground-up solutions.
+
+## Goal
 
 The goal of this friendly rewrite is to produce software that any Haskell 
developer can use, understand and build upon ([Emacs 
Lisp](https://www.gnu.org/software/emacs/manual/elisp.html) is fun to learn).
 
 This can be achieved by preferring a simple and small codebase targeting 
[Haskell2010](https://www.haskell.org/onlinereport/haskell2010/), with 
automated tests for every feature.
 
-Old versions of `ghc` and extensions to the Haskell language may not be 
supported, to reduce the complexity of the codebase. For example, [literate 
Haskell](https://wiki.haskell.org/Literate_programming) will not be supported, 
and `ghc` language extensions must be justified on a per-case basis.
+Old versions of `ghc` and extensions to the Haskell language may not be 
supported, to reduce the complexity of the codebase. For example, [literate 
Haskell](https://wiki.haskell.org/Literate_programming) will not be supported, 
and `ghc` language extensions must be justified on a per-case basis. We are 
sympathetic to language extensions that are popular in the free software and 
commercial ecosystems.
 
 If it is possible to implement a feature using another minor mode, or command 
line tool, then we would prefer not to accept the feature.
 
@@ -22,7 +30,7 @@ If it is possible to implement a feature using another minor 
mode, or command li
 
 Bug reports and feature requests are a source of anxiety for maintainers, and 
encourage an unhealthy customer / supplier relationship between users and 
contributors.
 
-Instead, and following the [anarchical spirit of 
Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf),
 we encourage discussions and debate around code contributions. Merge requests 
can be raised by anybody and discussed by anybody, and do not need to be 
complete. A failing automated test is the only way to report a bug. If the 
maintainers are convinced by the technical merit and quality of a proposal, 
they may accept it.
+Instead, and following the [anarchical spirit of 
Haskell](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/07/history.pdf),
 we encourage discussions and debate around code contributions. Merge requests 
can be raised by anybody and discussed by anybody, and do not need to be 
complete. An automated test is the only way to report a bug. If the maintainers 
are convinced by the technical merit and quality of a proposal, they may accept 
it.
 
 ## Install
 
@@ -42,7 +50,7 @@ This is the status of core features:
 - Navigation:
   - [x] performance-minded `syntax-table`
   - [x] `font-lock` to visually distinguish types and values
-  - [ ] `sexp` navigation (SMIE)
+  - [ ] `sexp` navigation (SMIE) **IN PROGRESS**
   - [ ] `projectile` / [`fast-tags`](https://github.com/elaforge/fast-tags) 
integration for `TAGS`
   - [ ] hoogle CLI jump-to-source
   - [ ] `imenu` population



reply via email to

[Prev in Thread] Current Thread [Next in Thread]