PureScript Mode NEWS -*- org -*-
This file uses Org mode. Some useful (default) key-bindings:
- Use “C-c C-n”/”C-c C-p” to jump to next/prev heading
- Use “<tab>” to expand/collapse nodes
- Use “<backtab>” to cycle visibility of all nodes
- Use “C-c C-o” to open links
- Small fix for purescript-simple-indent: Certain indentation situations cause valname-string to be nil, which purescript-trim did not handle gracefully (naturally, since nil != “”).
- Luke Hoersten’s Shnippet merged in under snippets/.
- purescript-presentation-mode is now a purescript-mode derived mode.
- Small improvement to purescript-process-do-info (works on constructors now and underscored names).
- Add purescript-indent-spaces configuration variable.
- The command string to run cabal commands is slightly more configurable. See: C-h f purescript-process-do-cabal-format-string
See also detailed Git history.
- Make `purescript-simple-indent-mode’ a proper minor mode with `SInd` as mode-line lighter
- Support popular “λ> ” prompt in inf-purescript by default
- Hide internal `*print-purescript-mode*’ buffers (used when `purescript-interactive-mode-eval-mode’ is active)
- Add tab-completion support for purescript-interactive-mode (requires `:complete’ command support in GHCi)
- Add support to `purescript-process-do-info` to perform `:browse!` query on module name when called on import statement line
- `purescript-decl-scan-mode’:
- New customize group `purescript-decl-scan’
- New flag `purescript-decl-scan-bindings-as-variables’ for controlling whether to put value bindings into the “Variables” category.
- New flag `purescript-decl-scan-add-to-menubar’ for controlling whether to add “Declarations” menu entry to menu bar.
- New manual section node `(purescript-mode)purescript-decl-scan-mode’
- Add support for LambdaCase syntax extension to `purescript-indentation`
- Change `purescript-indentation-mode’ to never jump back a whole line when pressing DEL. The old behavior can be restored by setting `purescript-indentation-delete-backward-jump-line’ to t
- New convenience function `purescript-cabal-visit-file’ for locating and visiting most likely `.cabal` file associated with current buffer
- Add support for PackageImports and SafePureScript syntax extensions to `purescript-decl-scan-mode’ parser
- Add `turn-{on,off}-purescript-doc’ commands as aliases for the existing `turn-{on,off}-purescript-doc-mode’ commands
- Add support for “cabal repl” process type to `purescript-interactive-mode’
- Add new PureScript compilation sub-mode and associated `purescript-compile’ command
See also detailed Git history.
- Convert NEWS (this file) to Org mode style and include NEWS file in package and add command for visiting NEWS file (M-x purescript-mode-view-news)
- Officially drop support for versions prior to Emacs 23
- New work-in-progress Info manual for purescript-mode
- Remove deprecated `purescript-{hugs,ghci}’ modules
- Font-locking changes:
- Remove deprecated `turn-on-purescript-font-lock` function
- Improve font-locking of type-signatures in presence of newlines
- Use `font-lock-preprocessor-face’ instead of the previously used `font-lock-warning-face` for CPP directives
- Use `font-lock-warning-face` instead of the previously used `font-lock-preprocessor-face` for Git merge conflict annotations.
- Improvements to `purescript-move-nested’ module:
- Add support for operating on active regions
- New interactive commands `purescript-move-nested-{left,right}` which support numeric prefix arguments for controlling the amount of shifting to apply.
- Add `purescript-unicode-input-method.el` to distribution (enable with `turn-on-purescript-unicode-input-method`)
- Fix all byte-compilation warnings
- Build-system:
- For in-place installation, `purescript-site-file.el’ is renamed to `purescript-mode-autoloads.el`
- Auto-generate ELPA compatible README file by extracting header of purescript-mode.el
- New “make check” target
- Add Travis-CI build jobs for testing byte-compilation with multiple Emacs versions
- Reorganize customize settings
- Add new convenience function for browsing all PureScript Mode settings (M-x purescript-customize)
- Add `:link’ keywords pointing to the new Info manual
- Add `:group’ keywords to modes to make (M-x customize-mode) work
- Create new customization groups `purescript-interactive’ and `inferior-purescript’ to clean up namespace
- Create new customization group `ghc-core` containing the two new customization variables `ghc-core-program` and `ghc-core-program-args`.
- Improvements to purescript-interactive-mode
- Add support for deleting compile messages superseded by recompile/reloads (M-x customize-variable RET purescript-interactive-mode-delete-superseded-errors)
- Fix `C-u M-x purescript-process-do-type` inserting bad signatures
- Integrate with Emacs’ `next-error` subsystem
- Add “C-c C-f” binding to REPL keymap for enabling `next-error-follow-minor-mode’
- Add support for `-ferror-spans`-style compile messages
- Add `-ferror-spans` as default for `purescript-process-args-ghci`
- Add optional argument to `purescript-session-{all,installed,project}-modules’ to suppress session-creation. This is useful for yasnippet usage, see commit 517fd7e for an example.
- Change default for `purescript-process-path-ghci` to a static “ghci”
- Fix `purescript-interactive-switch` not selecting the REPL window
- Make `*purescript-process-log*` buffer configurable (controlled via new `purescript-process-log` customize option)
See also detailed Git history.
- Switch to new versioning scheme
- Switch to MELPA/Marmalade based packaging
- Cleanup/refactor build-system
- Enhance `M-x purescript-version` to report more detailed versioning information
- Make purescript-interactive-mode emulate comint/eshell history navigation (see commit 0e96843 for more details)
- Improvements to purescript-interactive-mode
- Improve killing/restarting purescript-interactive sessions
- Improve directory prompting and resolution
- Fix redundant-import suggest trigger to support qualified imports
- Detect all abbreviations of an user-inputted “:quit”
- Fix regexps for recent GHC 7.x compiler messages
- Customizable commandline args for GHCi (M-x customize-variable RET purescript-process-args-ghci)
- New command to load or reload via prefix argument (M-x purescript-process-load-or-reload)
- Fix purescript-interactive-mode prompt detection
- Add cabal-ghci as supported process mode
- Add a customization option for the visibility of multi-line errors (M-x customize-variable RET purescript-interactive-mode-hide-multi-line-errors)
- Add forward declarations to reduce Elisp bytecompile warnings
- Improvements to `purescript-indentation`
- Add support for the UnicodeSyntax tokens `→`, `←`, and `∷`.
- Indent “=” following data/type/newtype declarations.
- Align “->”“→” arrows in types under “::”“∷”
- Make customizable whether “<backspace>” deletes indentation too (via `purescript-indentation-delete-backward-indentation` and `purescript-indentation-delete-indentation`)
- Properly indent ‘rec’ keyword, same as ‘mdo’
- Minor optimizations.
- Add support for “’”-prefixed constructors (-> DataKinds) to font-locking
- New experimental purescript session menu mode (M-x purescript-menu)
- Various minor cleanups/fixes/improvements…
See also detailed Git history.
- Bugfix release adding missing autoload declaration
See also detailed Git history.
- This is the first release after purescript-mode was migrated to GitHub
- New experimental `purescript-interactive-mode’ module implementing a new REPL interaction mode for GHCi sessions to eventually replace the existing “inf-purescript” mode.
- New `purescript-process-cabal’ command for interaction with cabal-install
- New `purescript-checkers’ module
- Update purescript-cabal-mode font-lock keywords
- Improve scrolling of hoogle output (purescript-mode.el)
- Derive `purescript-mode` from `prog-mode` for Emacs 24+
- Add new binding for “<backtab>” to purescript-mode’s keymap which unindents current line
- New modules `purescript-navigate-imports`, `purescript-sort-imports’ and `purescript-align-imports’ for operating on module import lines in PureScript source code
- Add new binding for “C-c C-.” to purescript-mode’s keymap to sort and realign PureScript module imports
- Add new binding for “C-c i” to purescript-mode’s keymap to jump back and forth from/to the current PureScript module’s module import section.
- New `inferior-purescript-kind’ function for querying kind via GHCi’s “:kind”
- New `inferior-purescript-send-decl’ for sending declarations to GHCi (bound to “C-x C-d” by default)
- Add new `purescript-doc-use-inf-purescript` customization variable
- Add support for bird-style literate purescript editing and a new related customization variable `purescript-indentation-birdtrack-extra-space’
- Font locking improvements
- Add support for Git’s merge annotation (with `font-lock-preprocessor-face’)
- Improve `import’, `foreign import’ and `foreign export’ font locking
- Add support for `rec’, `proc’ and `mdo` as keywords
- Make whitespace within `– |’ and `{- |’ optional when possible
- New `purescript-move-nested` module providing utilities for interactively {in,de}denting nested “hanging” blocks.
- Add stylish-purescript support (enable via `purescript-stylish-on-save` customization variable)
- Add support for generating tags on save (enable via `purescript-tags-on-save’ customization variable)
- Set sensible dabbrev defaults in purescript-mode
- Added `SCC` pragma insert/delete commands (`purescript-mode-insert-scc-at-point` and `purescript-mode-kill-scc-at-point’)
- New experimental `purescript-mode-contextual-space’ command
- And a couple more cleanups/fixes/improvements…
See also detailed Git history.
- Minimal indentation support for arrow syntax
- Avoid opening a new inf-purescript window if one is already visible. Windows on other virtual desktops or iconified frames don’t count.
- Force comint-process-echoes to nil
- Autolaunch purescript-mode for files starting with #!/usr/bin/runghc and similar
- Added minimal major mode for parsing GHC core files, courtesy of Johan Tibell. There is a corresponding PureScript menu entry.
- Allow configuration of where-clause indentation; M-x customize-group purescript-indentation.
- fill-paragraph (M-q) now only affects comments, and correctly handles Haddock commentary. adaptive-fill-mode is turned off, as it was interfering.
- Yet more unicode symbols
- Better support for unicode encoding of purescript source files
- mdo correctly indented
- Indentation fixes, fixes to the fixes, and fixes to the fixes to the fixes
- New command: M-x purescript-check, calls (by default) hlint on the
current file. Also bound to C-c C-v.
You can also use the flymake minor mode with this.
- Parser corrections for purescript-indentation and purescript-decl-scan
- purescript-indentation: Pressing tab in the rightmost position now moves to the leftmost, by default with a warning.
- Typo fix: One purescript-indentation variable had ended up in the purescript-ntation customize group.
- purescript-hoogle aliased to hoogle, purescript-hayoo aliased to hayoo
- Courtesy of Alex Ott:
- Additional unicode symbols for font-lock-symbols: () == /= >= <= !! && || sqrt
- M-x purescript-hayoo search added, opens using browse-url
- Bug-fix for inferior-purescript-type
- If purescript-indentation errors out, it now fail-safes to inserting a literal newline or deleting one character, for return and backspace respectively.
- purescript-indentation, a new minor mode for indentation.
- Update license to GPLv3.
- New derived major mode for .pursc files.
- Removed the C-c C-r binding to reload a file. You can still call inferior-purescript-reload-file (and/or bind it to your favorite key, including C-c C-r) or you can now use C-u C-c C-l.
- C-c C-d looks up the symbol at point in the Haddock docs.
- Haddock comments are highlighted with font-lock-doc-face if it exists.
- Use `tex’ rather than `latex’ for purescript-literate.
- inf-purescript.el tries to find the root of the module hierarchy to determine the root of a project (either by looking for a Cabal file or relying on the `module’ declaration line). If all works well, this will make C-c C-l automatically switch to the root dir, so that dependencies in other directories are automatically found. If it doesn’t, complain and/or set inferior-purescript-find-project-root to nil.
- The new command purescript-hoogle helps you query Hoogle from Emacs.
- Trivial support for Cabal package description files.
- Minor bug fixes.
- There are now commands to find type and info of identifiers by querying an inferior purescript process. Available under C-c C-t, C-c C-i, and C-c M-.
- Indentation now looks back further, until a line that has no indentation. To recover the earlier behavior of stopping at the first empty line instead, configure purescript-indent-look-past-empty-line.
- inf-purescript can wait until a file load completes and jump directly to the first error, like purescript-ghci and purescript-hugs used to do. See the var inferior-purescript-wait-and-jump.
- inf-purescript uses ghci if hugs is absent.
- Fix up some binding conflicts (C-c C-o in purescript-doc)
- Many (hopefully minor) changes to the indentation.
- New symbols in purescript-font-lock-symbols-alist.
- keybindings C-c <char> have been replaced by C-c C-<char> so as not to collide with minor modes.
- The following modules are now automatically activated without having to add anything to purescript-mode-hook: purescript-font-lock (just turn on global-font-lock-mode). purescript-decl-scan (just bind `imenu’ to some key).
- In recent Emacsen, purescript-doc hooks into eldoc-mode.
- purescript-hugs and purescript-ghci are superceded by inf-purescript.
- Indentation rules have been improved when using layout inside parens/braces.
- Symbols like -> and \ can be displayed as actual arrows and lambdas. See purescript-font-lock-symbols.
- Tweaks to the font-lock settings. Among other things paren-matching with things like \(x,y) should work correctly now.
- New maintainer <[email protected]>.