Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 124 lines (102 sloc) 4.8 kb
0cad304 @chrisdone Alpha notice.
chrisdone authored
1 # ALPHA — don't try to use!
2
3 I'm still working on it. See the issue tracker for upcoming features
4 and bugs. Please wait until test-cases (see “Complete unit testing”
5 milestone) have been written before contributing patches.
5fdeee0 @chrisdone Added feature tracker mention.
chrisdone authored
6
0a2de9c @chrisdone Edited README.md via GitHub
chrisdone authored
7 # CONTRIBUTING
8
9 **Feedback**
10
11 I kinda avoided asking for feedback because I have a lot of stuff
12 planned and bugs to fix still. If anyone wants to create tickets
13 (dunno if you guys can create milestones) for any neat ideas you have
14 (not guaranteed to be implemented by me but good to put in a tangible
15 list):
16
17 * [Milestones are here.](https://github.com/chrisdone/haskell-emacs/issues/milestones)
18 * I also maintain the TODO/DONE in this README.md.
19 * [Create issues here.](https://github.com/chrisdone/haskell-emacs/issues)
20
21 **Developing**
22
23 * Patches welcome, but do it in a dev branch, not the master branch
07f54a6 @chrisdone Edited README.md via GitHub
chrisdone authored
24 * Not interested in "I fixed indentation and removed whitespace/I refactored X" patches at
25 the moment. Only commit hunks related to a real bugfix or new feature change.
0a2de9c @chrisdone Edited README.md via GitHub
chrisdone authored
26 * Please make small, isolated patches and preferably open a
27 ticket and associate your commit(s) with the ticket so that we have
28 a history trace.
29 * Make sure your patches work with `emacs -Q -l examples/init.el`,
30 this is a good test to check you're not making any assumptions and
31 devs and users can still try and test easily.
32
33 Architecture-wise, your main points of interest are:
34
35 * [hs.el](https://github.com/chrisdone/haskell-emacs/blob/master/src/hs.el)
36 * [hs-types.el](https://github.com/chrisdone/haskell-emacs/blob/master/src/hs-types.el)
37 * [hs-process.el](https://github.com/chrisdone/haskell-emacs/blob/master/src/hs-process.el)
38 * [hs-cabal.el](https://github.com/chrisdone/haskell-emacs/blob/master/src/hs-cabal.el)
39 * [hs-config.el](https://github.com/chrisdone/haskell-emacs/blob/master/src/hs-config.el)
40 * [hs-interactive-mode.el](https://github.com/chrisdone/haskell-emacs/blob/master/src/hs-interactive-mode.el)
41 * [hs-mode](https://github.com/chrisdone/haskell-emacs/blob/master/src/hs-mode.el)
42 * [hs-project](https://github.com/chrisdone/haskell-emacs/blob/master/src/hs-project.el)
43
44 Most things start in hs-mode, hs-interactive-mode and hs-process.
45
76692ac @chrisdone Include SPC in example bindings.
chrisdone authored
46 # QUICK TRY (includes dependencies, just run it :-)
8ca59bd @chrisdone Added required lib and example init file, fixed some possible newbie pit...
chrisdone authored
47
0a2de9c @chrisdone Edited README.md via GitHub
chrisdone authored
48 It's a bit early days, but the brave who can put up with weirdness and alpha code can try:
49
dda6c21 @chrisdone Add cabal install hasktags to README.
chrisdone authored
50 $ cabal install hasktags
8ca59bd @chrisdone Added required lib and example init file, fixed some possible newbie pit...
chrisdone authored
51 $ emacs -nw -Q -l examples/init.el
52
76692ac @chrisdone Include SPC in example bindings.
chrisdone authored
53 See examples/init.el for example bindings.
4e1c7bc @chrisdone Example file.
chrisdone authored
54
55 I will include auto-complete and auto-complete-etags.el (and any other
56 dependencies) in the distribution in future.
57
afed8e9 @chrisdone Figuring out project dir from .cabal file.
chrisdone authored
58 # DONE
8772f8d @chrisdone Updated README.md.
chrisdone authored
59
afed8e9 @chrisdone Figuring out project dir from .cabal file.
chrisdone authored
60 * Figuring out project from .cabal file
8772f8d @chrisdone Updated README.md.
chrisdone authored
61 * Named sessions
62 * Collapsed/reduced error messages.
63 * Multi-line expressions
64 * Cabal build/configure/upload/etc
65 * Type of symbol at point based on active GHCi session
66 * Completion based on current module
67 * Completion based on whole project
68 * Jump to definition
69 * Go to error/warning line and column
4153243 @chrisdone Updated completion section in TODO.
chrisdone authored
70 * In-console completion
b30d2dd @chrisdone Update README with difficulty.
chrisdone authored
71 * Automatic synchronization with GHCi session (via cabal-dev)
9f3c8dc @chrisdone Sort imports.
chrisdone authored
72 * Sort imports alphabetically
f0b6539 @chrisdone Added align imports.
chrisdone authored
73 * Align imports up nicely
0d3ea8f @chrisdone Added Cabal editing mode.
chrisdone authored
74 * Cabal file editing
6dfc909 @chrisdone Formatting fix.
chrisdone authored
75 * Cabal-dev local-repository support
1a64239 @chrisdone Added completion stuff.
chrisdone authored
76 * Language/option/keyword completion
793d08a @chrisdone Moving indented blocks of code around.
chrisdone authored
77 * Move nested blocks of code around
7c264c2 @chrisdone Navigate imports in a nice way.
chrisdone authored
78 * Jump to/back-from import list for quick editing
d05ed29 @chrisdone Updated TODO (type of symbol at point (non-local)).
chrisdone authored
79 * Type of symbol at point (non-local)
941740b @chrisdone Updated TODO for type error handling.
chrisdone authored
80 * Type error handling (in REPL, brings up an error buffer)
a1fc145 @chrisdone Pick up -XFoo lang extension suggestions and insert them in the file.
chrisdone authored
81 * Auto-insert LANGUAGE pragmas based on GHCi errors
1d49eba @chrisdone Meagre imenu (speedbar) support
chrisdone authored
82 * Meagre imenu support
78aacc2 @chrisdone Base Cabal project creation.
chrisdone authored
83 * Creation of base Cabal projects
1de747d @chrisdone Edited README.md via GitHub
chrisdone authored
84 * Preliminary loading of files in GHCi with a separate GHCi session,
85 this avoids losing type information on a failed compile
8772f8d @chrisdone Updated README.md.
chrisdone authored
86
64aa9fe @chrisdone Formatting change on TODO.
chrisdone authored
87 # TODO — EASY / TRIVIALLY SPECIFIED
b30d2dd @chrisdone Update README with difficulty.
chrisdone authored
88
2b063f5 @chrisdone Added TODO item for indenting.
chrisdone authored
89 * Indentation that doesn't suck, including indenting/deindenting whole blocks automatically
8772f8d @chrisdone Updated README.md.
chrisdone authored
90 * GHCi interaction
91 * Syntax-highlighted prompt
92 * Show-based value inspection
93 * Module awareness
94 * Cabal integration
95 * Configuration
96 * Automatic dependency inserting
97 * Interactive creation/management of Cabal file
98 * Source code editing
224f7c2 @chrisdone Add code folding to TODO
chrisdone authored
99 * Haskell-aware code-folding
8772f8d @chrisdone Updated README.md.
chrisdone authored
100 * Documentation of symbol at point
b30d2dd @chrisdone Update README with difficulty.
chrisdone authored
101 * Module import-export awareness
8772f8d @chrisdone Updated README.md.
chrisdone authored
102 * Completion based on:
103 * imported modules
104 * installed modules with automatic importation and Cabal-file dependency adding
105 * Automatic importation and de-importation of modules for used symbols
106 * Hoogle search support
a29a8c5 @chrisdone More TODO items.
chrisdone authored
107 * Hayoo search support
8772f8d @chrisdone Updated README.md.
chrisdone authored
108 * Automake/correctness checking
109 * Compilation on an interval
110 * On-the-fly hint suggestions
a29a8c5 @chrisdone More TODO items.
chrisdone authored
111 * Documentation browsing
112 * Ability to browse Haddock documentation inside Emacs (possibility for texinfo here)
b30d2dd @chrisdone Update README with difficulty.
chrisdone authored
113
64aa9fe @chrisdone Formatting change on TODO.
chrisdone authored
114 # TODO — NOT SURE / TRICKY / NONTRIVIALLY SPECIFIED
b30d2dd @chrisdone Update README with difficulty.
chrisdone authored
115
116 * GHCi interaction
117 * Debugger tracebacks
118 * Source code editing
119 * Truly syntax-aware editing
120 * Binding tracking
121 * Syntax-aware indentation choices
122 * Inability to write syntactically incorrect code
123 * Type of symbol at point (local)
Something went wrong with that request. Please try again.