Add hindent and brittany beautifiers for haskell

This commit is contained in:
Christian Kjaer Laustsen 2017-10-28 12:41:20 +02:00
parent 30dece209a
commit 0044fab625
13 changed files with 799 additions and 37 deletions

View File

@ -1,7 +1,7 @@
# Next
- See [#881](https://github.com/Glavin001/atom-beautify/issues/881). Update to Prettydiff version 2!
- Fix for [#1888](https://github.com/Glavin001/atom-beautify/issues/1888). Allow 0 for minor and patch versions of Docker
- ...
- Add hindent and brittany beautifiers for haskell
# v0.30.5 (2017-08-11)
- Fix for [#1721](https://github.com/Glavin001/atom-beautify/issues/1721). Changes required due to TextBuffer.save becoming async in Atom 1.19

View File

@ -60,6 +60,11 @@
Beautifiers
</a>
</li>
<li>
<a href='class/Brittany.html'>
Brittany
</a>
</li>
</ul>
</ul>
<ul>
@ -150,6 +155,11 @@
HTMLBeautifier
</a>
</li>
<li>
<a href='class/Hindent.html'>
Hindent
</a>
</li>
</ul>
</ul>
<ul>
@ -419,6 +429,15 @@
(src&#47;languages)
</small>
</li>
<li>
<a href='file/src/beautifiers/brittany.coffee.html'>
brittany.coffee
</a>
<small>
(src&#47;beautifiers)
</small>
</li>
</ul>
</ul>
<ul>
@ -713,6 +732,15 @@
(src&#47;languages)
</small>
</li>
<li>
<a href='file/src/beautifiers/hindent.coffee.html'>
hindent.coffee
</a>
<small>
(src&#47;beautifiers)
</small>
</li>
</ul>
</ul>
<ul>

View File

@ -46,7 +46,7 @@
=
</dt>
<dd>
<pre><code class='coffeescript'>[&#39;uncrustify&#39;, &#39;autopep8&#39;, &#39;coffee-formatter&#39;, &#39;coffee-fmt&#39;, &#39;cljfmt&#39;, &#39;clang-format&#39;, &#39;crystal&#39;, &#39;dfmt&#39;, &#39;elm-format&#39;, &#39;htmlbeautifier&#39;, &#39;csscomb&#39;, &#39;gherkin&#39;, &#39;gofmt&#39;, &#39;latex-beautify&#39;, &#39;fortran-beautifier&#39;, &#39;js-beautify&#39;, &#39;jscs&#39;, &#39;lua-beautifier&#39;, &#39;ocp-indent&#39;, &#39;perltidy&#39;, &#39;php-cs-fixer&#39;, &#39;phpcbf&#39;, &#39;prettydiff&#39;, &#39;pug-beautify&#39;, &#39;puppet-fix&#39;, &#39;remark&#39;, &#39;rubocop&#39;, &#39;ruby-beautify&#39;, &#39;rustfmt&#39;, &#39;sass-convert&#39;, &#39;sqlformat&#39;, &#39;stylish-haskell&#39;, &#39;tidy-markdown&#39;, &#39;typescript-formatter&#39;, &#39;vue-beautifier&#39;, &#39;yapf&#39;, &#39;erl_tidy&#39;, &#39;marko-beautifier&#39;, &#39;formatR&#39;, &#39;beautysh&#39;]</code></pre>
<pre><code class='coffeescript'>[&#39;uncrustify&#39;, &#39;autopep8&#39;, &#39;brittany&#39;, &#39;coffee-formatter&#39;, &#39;coffee-fmt&#39;, &#39;cljfmt&#39;, &#39;clang-format&#39;, &#39;crystal&#39;, &#39;dfmt&#39;, &#39;elm-format&#39;, &#39;htmlbeautifier&#39;, &#39;csscomb&#39;, &#39;gherkin&#39;, &#39;gofmt&#39;, &#39;latex-beautify&#39;, &#39;fortran-beautifier&#39;, &#39;hindent&#39;, &#39;js-beautify&#39;, &#39;jscs&#39;, &#39;lua-beautifier&#39;, &#39;ocp-indent&#39;, &#39;perltidy&#39;, &#39;php-cs-fixer&#39;, &#39;phpcbf&#39;, &#39;prettydiff&#39;, &#39;pug-beautify&#39;, &#39;puppet-fix&#39;, &#39;remark&#39;, &#39;rubocop&#39;, &#39;ruby-beautify&#39;, &#39;rustfmt&#39;, &#39;sass-convert&#39;, &#39;sqlformat&#39;, &#39;stylish-haskell&#39;, &#39;tidy-markdown&#39;, &#39;typescript-formatter&#39;, &#39;vue-beautifier&#39;, &#39;yapf&#39;, &#39;erl_tidy&#39;, &#39;marko-beautifier&#39;, &#39;formatR&#39;, &#39;beautysh&#39;]</code></pre>
<div class='docstring'>
<p>List of beautifier names</p><p>To register a beautifier add its name here</p>
</div>

View File

@ -0,0 +1,204 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>Atom-Beautify Documentation</title>
<script src='../javascript/application.js'></script>
<script src='../javascript/search.js'></script>
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
</head>
<body>
<div id='base' data-path='../'></div>
<div id='header'>
<div id='menu'>
<a href='../extra/README.md.html' title='Atom-Beautify'>
Atom-Beautify
</a>
&raquo;
<a href='../alphabetical_index.html' title='Index'>
Index
</a>
&raquo;
<span class='title'>Brittany</span>
</div>
</div>
<div id='content'>
<h1>
Class:
Brittany
</h1>
<table class='box'>
<tr>
<td>Defined in:</td>
<td>src&#47;beautifiers&#47;brittany.coffee</td>
</tr>
<tr>
<td>Inherits:</td>
<td>
<a href='../class/Beautifier.html'>Beautifier</a>
</td>
</tr>
</table>
<h2>Variables Summary</h2>
<dl class='constants'>
<dt id='name-variable'>
name
=
</dt>
<dd>
<pre><code class='coffeescript'>&quot;brittany&quot;</code></pre>
</dd>
<dt id='link-variable'>
link
=
</dt>
<dd>
<pre><code class='coffeescript'>&quot;https:&#47;&#47;github.com&#47;lspitzner&#47;brittany&quot;</code></pre>
</dd>
<dt id='options-variable'>
options
=
</dt>
<dd>
<pre><code class='coffeescript'>{
Haskell: true
}</code></pre>
</dd>
</dl>
<h3 class='inherited'>
Variable inherited from
<a href='../class/Beautifier.html'>Beautifier</a>
</h3>
<p class='inherited'>
<a href='../class/Beautifier.html#Promise-variable'>Promise</a>
<a href='../class/Beautifier.html#name-variable'>name</a>
<a href='../class/Beautifier.html#options-variable'>options</a>
<a href='../class/Beautifier.html#languages-variable'>languages</a>
<a href='../class/Beautifier.html#beautify-variable'>beautify</a>
<a href='../class/Beautifier.html#_envCache-variable'>_envCache</a>
<a href='../class/Beautifier.html#_envCacheDate-variable'>_envCacheDate</a>
<a href='../class/Beautifier.html#_envCacheExpiry-variable'>_envCacheExpiry</a>
<a href='../class/Beautifier.html#logger-variable'>logger</a>
</p>
<h2>Instance Method Summary</h2>
<ul class='summary'>
<li>
<span class='signature'>
<a href='#beautify-dynamic'>
#
(void)
<b>beautify</b><span>(text, language, options)</span>
</a>
</span>
<span class='desc'>
</span>
</li>
</ul>
<h2>
<small>Inherited Method Summary</small>
<h3 class='inherited'>
Methods inherited from
<a href='../class/Beautifier.html'>Beautifier</a>
</h3>
<p class='inherited'>
<a href='../class/Beautifier.html#deprecate-dynamic'>#deprecate</a>
<a href='../class/Beautifier.html#tempFile-dynamic'>#tempFile</a>
<a href='../class/Beautifier.html#readFile-dynamic'>#readFile</a>
<a href='../class/Beautifier.html#findFile-dynamic'>#findFile</a>
<a href='../class/Beautifier.html#getShellEnvironment-dynamic'>#getShellEnvironment</a>
<a href='../class/Beautifier.html#which-dynamic'>#which</a>
<a href='../class/Beautifier.html#commandNotFoundError-dynamic'>#commandNotFoundError</a>
<a href='../class/Beautifier.html#run-dynamic'>#run</a>
<a href='../class/Beautifier.html#spawn-dynamic'>#spawn</a>
<a href='../class/Beautifier.html#setupLogger-dynamic'>#setupLogger</a>
</p>
</h2>
<h2>Instance Method Details</h2>
<div class='methods'>
<div class='method_details'>
<p class='signature' id='beautify-dynamic'>
#
(void)
<b>beautify</b><span>(text, language, options)</span>
<br>
</p>
</div>
</div>
</div>
<div id='footer'>
By
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo
</a>
2.1.2
&#10034;
Press H to see the keyboard shortcuts
&#10034;
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
&#10034;
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
</div>
<iframe id='search_frame'></iframe>
<div id='fuzzySearch'>
<input type='text'>
<ol></ol>
</div>
<div id='help'>
<p>
Quickly fuzzy find classes, mixins, methods, file:
</p>
<ul>
<li>
<span>T</span>
Open fuzzy finder dialog
</li>
</ul>
<p>
Control the navigation frame:
</p>
<ul>
<li>
<span>L</span>
Toggle list view
</li>
<li>
<span>C</span>
Show class list
</li>
<li>
<span>I</span>
Show mixin list
</li>
<li>
<span>F</span>
Show file list
</li>
<li>
<span>M</span>
Show method list
</li>
<li>
<span>E</span>
Show extras list
</li>
</ul>
<p>
You can focus and blur the search input:
</p>
<ul>
<li>
<span>S</span>
Focus search input
</li>
<li>
<span>Esc</span>
Blur search input
</li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,204 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>Atom-Beautify Documentation</title>
<script src='../javascript/application.js'></script>
<script src='../javascript/search.js'></script>
<link rel='stylesheet' href='../stylesheets/application.css' type='text/css'>
</head>
<body>
<div id='base' data-path='../'></div>
<div id='header'>
<div id='menu'>
<a href='../extra/README.md.html' title='Atom-Beautify'>
Atom-Beautify
</a>
&raquo;
<a href='../alphabetical_index.html' title='Index'>
Index
</a>
&raquo;
<span class='title'>Hindent</span>
</div>
</div>
<div id='content'>
<h1>
Class:
Hindent
</h1>
<table class='box'>
<tr>
<td>Defined in:</td>
<td>src&#47;beautifiers&#47;hindent.coffee</td>
</tr>
<tr>
<td>Inherits:</td>
<td>
<a href='../class/Beautifier.html'>Beautifier</a>
</td>
</tr>
</table>
<h2>Variables Summary</h2>
<dl class='constants'>
<dt id='name-variable'>
name
=
</dt>
<dd>
<pre><code class='coffeescript'>&quot;hindent&quot;</code></pre>
</dd>
<dt id='link-variable'>
link
=
</dt>
<dd>
<pre><code class='coffeescript'>&quot;https:&#47;&#47;github.com&#47;commercialhaskell&#47;hindent&quot;</code></pre>
</dd>
<dt id='options-variable'>
options
=
</dt>
<dd>
<pre><code class='coffeescript'>{
Haskell: true
}</code></pre>
</dd>
</dl>
<h3 class='inherited'>
Variable inherited from
<a href='../class/Beautifier.html'>Beautifier</a>
</h3>
<p class='inherited'>
<a href='../class/Beautifier.html#Promise-variable'>Promise</a>
<a href='../class/Beautifier.html#name-variable'>name</a>
<a href='../class/Beautifier.html#options-variable'>options</a>
<a href='../class/Beautifier.html#languages-variable'>languages</a>
<a href='../class/Beautifier.html#beautify-variable'>beautify</a>
<a href='../class/Beautifier.html#_envCache-variable'>_envCache</a>
<a href='../class/Beautifier.html#_envCacheDate-variable'>_envCacheDate</a>
<a href='../class/Beautifier.html#_envCacheExpiry-variable'>_envCacheExpiry</a>
<a href='../class/Beautifier.html#logger-variable'>logger</a>
</p>
<h2>Instance Method Summary</h2>
<ul class='summary'>
<li>
<span class='signature'>
<a href='#beautify-dynamic'>
#
(void)
<b>beautify</b><span>(text, language, options)</span>
</a>
</span>
<span class='desc'>
</span>
</li>
</ul>
<h2>
<small>Inherited Method Summary</small>
<h3 class='inherited'>
Methods inherited from
<a href='../class/Beautifier.html'>Beautifier</a>
</h3>
<p class='inherited'>
<a href='../class/Beautifier.html#deprecate-dynamic'>#deprecate</a>
<a href='../class/Beautifier.html#tempFile-dynamic'>#tempFile</a>
<a href='../class/Beautifier.html#readFile-dynamic'>#readFile</a>
<a href='../class/Beautifier.html#findFile-dynamic'>#findFile</a>
<a href='../class/Beautifier.html#getShellEnvironment-dynamic'>#getShellEnvironment</a>
<a href='../class/Beautifier.html#which-dynamic'>#which</a>
<a href='../class/Beautifier.html#commandNotFoundError-dynamic'>#commandNotFoundError</a>
<a href='../class/Beautifier.html#run-dynamic'>#run</a>
<a href='../class/Beautifier.html#spawn-dynamic'>#spawn</a>
<a href='../class/Beautifier.html#setupLogger-dynamic'>#setupLogger</a>
</p>
</h2>
<h2>Instance Method Details</h2>
<div class='methods'>
<div class='method_details'>
<p class='signature' id='beautify-dynamic'>
#
(void)
<b>beautify</b><span>(text, language, options)</span>
<br>
</p>
</div>
</div>
</div>
<div id='footer'>
By
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo
</a>
2.1.2
&#10034;
Press H to see the keyboard shortcuts
&#10034;
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
&#10034;
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
</div>
<iframe id='search_frame'></iframe>
<div id='fuzzySearch'>
<input type='text'>
<ol></ol>
</div>
<div id='help'>
<p>
Quickly fuzzy find classes, mixins, methods, file:
</p>
<ul>
<li>
<span>T</span>
Open fuzzy finder dialog
</li>
</ul>
<p>
Control the navigation frame:
</p>
<ul>
<li>
<span>L</span>
Toggle list view
</li>
<li>
<span>C</span>
Show class list
</li>
<li>
<span>I</span>
Show mixin list
</li>
<li>
<span>F</span>
Show file list
</li>
<li>
<span>M</span>
Show method list
</li>
<li>
<span>E</span>
Show extras list
</li>
</ul>
<p>
You can focus and blur the search input:
</p>
<ul>
<li>
<span>S</span>
Focus search input
</li>
<li>
<span>Esc</span>
Blur search input
</li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,123 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>Atom-Beautify Documentation</title>
<script src='../../../javascript/application.js'></script>
<script src='../../../javascript/search.js'></script>
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
</head>
<body>
<div id='base' data-path='../../../'></div>
<div id='header'>
<div id='menu'>
<a href='../../../extra/README.md.html' title='Atom-Beautify'>
Atom-Beautify
</a>
&raquo;
<a href='../../../alphabetical_index.html' title='Index'>
Index
</a>
&raquo;
<span class='title'>src</span>
&raquo;
<span class='title'>beautifiers</span>
&raquo;
<span class='title'>brittany.coffee</span>
</div>
</div>
<div id='content'>
<h1>
File:
brittany.coffee
</h1>
<table class='box'>
<tr>
<td>Defined in:</td>
<td>src&#47;beautifiers</td>
</tr>
<tr>
<td>
Classes:
</td>
<td>
<a href='../../../class/Brittany.html'>
StylishHaskell
</a>
</td>
</tr>
</table>
</div>
<div id='footer'>
By
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo
</a>
2.1.2
&#10034;
Press H to see the keyboard shortcuts
&#10034;
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
&#10034;
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
</div>
<iframe id='search_frame'></iframe>
<div id='fuzzySearch'>
<input type='text'>
<ol></ol>
</div>
<div id='help'>
<p>
Quickly fuzzy find classes, mixins, methods, file:
</p>
<ul>
<li>
<span>T</span>
Open fuzzy finder dialog
</li>
</ul>
<p>
Control the navigation frame:
</p>
<ul>
<li>
<span>L</span>
Toggle list view
</li>
<li>
<span>C</span>
Show class list
</li>
<li>
<span>I</span>
Show mixin list
</li>
<li>
<span>F</span>
Show file list
</li>
<li>
<span>M</span>
Show method list
</li>
<li>
<span>E</span>
Show extras list
</li>
</ul>
<p>
You can focus and blur the search input:
</p>
<ul>
<li>
<span>S</span>
Focus search input
</li>
<li>
<span>Esc</span>
Blur search input
</li>
</ul>
</div>
</body>
</html>

View File

@ -0,0 +1,123 @@
<!DOCTYPE html>
<html>
<head>
<meta charset='UTF-8'>
<title>Atom-Beautify Documentation</title>
<script src='../../../javascript/application.js'></script>
<script src='../../../javascript/search.js'></script>
<link rel='stylesheet' href='../../../stylesheets/application.css' type='text/css'>
</head>
<body>
<div id='base' data-path='../../../'></div>
<div id='header'>
<div id='menu'>
<a href='../../../extra/README.md.html' title='Atom-Beautify'>
Atom-Beautify
</a>
&raquo;
<a href='../../../alphabetical_index.html' title='Index'>
Index
</a>
&raquo;
<span class='title'>src</span>
&raquo;
<span class='title'>beautifiers</span>
&raquo;
<span class='title'>hindent.coffee</span>
</div>
</div>
<div id='content'>
<h1>
File:
hindent.coffee
</h1>
<table class='box'>
<tr>
<td>Defined in:</td>
<td>src&#47;beautifiers</td>
</tr>
<tr>
<td>
Classes:
</td>
<td>
<a href='../../../class/Hindent.html'>
StylishHaskell
</a>
</td>
</tr>
</table>
</div>
<div id='footer'>
By
<a href='https://github.com/coffeedoc/codo' title='CoffeeScript API documentation generator'>
Codo
</a>
2.1.2
&#10034;
Press H to see the keyboard shortcuts
&#10034;
<a href='http://twitter.com/netzpirat' target='_parent'>@netzpirat</a>
&#10034;
<a href='http://twitter.com/_inossidabile' target='_parent'>@_inossidabile</a>
</div>
<iframe id='search_frame'></iframe>
<div id='fuzzySearch'>
<input type='text'>
<ol></ol>
</div>
<div id='help'>
<p>
Quickly fuzzy find classes, mixins, methods, file:
</p>
<ul>
<li>
<span>T</span>
Open fuzzy finder dialog
</li>
</ul>
<p>
Control the navigation frame:
</p>
<ul>
<li>
<span>L</span>
Toggle list view
</li>
<li>
<span>C</span>
Show class list
</li>
<li>
<span>I</span>
Show mixin list
</li>
<li>
<span>F</span>
Show file list
</li>
<li>
<span>M</span>
Show method list
</li>
<li>
<span>E</span>
Show extras list
</li>
</ul>
<p>
You can focus and blur the search input:
</p>
<ul>
<li>
<span>S</span>
Focus search input
</li>
<li>
<span>Esc</span>
Blur search input
</li>
</ul>
</div>
</body>
</html>

View File

@ -65,6 +65,14 @@
src&#47;beautifiers
</small>
</li>
<li>
<a href='file/src/beautifiers/brittany.coffee.html' target='main'>
brittany.coffee
</a>
<small class='namespace'>
src&#47;beautifiers
</small>
</li>
<li>
<a href='file/src/beautifiers/clang-format.coffee.html' target='main'>
clang-format.coffee
@ -193,6 +201,14 @@
src&#47;beautifiers
</small>
</li>
<li>
<a href='file/src/beautifiers/hindent.coffee.html' target='main'>
hindent.coffee
</a>
<small class='namespace'>
src&#47;beautifiers
</small>
</li>
<li>
<a href='file/src/beautifiers/htmlbeautifier.coffee.html' target='main'>
htmlbeautifier.coffee

View File

@ -150,6 +150,11 @@
{
"name": "Steven Zeck",
"url": "https://github.com/szeck87"
},
{
"name": "Christian Kjær Laustsen",
"email": "ckl@codetalk.io",
"url": "https://github.com/Tehnix"
}
],
"engines": {
@ -340,6 +345,8 @@
"gherkin",
"fortran",
"haskell",
"hindent",
"brittany",
"jade",
"jsx",
"latex",

View File

@ -0,0 +1,24 @@
###
Requires https://github.com/lspitzner/brittany
###
"use strict"
Beautifier = require('./beautifier')
module.exports = class Brittany extends Beautifier
name: "brittany"
link: "https://github.com/lspitzner/brittany"
isPreInstalled: false
options: {
Haskell: true
}
beautify: (text, language, options) ->
@run("brittany", [
@tempFile("input", text)
], {
help: {
link: "https://github.com/lspitzner/brittany"
}
})

View File

@ -0,0 +1,27 @@
###
Requires https://github.com/commercialhaskell/hindent
###
"use strict"
Beautifier = require('./beautifier')
module.exports = class Hindent extends Beautifier
name: "hindent"
link: "https://github.com/commercialhaskell/hindent"
isPreInstalled: false
options: {
Haskell: true
}
beautify: (text, language, options) ->
@run("hindent", [
tempFile = @tempFile("temp", text)
], {
help: {
link: "https://github.com/commercialhaskell/hindent"
}
})
.then(=>
@readFile(tempFile)
)

View File

@ -37,6 +37,7 @@ module.exports = class Beautifiers extends EventEmitter
'uncrustify'
'align-yaml'
'autopep8'
'brittany'
'coffee-formatter'
'coffee-fmt'
'cljfmt'
@ -52,6 +53,7 @@ module.exports = class Beautifiers extends EventEmitter
'goimports'
'latex-beautify'
'fortran-beautifier'
'hindent'
'js-beautify'
'jscs'
'eslint'

View File

@ -2632,7 +2632,9 @@
"description": "Options for language Haskell",
"collapsed": true,
"beautifiers": [
"stylish-haskell"
"stylish-haskell",
"hindent",
"brittany"
],
"grammars": [
"Haskell"
@ -2655,7 +2657,9 @@
"default": "stylish-haskell",
"description": "Default Beautifier to be used for Haskell",
"enum": [
"stylish-haskell"
"stylish-haskell",
"hindent",
"brittany"
]
},
"beautify_on_save": {