- Recognize
COLUMN
andCOMPLETE
pragmas - Recognize
DEPRECATED
pragmas module declarations - Recognize
pattern
keyword - Recognize explicit namespacing in module exports/imports
- Include pragma name into its scope name, e.g.
keyword.other.preprocessor.OVERLAPPING.haskell
- Tweak promoted type highlighting; fix char/promoted conflict
- Visible type applications
-
Override questionable type kewyord highlighting
Atom 1.56 changed default highlighting rules, mostly borrowing from C, many which don't make much sense in Haskell. Instead of changing scopes (which would be a breaking change), I've added some overrides to restore the previous behaviour for Haskell specifically. Will be extending that as needed, feel free to open issues if something highlights weird.
- Add Char kind support
- Add Char kind test
- Disable snippet spec
- Detect .hs-boot and cabal.project/cabal.project.local file types (Alexis King)
-
Mark quasiquotes with the function-based class
Please see #88 for context.
- Improve highlighting multiline via statements
- Fix breakage reported in #126; improve via syntax a little
-
Fix #125
A curious case of
module Test ( (:-)(), apply ) where
not parsing correctly due to()
being parsed as(
and then)
closing the exports list. This is fixed by relaxing the syntax definition for the constructor list exports. -
Forbid (..) operator
(..) user-defined operator is forbidden in Haskell, since according to Haskell2010 report, it's one of the reserved operators:
..
,:
,::
,=
,\
,|
,<-
,->
,@
,~
,=>
. In particular,..
clashes with explicit wildcard export, e.g.module Something ( Typename(..) ) where
, hence(..)
should never be parsed as an operator.
- Fix existential quantification in data declarations
- Add test for multiline type ctor defns
- Rework data declarations to support multiline constructor definitions
- cabal.cson: support common stanza (#122) (Domen Kožar)
- Fix standalone deriving via
- Initial support for deriving strategies
- Fix infix type constructor exports
- Rework scoped types
- Fix data declarations comments
- Add module name highlighting to functions
- Fix comments containing <- and = after function signatures
- Update/fix specs
- Remove string scope from quasiquotes (URI injection breaks highlighting)
-
Better module exports highlighting at the cost of C
Basically, highlight CPP inside module export definitions. That comes with a caveat of not using embedded C grammar for CPP anymore. See 78810e0 for a more detailed explanation
-
Handle promoted types
type family TF a where TF 'Nothing = 0 TF ('Just a) = 1
-
Added keyword name to scope name
example (for
if
andderiving
keywords):keyword.control.haskell
→keyword.control.if.haskell
keyword.other.haskell
→keyword.other.deriving.haskell
-
Removed redundant keyword-related rules
-
More specs, better specs
- Terminate function signatures on (<-|=)
- Add some general tests
- Add expressions and comments to liquidhaskell
- Add fixture-based test
- Support standalone multiline type signatures
someFunction :: Type -> OtherType
- Fix README formatting error
- Remove usage information; link to doc site instead
- Parse qualified prefix for operators
- Mark prelude operators with
support.operator.prelude.haskell
- POSSIBLE COMPATIBILITY ISSUE Rename prefix operator application to better describe it.
entity.name.function.infix.haskell
scope renamed toentity.name.function.operator.haskell
- Prelude updated; added operators
- Tests for number literals
- Patch numeric underscores (#112) (Takenobu Tani)
- Fix qualified quasiqotes (#111)
- Updated contributors list
- Do not attempt to match newline characters -- Atom 1.22+ compatibility (@Wliu)
- Rudimentary support for LH annotation keywords
- Basic support for liquid types
- Rework LiquidHaskell (avoid scope leaks)
- Fix mixed-case pragmas (#109)
- Add "lazy" function signatures to hsig (works if :: is on next line)
- Update CI script
- Added comments to hsig top level
- Added hsig grammar; fixed operatorChar in lhs
- Fix comments in imports (now before ())
- Readme update
- Better handling of prelude identifiers
- Revert "Add scope tags to Prelude identifiers"
- Finally fix snippets dependency (hopefully)
- Install snippets package in travis tests
- Specs update
- Add scope tags to Prelude identifiers
- Add mdo, rec, proc keywords
- Add travis tests
- Add cpphs extension to Haskell grammar
- Make operatorChar PCRE-compatible
- Add applyEndPatternLast to module_exports
- Module spec
- Use snippets parser in snippets spec
- Add snippets spec
- Fix snippet scopes, tweak some snippets
- Fix record spec
- Remove debug line from spec
- Add more snippets
- Update CONTRIBUTING.md
- Fix typo
- Fix contributing link
- Remove scope for comment leading whitespace (#99)
- Add contributing reference in readme
- Added CONTRIBUTING
- Add support for type-level string literals
- Fix flaky control character pattern
- Change storage.type scope to keyword.other
- Fix LICENSE date
- Update LICENSE
- Fix module/class/instance end anchors
- Fix anchoring for identifiers'with'apostrophes in the middle
- Support for StandaloneDeriving
- Clean foreign imp/exp
- Add spec for quoted '::'
- Simplify some specs
- Fix for scoped_type with :: in string
- Now really fix #64
- Fix #64... again
- Add prelude scope to support.tag
- Readme update
- Move prelude rules to related scopes
- Use proper right boundary for type alias
- Add most (hopefully all) recognized GHC pragmas
- instance spec
- Fix for #84
- Specs for #84
- Fix for #82
- Tests for #82
- Custom jasmine matchers
- Tweaks and fixes to scoped operators
- Fix type operators/arrows conflict
- Type operators, (partial) fix for #71
- Fix data declaration highlighting
- Add data decl spec
- Remove debug print
- Removed obsolete macro,ident arg to util.list func
- Highlight INCOHERENT/OVERLAP* instance pragmas
- Properly highlight related imports/exports (e.g. Class(..) or Record(field))
- Fix comments in record declarations
- Clean-up type signature patterns
Notes:
I've made a hard decision to stop trying to highlight arbitrary type constraints. Only prelude classes are highlighted as constraints now.
Class constraints were a source of major head-ache for a while now, and in many cases didn't work very well.
- Hide hint.* grammars from Atom UI
- Some fixes to class constraints
- Fix multiparam class constraints, forall
- Better highlighting for type families
- GADTs unified with
data
definitons - Simplified many regexes to avoid unexpected backtracking-related hangs
- Most haskell grammar patterns moved to repository
- Fix GADT ctor scope to
tag
- Grammar files are distributed instead of being generated now
- Remove hack used for grammar hooks
- Prelude typeclasses
- Merge branch 'master' of github.com:atom-haskell/language-haskell
- Grab prelude definitions from Prelude
- Fix #76
- Another stab at Windows postinstall
- Update postinstall hook to hopefully make it work in windows
- Spec update
- Various tweaks to word anchoring, symbol provider
- Fix runaway module name
- Spec update
- Capture identifiers before type ctors
- Fix CPP # confusion
- Updated contributors
- added liquidhaskell comment block (PR #69 by @ranjitjhala)
- Add 'type instance' keyword
- Initial support for type families
- Regression tests for #65
- Tweak ctor regex
- Spec update
- More preprocessor pragmas
- Add [] () to inline type signature characters
- More accurate inline type signature match
- Add meta.type-signature.haskell to in-line sigs
- Fix message highlighting
- Add coffeelint
- Merge pull request #63 from robrix/options-ghc-pragma
- Add OPTIONS_GHC to the recognized pragmas.
- Fix string tokenization (+tests)
- In-line type signatures
- Haskell message hint grammar
- Haskell Type Hint grammar
- Don't confuse timecop
- Support multiline module export ctors (#60)
- Haskell Autocompletion Hint grammar
- Fix #58 (escaped quotes in multiline strings)
- Fix where anchoring in typeDecl and GADT
- Fix catastrophic backtracking in GADTs (#55)
- Hack to trigger activation hook after all packages loaded
- Amend quote escapes fix
- Quote escapes fix (#53)
- Word anchoring and tick (') handling (#52)
- Fix double quote escape in strings (#51)
- Fix gadt and record syntax conflict (#50)
- Add character patterns to in-line quoted string (#47)
- Quasi-fix for #47
- Pipe escapes for LHS (#45)
- Match scripts with
runhaskell
shebang as Haskell files - Add highlighting rule for shebang
- Add
benchmark, flag, source-repository, test-suite
sections highlighting for .cabal files (by @ianbollinger)
- GADTs where-syntax support (#43)
- Add CHANGELOG
- Fix indent block problems with data, newtype and type (#42)
- Initial support for c2hs and hsc2hs
- Better C preprocessor support (referencing source.c)
- README: Add info on autoindent customization.
- Fix increaseIndentPattern
- Remove
decreaseIndentPattern
for now
- Add support for
<
(reverse bird tracks)
- Build grammars in postinstall hook
- Add support for spec env in lit. hs.
- Fix single-line comment line anchoring
- Quasi-quotes support
- Better lhs grammar
- Update grammar
- Type ctor word-anchoring
- Fix for module_name
- Fixes word-anchoring and priority for qualified/as/hiding
- Allow module name to end with dot (for autocompletion)
- Haddock snippets for all comments
- Create LICENSE.md
- Update README.md
- Foreign import/export
- Haddock comments
- Merge pull request #31 from atom-haskell/master
- Remove deriving from type alias
- Simplify and data/newtype/record syntax
- Extend ctor args, empty line doesn't count as ind. block end
- Data declaration comments fix, added comments to export list
- Grammar update
- Minor fixes
- Allow qualified fn and cn
- Fix ident block end regex
- Fix bugs with type_signature looping
- Fix meta.declaration.type.data.record.haskell gobble
- Snippets updates and fixes
- deriving fix, some semantics for type/newtype/data
- type/newtype/data declarations
- More semantic naming
- Record field declaration syntax
- Haskell grammar fixes and cleanup
- Added snippets from ide-haskell
- Added UnicodeSyntax snippets
- Snippets cleanup
- Atom API 1.0 deprecation fixes
- Merge pull request #11 from MichaelRawson/master (Jared Roesch)
- fixed "module" keyword word-anchoring (Michael Rawson)
- Merge pull request #9 from mdgriffith/master (Jared Roesch)
- Merge pull request #8 from RossOgilvie/patch-1 (Jared Roesch)
- Cabal Comment Toggling (Matthew Griffith)
- Unnecessary word (Matthew Griffith)
- Added support for Cabal files (Matthew Griffith)
- Added support for the UnicodeSyntax extention. (Ross Ogilvie)
- Merge pull request #6 from samuela/fix-lambda-snippet (Jared Roesch)
- Merge pull request #5 from samuela/remove-type-sequence (Jared Roesch)
- Fix "Lambda Expression" snippet (samuela)
- Remove broken "-" snippet (samuela)
- Merge pull request #3 from mdgriffith/patch-1 (Jared Roesch)
- Comment symbol to allow toggling comments (mdgriffith)
- remove extraneous the (Jared Roesch)
- Merge pull request #1 from jc00ke/patch-1 (Jared Roesch)
- Haskell, right? (Jesse Cooke)
- update README.md with useful info (Jared Roesch)
- Initial commit converted from https://github.com/textmate/haskell.tmbundle (Jared Roesch)