From ccfebd3150aa8071a1e2c8b2c61826fba40e75d4 Mon Sep 17 00:00:00 2001 From: Scott Larkin Date: Thu, 9 Feb 2017 12:05:54 -0500 Subject: [PATCH 01/18] Create .codeclimate.yml Created a Code Climate config with CoffeeLint enabled. --- codeclimate.yml | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 codeclimate.yml diff --git a/codeclimate.yml b/codeclimate.yml new file mode 100644 index 0000000..4e5fda9 --- /dev/null +++ b/codeclimate.yml @@ -0,0 +1,9 @@ +engines: + coffeelint: + enabled: true + +ratings: + paths: + - "**.coffee" + +exclude_paths: From dce64c0eb14d730a58149bcf6ac6b85851677ada Mon Sep 17 00:00:00 2001 From: Scott Larkin Date: Thu, 9 Feb 2017 12:08:19 -0500 Subject: [PATCH 02/18] Update and rename codeclimate.yml to .codeclimate.yml --- codeclimate.yml => .codeclimate.yml | 3 +++ 1 file changed, 3 insertions(+) rename codeclimate.yml => .codeclimate.yml (70%) diff --git a/codeclimate.yml b/.codeclimate.yml similarity index 70% rename from codeclimate.yml rename to .codeclimate.yml index 4e5fda9..d537ddc 100644 --- a/codeclimate.yml +++ b/.codeclimate.yml @@ -1,9 +1,12 @@ engines: coffeelint: enabled: true + eslint: + enabled: true ratings: paths: - "**.coffee" + - "**.js" exclude_paths: From e314fdf0992148e782b66a4d49dc0524fd349401 Mon Sep 17 00:00:00 2001 From: Taylon Silmer Date: Sun, 29 Jan 2017 18:16:35 -0200 Subject: [PATCH 03/18] Add ESLint beautifier --- CHANGELOG.md | 1 + README.md | 2 +- package.json | 7 +++++++ src/beautifiers/eslint.coffee | 33 +++++++++++++++++++++++++++++++++ src/beautifiers/index.coffee | 1 + 5 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 src/beautifiers/eslint.coffee diff --git a/CHANGELOG.md b/CHANGELOG.md index 32ecf1d..4ddcef9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Add [elm-format](https://github.com/avh4/elm-format) beautifier for the Elm language. - Add [clang-format](http://clang.llvm.org/docs/ClangFormat.html) beautifier for C/C++/Obj-C languages. - Add [yapf](http://github.com/google/yapf) beautifier for Python. +- Add [ESLint](https://github.com/eslint/eslint) beautifier for Javascript - Closes [#776] (https://github.com/Glavin001/atom-beautify/issues/776) Add support for `collapse-preserve-inline` brace_style for javascript. - Closes [#786](https://github.com/Glavin001/atom-beautify/issues/786) YAPF configuration files are ignored. - Fix phpcbf hanging issue by closing stdin. See [#893](https://github.com/Glavin001/atom-beautify/issues/893) diff --git a/README.md b/README.md index da87ff0..78f1de3 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ See [all supported options in the documentation at `docs/options.md`](docs/opti | HTML | `HTML` |`.html` | [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) | | Jade | `Jade`, `Pug` |`.jade`, `.pug` | [`Pug Beautify`](https://github.com/vingorius/pug-beautify) (Default) | | Java | `Java` |`.java` | [`Uncrustify`](https://github.com/uncrustify/uncrustify) (Default) | -| JavaScript | `JavaScript` |`.js` | [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default), [`JSCS Fixer`](https://github.com/jscs-dev/node-jscs/), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) | +| JavaScript | `JavaScript` |`.js` | [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default), [`JSCS Fixer`](https://github.com/jscs-dev/node-jscs/), [`Pretty Diff`](https://github.com/prettydiff/prettydiff), [`ESLint Fixer`](https://github.com/eslint/eslint) | | JSON | `JSON` |`.json` | [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) | | JSX | `JSX`, `JavaScript (JSX)`, `Babel ES6 JavaScript`, `JavaScript with JSX` |`.jsx`, `.js` | [`JS Beautify`](https://github.com/beautify-web/js-beautify), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | | LaTeX | `LaTeX` |`.tex` | [`Latex Beautify`](https://github.com/cmhughes/latexindent.pl) (Default) | diff --git a/package.json b/package.json index a91d8a9..026cf1a 100644 --- a/package.json +++ b/package.json @@ -114,6 +114,10 @@ { "name": "Victor Uriarte", "url": "https://github.com/vmuriart" + }, + { + "name": "Taylon Silmer", + "url": "https://github.com/taylon" } ], "engines": { @@ -130,6 +134,7 @@ "csscomb": "^3.1.7", "diff": "3.0.0", "editorconfig": "^0.13.2", + "eslint": "^3.13.1", "event-kit": "^2.1.0", "expand-home-dir": "0.0.3", "extend": "^3.0.0", @@ -259,6 +264,8 @@ "fortran beautifier", "js beautify", "jscs fixer", + "eslint", + "eslint fixer", "lua beautifier", "ocp-indent", "perltidy", diff --git a/src/beautifiers/eslint.coffee b/src/beautifiers/eslint.coffee new file mode 100644 index 0000000..55b52f8 --- /dev/null +++ b/src/beautifiers/eslint.coffee @@ -0,0 +1,33 @@ +"use strict" + +Beautifier = require('./beautifier') +Path = require('path') +{allowUnsafeNewFunction} = require 'loophole' + +module.exports = class ESLintFixer extends Beautifier + name: "ESLint Fixer" + link: "https://github.com/eslint/eslint" + + options: { + JavaScript: false + } + + beautify: (text, language, options) -> + return new @Promise((resolve, reject) => + editor = atom.workspace.getActiveTextEditor() + filePath = editor.getPath() + projectPath = atom.project.relativizePath(filePath)[0] + + result = null + allowUnsafeNewFunction => + importPath = Path.join(projectPath, 'node_modules', 'eslint') + try + CLIEngine = require(importPath).CLIEngine + + cli = new CLIEngine(fix: true, cwd: projectPath) + result = cli.executeOnText(text).results[0] + + resolve result.output + catch err + reject(err) + ) diff --git a/src/beautifiers/index.coffee b/src/beautifiers/index.coffee index 077190e..16113d4 100644 --- a/src/beautifiers/index.coffee +++ b/src/beautifiers/index.coffee @@ -52,6 +52,7 @@ module.exports = class Beautifiers extends EventEmitter 'fortran-beautifier' 'js-beautify' 'jscs' + 'eslint' 'lua-beautifier' 'ocp-indent' 'perltidy' From e34228af807f93229794709c9f695b5899f449b9 Mon Sep 17 00:00:00 2001 From: onigra <3280467rec@gmail.com> Date: Tue, 14 Feb 2017 19:01:17 +0900 Subject: [PATCH 04/18] Fix gem install error --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 7debaf4..b5faca8 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -15,6 +15,7 @@ environment: - PYTHON: "C:\\Python27" PYTHON_VERSION: "2.7.8" PYTHON_ARCH: "32" + RUBY_VERSION: 23 # - PYTHON: "C:\\Python27-x64" # PYTHON_VERSION: "2.7.8" @@ -82,8 +83,7 @@ install: - "%CMD_IN_ENV% pip install --upgrade sqlparse" # Ruby & Gem - - cinst ruby -y - - "SET PATH=C:\\tools\\ruby23\\bin;%PATH%" + - SET PATH=C:\Ruby%RUBY_VERSION%\bin;C:\Ruby23-x64\DevKit\mingw\bin;%PATH% # Rubocop - gem install rubocop - where rubocop From e62cb301b1b02bbcf256a2d51caa140b16d60346 Mon Sep 17 00:00:00 2001 From: onigra <3280467rec@gmail.com> Date: Tue, 14 Feb 2017 19:58:53 +0900 Subject: [PATCH 05/18] Fix php install error http://help.appveyor.com/discussions/problems/5616-not-able-to-build-due-to-problem-in-chocolateyinstallps1 --- appveyor.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/appveyor.yml b/appveyor.yml index b5faca8..90df6fd 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -104,6 +104,7 @@ install: # FIXME: Enable allowEmptyChecksums, until someone fixes the checksum issue of php - choco feature enable -n allowEmptyChecksums # PHP + - ps: Set-Service wuauserv -StartupType Manual - cinst php -y - ps: "ls \"C:\\tools\\php\"" - "SET PATH=C:\\tools\\php;%PATH%" From f6a7f53513d352f88b3bf38c64c8dea234520079 Mon Sep 17 00:00:00 2001 From: onigra <3280467rec@gmail.com> Date: Tue, 14 Feb 2017 20:06:44 +0900 Subject: [PATCH 06/18] Modify php71 path --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index 90df6fd..002bd1f 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -106,8 +106,8 @@ install: # PHP - ps: Set-Service wuauserv -StartupType Manual - cinst php -y - - ps: "ls \"C:\\tools\\php\"" - - "SET PATH=C:\\tools\\php;%PATH%" + - ps: "ls \"C:\\tools\\php71\"" + - "SET PATH=C:\\tools\\php71;%PATH%" - where php # PHP-CS-Fixer - cinst curl -y # Use cURL to download file from URL From 7627a9239a53e788827e2552adb2c3fadbeb4cde Mon Sep 17 00:00:00 2001 From: Taylon Silmer Date: Tue, 14 Feb 2017 11:31:05 -0200 Subject: [PATCH 07/18] Fix coffeelint errors --- src/beautifiers/eslint.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/beautifiers/eslint.coffee b/src/beautifiers/eslint.coffee index 55b52f8..2f9947d 100644 --- a/src/beautifiers/eslint.coffee +++ b/src/beautifiers/eslint.coffee @@ -13,13 +13,13 @@ module.exports = class ESLintFixer extends Beautifier } beautify: (text, language, options) -> - return new @Promise((resolve, reject) => + return new @Promise((resolve, reject) -> editor = atom.workspace.getActiveTextEditor() filePath = editor.getPath() projectPath = atom.project.relativizePath(filePath)[0] result = null - allowUnsafeNewFunction => + allowUnsafeNewFunction -> importPath = Path.join(projectPath, 'node_modules', 'eslint') try CLIEngine = require(importPath).CLIEngine From 3b2404bc99fbd7e265cd6d121655c0fa5e988d8a Mon Sep 17 00:00:00 2001 From: Glavin Wiechert Date: Wed, 1 Mar 2017 22:10:19 -0400 Subject: [PATCH 08/18] Add notice for temporary pause with development --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index da87ff0..130a7fb 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,9 @@ Thank you. Atom-Beautify is going to be completely rewritten with [Unibeautify](https://github.com/Unibeautify/unibeautify) at its core! See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Issue #1174](https://github.com/Glavin001/atom-beautify/issues/1174). +## Temporary Pause With Development + +As I can see the Issues on GitHub are growing I want to let everyone know I still plan to maintain Atom-Beautify. Unfortunately, I will be fairly busy for a little while longer with my final semester of University (assignments, projects, exams, etc) and large work-related projects. Therefore, I apologize for my temporarily absense as I finish off these other commitments. My plan is to return to working on Atom-Beautify with a newfound energy to add features and squash bugs in Atom-Beautify when this University semester is over around mid-April 2017. Thank you for your understanding and patience during this time. - [Glavin](https://github.com/Glavin001) ## Language Support From 8c8afc407dc11b309e9db0d4caad820951820f18 Mon Sep 17 00:00:00 2001 From: hxsf Date: Tue, 28 Mar 2017 15:59:28 +0800 Subject: [PATCH 09/18] add a simple Lua format base on js --- .../lua-beautifier/beautifier.coffee | 79 +++++++++++++++++++ src/beautifiers/lua-beautifier/beautifier.pl | 57 ------------- src/beautifiers/lua-beautifier/index.coffee | 12 +-- 3 files changed, 85 insertions(+), 63 deletions(-) create mode 100644 src/beautifiers/lua-beautifier/beautifier.coffee delete mode 100644 src/beautifiers/lua-beautifier/beautifier.pl diff --git a/src/beautifiers/lua-beautifier/beautifier.coffee b/src/beautifiers/lua-beautifier/beautifier.coffee new file mode 100644 index 0000000..ab3833b --- /dev/null +++ b/src/beautifiers/lua-beautifier/beautifier.coffee @@ -0,0 +1,79 @@ +DEFAULT_INDENT = ' ' + +module.exports = (str, indent) -> + indent = indent or DEFAULT_INDENT + indent = ' '.repeat indent if Number.isInteger indent + $currIndent = 0 + $nextIndent = 0 + $prevLength = 0 + $extIndent = 0 + $lastIndent = 0 + $template = 0 + new_code = str.split(/\r?\n/g).map (line, line_number) -> + $template_flag = false + if $template + res2 = line.match /\](=*)\]/ + if res2 and $template == res2[1].length + 1 + $template = 0 + $template_flag = true + else + return line + res1 = line.match /\[(=*)\[/ + if res1 + $template = res1[1].length + 1 + if !$template_flag + line = line.trim() + # remote all spaces on both ends + string_list = line.match /(['"])[^\1]*?\1/g + line = line.replace /\s+/g, ' ' + # replace all whitespaces inside the string with one space, WARNING: the whitespaces in string will be replace too! + line = line.replace /([^\-])\s?(==|>=|<=|[=><\+\-\*\/])\s?([^\-\[])/g, '$1 $2 $3' + # add whitespace around the operator + line = line.replace /,([^\s])/g, ', $1' + line = line.replace /\s,/g, ',' + # recover the whitespaces in string. + line = line.replace /(['"])[^\1]*?\1/g, -> + string_list.shift() + + return '' if !line.length + raw_line = line + line = line.replace /(['"])[^\1]*?\1/, '' + # remove all quoted fragments for proper bracket processing + line = line.replace /\s*--.+/, '' + # remove all comments; this ignores long bracket style comments + if /^((local )?function|repeat|while)\b/.test(line) and !/\bend\s*[\),;]*$/.test(line) or /\b(then|do)$/.test(line) and !/^elseif\b/.test(line) or /^if\b/.test(line) and /\bthen\b/.test(line) and !/\bend$/.test(line) or /\bfunction ?(?:\w+ )?\([^\)]*\)$/.test(line) and !/\bend$/.test(line) + $nextIndent = $currIndent + 1 + else if /^until\b/.test(line) or /^end\s*[\),;]*$/.test(line) or /^end\s*\)\s*\.\./.test(line) or /^else(if)?\b/.test(line) and /\bend$/.test(line) + $nextIndent = --$currIndent + else if /^else\b/.test(line) or /^elseif\b/.test(line) + $nextIndent = $currIndent + $currIndent = $currIndent - 1 + $brackets = (line.match(/\(/g) or []).length - ((line.match(/\)/g) or []).length) + # capture unbalanced brackets + $curly = (line.match(/\{/g) or []).length - ((line.match(/\}/g) or []).length) + # capture unbalanced curly brackets + # close (curly) brackets if needed + $currIndent += $curly if $curly < 0 + $currIndent += $brackets if $brackets < 0 + $nextIndent += $brackets + $curly + + if $currIndent - $lastIndent > 1 + $extIndent += $nextIndent - $lastIndent - 1 + $nextIndent = $currIndent = 1 + $lastIndent + if $currIndent - $lastIndent < -1 and $extIndent > 0 + $extIndent += $currIndent - $lastIndent + 1 + $currIndent = -1 + $lastIndent + if $nextIndent < $currIndent + $nextIndent = $currIndent + + if $currIndent < 0 + console.warn 'WARNING: negative indentation at line ${line_number}: ${raw_line}' + new_line = (if raw_line.length and $currIndent > 0 and !$template_flag then indent.repeat($currIndent) else '') + raw_line + + $useful = $prevLength > 0 or raw_line.length > 0 + $lastIndent = $currIndent + $currIndent = $nextIndent + $prevLength = raw_line.length + return new_line if $useful + console.warn 'WARNING: positive indentation at the end' if $currIndent > 0 + new_code.join '\n' diff --git a/src/beautifiers/lua-beautifier/beautifier.pl b/src/beautifiers/lua-beautifier/beautifier.pl deleted file mode 100644 index 349831a..0000000 --- a/src/beautifiers/lua-beautifier/beautifier.pl +++ /dev/null @@ -1,57 +0,0 @@ -# Copyright 2011 Paul Kulchenko -# Credits: http://notebook.kulchenko.com/programming/lua-beautifier-in-55-lines-of-perl -use strict; -use warnings; - -use constant INDENT => ' '; -my($currIndent, $nextIndent, $prevLength) = (0, 0, 0); - -while (<>) { - chomp; - s/^\s+|\s+$//g; # remote all spaces on both ends - s/\s+/ /g; # replace all whitespaces inside the string with one space - - my $orig = $_; - - s/(['"])[^\1]*?\1//g; # remove all quoted fragments for proper bracket processing - s/\s*--.+//; # remove all comments; this ignores long bracket style comments - - # open a level; increase next indentation; don't change current one - if (/^((local )?function|repeat|while)\b/ && !/\bend\s*[\),;]*$/ - || /\b(then|do)$/ && !/^elseif\b/ # only open on 'then' if there is no 'elseif' - || /^if\b/ && /\bthen\b/ && !/\bend$/ # only open on 'if' if there is no 'end' at the end - || /\bfunction\s*\([^\)]*\)$/) { - $nextIndent = $currIndent + 1; - } - # close the level; change both current and next indentation - elsif (/^until\b/ - || /^end\s*[\),;]*$/ - || /^end\s*\)\s*\.\./ # this is a special case of 'end).."some string"' - || /^else(if)?\b/ && /\bend$/) { - $nextIndent = $currIndent = $currIndent - 1; - } - # keep the level; decrease the current indentation; keep the next one - elsif (/^else\b/ - || /^elseif\b/) { - ($nextIndent, $currIndent) = ($currIndent, $currIndent-1); - } - - my $brackets = y/(// - y/)//; # capture unbalanced brackets - my $curly = y/{// - y/}//; # capture unbalanced curly brackets - - # close (curly) brackets if needed - $currIndent += $curly if $curly < 0 && /^\}/; - $currIndent += $brackets if $brackets < 0 && /^\)/; - - warn "WARNING: negative indentation at line $.: $orig\n" if $currIndent < 0; - - print((length($orig) ? (INDENT x $currIndent) : ''), $orig, "\n") - if $prevLength > 0 || length($orig) > 0; # this is to collapse empty lines - - $nextIndent += $brackets + $curly; - - $currIndent = $nextIndent; - $prevLength = length($orig); -} - -warn "WARNING: positive indentation at the end\n" if $nextIndent > 0; diff --git a/src/beautifiers/lua-beautifier/index.coffee b/src/beautifiers/lua-beautifier/index.coffee index c96c743..35a7bb5 100644 --- a/src/beautifiers/lua-beautifier/index.coffee +++ b/src/beautifiers/lua-beautifier/index.coffee @@ -4,6 +4,7 @@ path = require("path") "use strict" Beautifier = require('../beautifier') +format = require './beautifier' module.exports = class Lua extends Beautifier name: "Lua beautifier" @@ -14,9 +15,8 @@ module.exports = class Lua extends Beautifier } beautify: (text, language, options) -> - lua_beautifier = path.resolve(__dirname, "beautifier.pl") - @run("perl", [ - lua_beautifier, - '<', - @tempFile("input", text) - ]) + new @Promise (resolve, reject) -> + try + resolve format text, options.indent_char.repeat options.indent_size + catch error + reject error From 25b3ef04176d1a3a40f71a5f75de26f4c7a5dcb3 Mon Sep 17 00:00:00 2001 From: hxsf Date: Tue, 28 Mar 2017 16:25:52 +0800 Subject: [PATCH 10/18] add examples for lua --- .../simple-jsbeautifyrc/lua/expected/test.lua | 18 ++++++++++++++++-- .../simple-jsbeautifyrc/lua/original/test.lua | 16 +++++++++++++++- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/examples/simple-jsbeautifyrc/lua/expected/test.lua b/examples/simple-jsbeautifyrc/lua/expected/test.lua index 5c00e55..e2f200c 100644 --- a/examples/simple-jsbeautifyrc/lua/expected/test.lua +++ b/examples/simple-jsbeautifyrc/lua/expected/test.lua @@ -1,5 +1,19 @@ -- Ensure that that the element at i is in the right position, -- and return a closure which can be used for continuing the sort. +local a = 'a b c' +local b = '12345678' +local c = 'a b c' + 'a b c' +local t = { + a = 1, + b = 2, + c = 3, +} +local e = {a = 1, b = 2} + +function aaa(a, b, c) + return a + b +end + function quicksorter(i, vec, low, high) if low >= high then return quicksorter @@ -11,10 +25,10 @@ function quicksorter(i, vec, low, high) -- Create the promise local function self(i, vec, low, high) if i < middle then - left = left(i, vec, low, middle-1) + left = left(i, vec, low, middle - 1) return self elseif i > middle then - right = right(i, vec, middle+1, high) + right = right(i, vec, middle + 1, high) return self end end diff --git a/examples/simple-jsbeautifyrc/lua/original/test.lua b/examples/simple-jsbeautifyrc/lua/original/test.lua index 753deb3..e3692f5 100644 --- a/examples/simple-jsbeautifyrc/lua/original/test.lua +++ b/examples/simple-jsbeautifyrc/lua/original/test.lua @@ -1,5 +1,19 @@ -- Ensure that that the element at i is in the right position, -- and return a closure which can be used for continuing the sort. +local a= 'a b c' +local b ='12345678' +local c = 'a b c' +'a b c' +local t = { +a = 1, + b =2 , + c= 3, +} +local e={a=1,b=2} + +function aaa(a,b,c) +return a+b +end + function quicksorter(i, vec, low, high) if low >= high then return quicksorter @@ -18,7 +32,7 @@ right = right(i, vec, middle+1, high) return self end end - + -- Force the promise until i is in the right position return self(i, vec, low, high) end From 3c6479680b1b7034c950fefd36945d3dc3f6b4ba Mon Sep 17 00:00:00 2001 From: hxsf Date: Thu, 30 Mar 2017 12:08:51 +0800 Subject: [PATCH 11/18] fixed bugs and add feature + bugs: - negative number: 'local a = -1' => 'local a = - 1' - unequal: 'a ~= b' => 'a ~ = b' - change the comment: '-- a b' => '-- a b' + feature: - remove space before comma, add add space after comma: '{a = 1 ,b = 2}' => '{a = 1, b = 2}' --- .../simple-jsbeautifyrc/lua/expected/test.lua | 23 ++- .../simple-jsbeautifyrc/lua/original/test.lua | 23 ++- .../lua-beautifier/beautifier.coffee | 170 ++++++++++-------- 3 files changed, 135 insertions(+), 81 deletions(-) diff --git a/examples/simple-jsbeautifyrc/lua/expected/test.lua b/examples/simple-jsbeautifyrc/lua/expected/test.lua index e2f200c..878d1c1 100644 --- a/examples/simple-jsbeautifyrc/lua/expected/test.lua +++ b/examples/simple-jsbeautifyrc/lua/expected/test.lua @@ -8,11 +8,26 @@ local t = { b = 2, c = 3, } -local e = {a = 1, b = 2} - -function aaa(a, b, c) - return a + b +if a ~= 'a' then + local b = a end +local e = {a = 1, b = 2} +function aaa(a, b, c) + + -- comment 1 + -- comment 2 1231 + -- comment 1 123 123 123123 12 + -- [[ comment 1 ]] + --[[ + muli comments + ssss + @asdasd sad + ]] + local a = -1 + return a + b - c +end +local b = {a = 1, b = [[this is two space ; + ]], c = 2} function quicksorter(i, vec, low, high) if low >= high then diff --git a/examples/simple-jsbeautifyrc/lua/original/test.lua b/examples/simple-jsbeautifyrc/lua/original/test.lua index e3692f5..fed0705 100644 --- a/examples/simple-jsbeautifyrc/lua/original/test.lua +++ b/examples/simple-jsbeautifyrc/lua/original/test.lua @@ -8,11 +8,26 @@ a = 1, b =2 , c= 3, } -local e={a=1,b=2} - -function aaa(a,b,c) -return a+b +if a~='a' then +local b=a end +local e={a=1,b=2} +function aaa(a,b,c) + +-- comment 1 + -- comment 2 1231 + -- comment 1 123 123 123123 12 +-- [[ comment 1 ]] + --[[ + muli comments + ssss + @asdasd sad + ]] +local a = -1 +return a+b-c +end +local b = {a=1,b=[[this is two space ; + ]],c=2} function quicksorter(i, vec, low, high) if low >= high then diff --git a/src/beautifiers/lua-beautifier/beautifier.coffee b/src/beautifiers/lua-beautifier/beautifier.coffee index ab3833b..c24e3ba 100644 --- a/src/beautifiers/lua-beautifier/beautifier.coffee +++ b/src/beautifiers/lua-beautifier/beautifier.coffee @@ -1,79 +1,103 @@ DEFAULT_INDENT = ' ' -module.exports = (str, indent) -> - indent = indent or DEFAULT_INDENT - indent = ' '.repeat indent if Number.isInteger indent - $currIndent = 0 - $nextIndent = 0 - $prevLength = 0 - $extIndent = 0 - $lastIndent = 0 - $template = 0 - new_code = str.split(/\r?\n/g).map (line, line_number) -> - $template_flag = false - if $template - res2 = line.match /\](=*)\]/ - if res2 and $template == res2[1].length + 1 - $template = 0 - $template_flag = true - else - return line - res1 = line.match /\[(=*)\[/ - if res1 - $template = res1[1].length + 1 - if !$template_flag - line = line.trim() - # remote all spaces on both ends - string_list = line.match /(['"])[^\1]*?\1/g - line = line.replace /\s+/g, ' ' - # replace all whitespaces inside the string with one space, WARNING: the whitespaces in string will be replace too! - line = line.replace /([^\-])\s?(==|>=|<=|[=><\+\-\*\/])\s?([^\-\[])/g, '$1 $2 $3' - # add whitespace around the operator - line = line.replace /,([^\s])/g, ', $1' - line = line.replace /\s,/g, ',' - # recover the whitespaces in string. - line = line.replace /(['"])[^\1]*?\1/g, -> +adjust_space = (line) -> + string_list = line.match /(['"])[^\1]*?\1/g + muli_string = line.match /\[(=*)\[([^\]\1\]]*)/ + comment = line.match /\-{2}[^\[].*$/ + line = line.replace /\s+/g, ' ' + # replace all whitespaces inside the string with one space, WARNING: the whitespaces in string will be replace too! + line = line.replace /\s?(==|>=|<=|~=|[=><\+\*\/])\s?/g, ' $1 ' + # add whitespace around the operator + line = line.replace /([^=|\-|(|\s])\s?\-\s?([^\-|\[])/g, '$1 - $2' + # just format minus, not for -- or negative number or commentary. + line = line.replace /,([^\s])/g, ', $1' + # adjust ',' + line = line.replace /\s+,/g, ',' + # recover the whitespaces in string. + line = line.replace /(['"])[^\1]*?\1/g, -> string_list.shift() + if muli_string and muli_string[0] + line = line.replace /\[(=*)\[([^\]\1\]]*)/, muli_string[0] + if comment and comment[0] + line = line.replace /\-{2}[^\[].*$/, comment[0] + line - return '' if !line.length - raw_line = line - line = line.replace /(['"])[^\1]*?\1/, '' - # remove all quoted fragments for proper bracket processing - line = line.replace /\s*--.+/, '' - # remove all comments; this ignores long bracket style comments - if /^((local )?function|repeat|while)\b/.test(line) and !/\bend\s*[\),;]*$/.test(line) or /\b(then|do)$/.test(line) and !/^elseif\b/.test(line) or /^if\b/.test(line) and /\bthen\b/.test(line) and !/\bend$/.test(line) or /\bfunction ?(?:\w+ )?\([^\)]*\)$/.test(line) and !/\bend$/.test(line) - $nextIndent = $currIndent + 1 - else if /^until\b/.test(line) or /^end\s*[\),;]*$/.test(line) or /^end\s*\)\s*\.\./.test(line) or /^else(if)?\b/.test(line) and /\bend$/.test(line) - $nextIndent = --$currIndent - else if /^else\b/.test(line) or /^elseif\b/.test(line) - $nextIndent = $currIndent - $currIndent = $currIndent - 1 - $brackets = (line.match(/\(/g) or []).length - ((line.match(/\)/g) or []).length) - # capture unbalanced brackets - $curly = (line.match(/\{/g) or []).length - ((line.match(/\}/g) or []).length) - # capture unbalanced curly brackets - # close (curly) brackets if needed - $currIndent += $curly if $curly < 0 - $currIndent += $brackets if $brackets < 0 - $nextIndent += $brackets + $curly +DEFAULT_WARN_FN = (msg) -> + console.log('WARNING:', msg) - if $currIndent - $lastIndent > 1 - $extIndent += $nextIndent - $lastIndent - 1 - $nextIndent = $currIndent = 1 + $lastIndent - if $currIndent - $lastIndent < -1 and $extIndent > 0 - $extIndent += $currIndent - $lastIndent + 1 - $currIndent = -1 + $lastIndent - if $nextIndent < $currIndent - $nextIndent = $currIndent +module.exports = (str, indent, warn_fn) -> + indent = indent or DEFAULT_INDENT + warn_fn = if typeof warn_fn == 'function' then warn_fn else DEFAULT_WARN_FN + indent = ' '.repeat(indent) if Number.isInteger(indent) + $currIndent = 0 + $nextIndent = 0 + $prevLength = 0 + $extIndent = 0 + $lastIndent = 0 + $template = 0 + new_code = str.split(/\r?\n/g).map (line, line_number) -> + $template_flag = false + if $template + res2 = line.match(/\](=*)\]/) + if res2 and $template == res2[1].length + 1 + $template_flag = true + if $template and !/]=*]$/.test(line) + arr = line.split(/\]=*\]/, 2) + comment = arr[0] + code = arr[1] + line = comment + ']' + '='.repeat($template - 1) + ']' + adjust_space(code) + $template = 0 + $template = 0 + else + return line + res1 = line.match(/\[(=*)\[/) + if res1 + $template = res1[1].length + 1 + if !$template_flag + line = line.trim() + # remote all spaces on both ends + line = adjust_space(line) + if !line.length + return '' + raw_line = line + line = line.replace(/(['"])[^\1]*?\1/, '') + # remove all quoted fragments for proper bracket processing + line = line.replace(/\s*--.+/, '') + # remove all comments; this ignores long bracket style comments + if /^((local )?function|repeat|while)\b/.test(line) and !/\bend\s*[\),;]*$/.test(line) or /\b(then|do)$/.test(line) and !/^elseif\b/.test(line) or /^if\b/.test(line) and /\bthen\b/.test(line) and !/\bend$/.test(line) or /\bfunction ?(?:\w+ )?\([^\)]*\)$/.test(line) and !/\bend$/.test(line) + $nextIndent = $currIndent + 1 + else if /^until\b/.test(line) or /^end\s*[\),;]*$/.test(line) or /^end\s*\)\s*\.\./.test(line) or /^else(if)?\b/.test(line) and /\bend$/.test(line) + $nextIndent = --$currIndent + else if /^else\b/.test(line) or /^elseif\b/.test(line) + $nextIndent = $currIndent + $currIndent = $currIndent - 1 + $brackets = (line.match(/\(/g) or []).length - ((line.match(/\)/g) or []).length) + # capture unbalanced brackets + $curly = (line.match(/\{/g) or []).length - ((line.match(/\}/g) or []).length) + # capture unbalanced curly brackets + # close (curly) brackets if needed + if $curly < 0 + $currIndent += $curly + if $brackets < 0 + $currIndent += $brackets + $nextIndent += $brackets + $curly + # console.log({last: $lastIndent, curr: $currIndent, next: $nextIndent, ext: $extIndent}) + if $currIndent - $lastIndent > 1 + $extIndent += $nextIndent - $lastIndent - 1 + $nextIndent = $currIndent = 1 + $lastIndent + if $currIndent - $lastIndent < -1 and $extIndent > 0 + $extIndent += $currIndent - $lastIndent + 1 + $currIndent = -1 + $lastIndent + if $nextIndent < $currIndent + $nextIndent = $currIndent + # console.log({last: $lastIndent, curr: $currIndent, next: $nextIndent, ext: $extIndent}) + warn_fn """negative indentation at line #{line_number}: #{raw_line}""" if $currIndent < 0 + new_line = (if raw_line.length and $currIndent > 0 and !$template_flag then indent.repeat($currIndent) else '') + raw_line + $useful = $prevLength > 0 or raw_line.length > 0 + $lastIndent = $currIndent + $currIndent = $nextIndent + $prevLength = raw_line.length + new_line or undefined - if $currIndent < 0 - console.warn 'WARNING: negative indentation at line ${line_number}: ${raw_line}' - new_line = (if raw_line.length and $currIndent > 0 and !$template_flag then indent.repeat($currIndent) else '') + raw_line - - $useful = $prevLength > 0 or raw_line.length > 0 - $lastIndent = $currIndent - $currIndent = $nextIndent - $prevLength = raw_line.length - return new_line if $useful - console.warn 'WARNING: positive indentation at the end' if $currIndent > 0 - new_code.join '\n' + warn_fn 'positive indentation at the end' if $currIndent > 0 + new_code.join '\n' From 51af21106303dd97d8b510cd20ad1fdbebee83e4 Mon Sep 17 00:00:00 2001 From: hxsf Date: Thu, 30 Mar 2017 13:15:32 +0800 Subject: [PATCH 12/18] 'fix_indent' --- .../lua-beautifier/beautifier.coffee | 190 +++++++++--------- 1 file changed, 95 insertions(+), 95 deletions(-) diff --git a/src/beautifiers/lua-beautifier/beautifier.coffee b/src/beautifiers/lua-beautifier/beautifier.coffee index c24e3ba..e7aba13 100644 --- a/src/beautifiers/lua-beautifier/beautifier.coffee +++ b/src/beautifiers/lua-beautifier/beautifier.coffee @@ -1,103 +1,103 @@ DEFAULT_INDENT = ' ' adjust_space = (line) -> - string_list = line.match /(['"])[^\1]*?\1/g - muli_string = line.match /\[(=*)\[([^\]\1\]]*)/ - comment = line.match /\-{2}[^\[].*$/ - line = line.replace /\s+/g, ' ' - # replace all whitespaces inside the string with one space, WARNING: the whitespaces in string will be replace too! - line = line.replace /\s?(==|>=|<=|~=|[=><\+\*\/])\s?/g, ' $1 ' - # add whitespace around the operator - line = line.replace /([^=|\-|(|\s])\s?\-\s?([^\-|\[])/g, '$1 - $2' - # just format minus, not for -- or negative number or commentary. - line = line.replace /,([^\s])/g, ', $1' - # adjust ',' - line = line.replace /\s+,/g, ',' - # recover the whitespaces in string. - line = line.replace /(['"])[^\1]*?\1/g, -> - string_list.shift() - if muli_string and muli_string[0] - line = line.replace /\[(=*)\[([^\]\1\]]*)/, muli_string[0] - if comment and comment[0] - line = line.replace /\-{2}[^\[].*$/, comment[0] - line + string_list = line.match /(['"])[^\1]*?\1/g + muli_string = line.match /\[(=*)\[([^\]\1\]]*)/ + comment = line.match /\-{2}[^\[].*$/ + line = line.replace /\s+/g, ' ' + # replace all whitespaces inside the string with one space, WARNING: the whitespaces in string will be replace too! + line = line.replace /\s?(==|>=|<=|~=|[=><\+\*\/])\s?/g, ' $1 ' + # add whitespace around the operator + line = line.replace /([^=|\-|(|\s])\s?\-\s?([^\-|\[])/g, '$1 - $2' + # just format minus, not for -- or negative number or commentary. + line = line.replace /,([^\s])/g, ', $1' + # adjust ',' + line = line.replace /\s+,/g, ',' + # recover the whitespaces in string. + line = line.replace /(['"])[^\1]*?\1/g, -> + string_list.shift() + if muli_string and muli_string[0] + line = line.replace /\[(=*)\[([^\]\1\]]*)/, muli_string[0] + if comment and comment[0] + line = line.replace /\-{2}[^\[].*$/, comment[0] + line DEFAULT_WARN_FN = (msg) -> - console.log('WARNING:', msg) + console.log('WARNING:', msg) module.exports = (str, indent, warn_fn) -> - indent = indent or DEFAULT_INDENT - warn_fn = if typeof warn_fn == 'function' then warn_fn else DEFAULT_WARN_FN - indent = ' '.repeat(indent) if Number.isInteger(indent) - $currIndent = 0 - $nextIndent = 0 - $prevLength = 0 - $extIndent = 0 - $lastIndent = 0 - $template = 0 - new_code = str.split(/\r?\n/g).map (line, line_number) -> - $template_flag = false - if $template - res2 = line.match(/\](=*)\]/) - if res2 and $template == res2[1].length + 1 - $template_flag = true - if $template and !/]=*]$/.test(line) - arr = line.split(/\]=*\]/, 2) - comment = arr[0] - code = arr[1] - line = comment + ']' + '='.repeat($template - 1) + ']' + adjust_space(code) - $template = 0 - $template = 0 - else - return line - res1 = line.match(/\[(=*)\[/) - if res1 - $template = res1[1].length + 1 - if !$template_flag - line = line.trim() - # remote all spaces on both ends - line = adjust_space(line) - if !line.length - return '' - raw_line = line - line = line.replace(/(['"])[^\1]*?\1/, '') - # remove all quoted fragments for proper bracket processing - line = line.replace(/\s*--.+/, '') - # remove all comments; this ignores long bracket style comments - if /^((local )?function|repeat|while)\b/.test(line) and !/\bend\s*[\),;]*$/.test(line) or /\b(then|do)$/.test(line) and !/^elseif\b/.test(line) or /^if\b/.test(line) and /\bthen\b/.test(line) and !/\bend$/.test(line) or /\bfunction ?(?:\w+ )?\([^\)]*\)$/.test(line) and !/\bend$/.test(line) - $nextIndent = $currIndent + 1 - else if /^until\b/.test(line) or /^end\s*[\),;]*$/.test(line) or /^end\s*\)\s*\.\./.test(line) or /^else(if)?\b/.test(line) and /\bend$/.test(line) - $nextIndent = --$currIndent - else if /^else\b/.test(line) or /^elseif\b/.test(line) - $nextIndent = $currIndent - $currIndent = $currIndent - 1 - $brackets = (line.match(/\(/g) or []).length - ((line.match(/\)/g) or []).length) - # capture unbalanced brackets - $curly = (line.match(/\{/g) or []).length - ((line.match(/\}/g) or []).length) - # capture unbalanced curly brackets - # close (curly) brackets if needed - if $curly < 0 - $currIndent += $curly - if $brackets < 0 - $currIndent += $brackets - $nextIndent += $brackets + $curly - # console.log({last: $lastIndent, curr: $currIndent, next: $nextIndent, ext: $extIndent}) - if $currIndent - $lastIndent > 1 - $extIndent += $nextIndent - $lastIndent - 1 - $nextIndent = $currIndent = 1 + $lastIndent - if $currIndent - $lastIndent < -1 and $extIndent > 0 - $extIndent += $currIndent - $lastIndent + 1 - $currIndent = -1 + $lastIndent - if $nextIndent < $currIndent - $nextIndent = $currIndent - # console.log({last: $lastIndent, curr: $currIndent, next: $nextIndent, ext: $extIndent}) - warn_fn """negative indentation at line #{line_number}: #{raw_line}""" if $currIndent < 0 - new_line = (if raw_line.length and $currIndent > 0 and !$template_flag then indent.repeat($currIndent) else '') + raw_line - $useful = $prevLength > 0 or raw_line.length > 0 - $lastIndent = $currIndent - $currIndent = $nextIndent - $prevLength = raw_line.length - new_line or undefined + indent = indent or DEFAULT_INDENT + warn_fn = if typeof warn_fn == 'function' then warn_fn else DEFAULT_WARN_FN + indent = ' '.repeat(indent) if Number.isInteger(indent) + $currIndent = 0 + $nextIndent = 0 + $prevLength = 0 + $extIndent = 0 + $lastIndent = 0 + $template = 0 + new_code = str.split(/\r?\n/g).map (line, line_number) -> + $template_flag = false + if $template + res2 = line.match(/\](=*)\]/) + if res2 and $template == res2[1].length + 1 + $template_flag = true + if $template and !/]=*]$/.test(line) + arr = line.split(/\]=*\]/, 2) + comment = arr[0] + code = arr[1] + line = comment + ']' + '='.repeat($template - 1) + ']' + adjust_space(code) + $template = 0 + $template = 0 + else + return line + res1 = line.match(/\[(=*)\[/) + if res1 + $template = res1[1].length + 1 + if !$template_flag + line = line.trim() + # remote all spaces on both ends + line = adjust_space(line) + if !line.length + return '' + raw_line = line + line = line.replace(/(['"])[^\1]*?\1/, '') + # remove all quoted fragments for proper bracket processing + line = line.replace(/\s*--.+/, '') + # remove all comments; this ignores long bracket style comments + if /^((local )?function|repeat|while)\b/.test(line) and !/\bend\s*[\),;]*$/.test(line) or /\b(then|do)$/.test(line) and !/^elseif\b/.test(line) or /^if\b/.test(line) and /\bthen\b/.test(line) and !/\bend$/.test(line) or /\bfunction ?(?:\w+ )?\([^\)]*\)$/.test(line) and !/\bend$/.test(line) + $nextIndent = $currIndent + 1 + else if /^until\b/.test(line) or /^end\s*[\),;]*$/.test(line) or /^end\s*\)\s*\.\./.test(line) or /^else(if)?\b/.test(line) and /\bend$/.test(line) + $nextIndent = --$currIndent + else if /^else\b/.test(line) or /^elseif\b/.test(line) + $nextIndent = $currIndent + $currIndent = $currIndent - 1 + $brackets = (line.match(/\(/g) or []).length - ((line.match(/\)/g) or []).length) + # capture unbalanced brackets + $curly = (line.match(/\{/g) or []).length - ((line.match(/\}/g) or []).length) + # capture unbalanced curly brackets + # close (curly) brackets if needed + if $curly < 0 + $currIndent += $curly + if $brackets < 0 + $currIndent += $brackets + $nextIndent += $brackets + $curly + # console.log({last: $lastIndent, curr: $currIndent, next: $nextIndent, ext: $extIndent}) + if $currIndent - $lastIndent > 1 + $extIndent += $nextIndent - $lastIndent - 1 + $nextIndent = $currIndent = 1 + $lastIndent + if $currIndent - $lastIndent < -1 and $extIndent > 0 + $extIndent += $currIndent - $lastIndent + 1 + $currIndent = -1 + $lastIndent + if $nextIndent < $currIndent + $nextIndent = $currIndent + # console.log({last: $lastIndent, curr: $currIndent, next: $nextIndent, ext: $extIndent}) + warn_fn """negative indentation at line #{line_number}: #{raw_line}""" if $currIndent < 0 + new_line = (if raw_line.length and $currIndent > 0 and !$template_flag then indent.repeat($currIndent) else '') + raw_line + $useful = $prevLength > 0 or raw_line.length > 0 + $lastIndent = $currIndent + $currIndent = $nextIndent + $prevLength = raw_line.length + new_line or undefined - warn_fn 'positive indentation at the end' if $currIndent > 0 - new_code.join '\n' + warn_fn 'positive indentation at the end' if $currIndent > 0 + new_code.join '\n' From 86465ff084e1f845197bb2b9813fc4112e03ae21 Mon Sep 17 00:00:00 2001 From: Matthew Prestifilippo Date: Thu, 30 Mar 2017 09:29:14 -0400 Subject: [PATCH 13/18] Fix #1423 - extname is deprecated --- src/beautifiers/index.coffee | 47 +++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/src/beautifiers/index.coffee b/src/beautifiers/index.coffee index 077190e..e229452 100644 --- a/src/beautifiers/index.coffee +++ b/src/beautifiers/index.coffee @@ -140,20 +140,32 @@ module.exports = class Beautifiers extends EventEmitter ) or beautifiers[0] return beautifier - getLanguage : (grammar, filePath) -> + getExtension : (filePath) -> + if filePath + return path.extname(filePath).substr(1) + + getLanguages : (grammar, filePath) -> # Get language - fileExtension = path.extname(filePath) - # Remove prefix "." (period) in fileExtension - fileExtension = fileExtension.substr(1) - languages = @languages.getLanguages({grammar, extension: fileExtension}) - logger.verbose(languages, grammar, fileExtension) - # Check if unsupported language - if languages.length < 1 - return null + fileExtension = @getExtension(filePath) + + if fileExtension + languages = @languages.getLanguages({grammar, extension: fileExtension}) else - # TODO: select appropriate language + languages = @languages.getLanguages({grammar}) + + logger.verbose(languages, grammar, fileExtension) + + return languages + + getLanguage : (grammar, filePath) -> + languages = @getLanguages(grammar, filePath) + + # Check if unsupported language + if languages.length > 0 language = languages[0] + return language + getOptionsForLanguage : (allOptions, language) -> # Options for Language selections = (language.fallback or []).concat([language.namespace]) @@ -241,15 +253,10 @@ module.exports = class Beautifiers extends EventEmitter logger.info('beautify', text, allOptions, grammar, filePath, onSave) logger.verbose(allOptions) - # Get language - fileExtension = path.extname(filePath) - # Remove prefix "." (period) in fileExtension - fileExtension = fileExtension.substr(1) - languages = @languages.getLanguages({grammar, extension: fileExtension}) - logger.verbose(languages, grammar, fileExtension) + language = @getLanguage(grammar, filePath) # Check if unsupported language - if languages.length < 1 + if !language unsupportedGrammar = true logger.verbose('Unsupported language') @@ -260,19 +267,14 @@ module.exports = class Beautifiers extends EventEmitter # not intended to be beautified return resolve( null ) else - # TODO: select appropriate language - language = languages[0] - logger.verbose("Language #{language.name} supported") # Get language config langDisabled = atom.config.get("atom-beautify.#{language.namespace}.disabled") - # Beautify! unsupportedGrammar = false - # Check if Language is disabled if langDisabled logger.verbose("Language #{language.name} is disabled") @@ -370,6 +372,7 @@ module.exports = class Beautifiers extends EventEmitter if atom.config.get("atom-beautify.general.muteUnsupportedLanguageErrors") return resolve( null ) else + fileExtension = @getExtension(filePath) repoBugsUrl = pkg.bugs.url title = "Atom Beautify could not find a supported beautifier for this file" detail = """ From 794a47ef880c93fcd4b94bca500211a7883775d0 Mon Sep 17 00:00:00 2001 From: Glavin Wiechert Date: Mon, 10 Apr 2017 01:34:35 -0300 Subject: [PATCH 14/18] Remove development pause notice --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 130a7fb..da87ff0 100644 --- a/README.md +++ b/README.md @@ -54,9 +54,6 @@ Thank you. Atom-Beautify is going to be completely rewritten with [Unibeautify](https://github.com/Unibeautify/unibeautify) at its core! See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Issue #1174](https://github.com/Glavin001/atom-beautify/issues/1174). -## Temporary Pause With Development - -As I can see the Issues on GitHub are growing I want to let everyone know I still plan to maintain Atom-Beautify. Unfortunately, I will be fairly busy for a little while longer with my final semester of University (assignments, projects, exams, etc) and large work-related projects. Therefore, I apologize for my temporarily absense as I finish off these other commitments. My plan is to return to working on Atom-Beautify with a newfound energy to add features and squash bugs in Atom-Beautify when this University semester is over around mid-April 2017. Thank you for your understanding and patience during this time. - [Glavin](https://github.com/Glavin001) ## Language Support From ba2198675cbcc1ecd05f18e28e97133cdd2d5319 Mon Sep 17 00:00:00 2001 From: Glavin Wiechert Date: Mon, 10 Apr 2017 02:53:34 -0300 Subject: [PATCH 15/18] Add beautifiers information to README See https://github.com/Glavin001/atom-beautify/issues/1525#issuecomment-292817161 --- README-template.md | 6 +++ README.md | 54 +++++++++++++++++-- docs/index.coffee | 26 +++++++++ package.json | 2 +- src/beautifiers/autopep8.coffee | 1 + src/beautifiers/beautifier.coffee | 5 ++ src/beautifiers/beautysh.coffee | 2 + src/beautifiers/clang-format.coffee | 1 + src/beautifiers/crystal.coffee | 1 + src/beautifiers/dfmt.coffee | 1 + src/beautifiers/elm-format.coffee | 1 + src/beautifiers/erl_tidy.coffee | 1 + src/beautifiers/formatR/index.coffee | 1 + .../fortran-beautifier/index.coffee | 3 +- src/beautifiers/gofmt.coffee | 1 + src/beautifiers/hh_format.coffee | 1 + src/beautifiers/htmlbeautifier.coffee | 2 + src/beautifiers/latex-beautify.coffee | 1 + src/beautifiers/lua-beautifier/index.coffee | 3 +- src/beautifiers/ocp-indent.coffee | 1 + src/beautifiers/perltidy.coffee | 1 + src/beautifiers/php-cs-fixer.coffee | 1 + src/beautifiers/phpcbf.coffee | 1 + src/beautifiers/puppet-fix.coffee | 1 + src/beautifiers/rubocop.coffee | 1 + src/beautifiers/ruby-beautify.coffee | 1 + src/beautifiers/rustfmt.coffee | 1 + src/beautifiers/sass-convert.coffee | 1 + src/beautifiers/sqlformat.coffee | 1 + src/beautifiers/stylish-haskell.coffee | 1 + src/beautifiers/uncrustify/index.coffee | 2 + src/beautifiers/vue-beautifier.coffee | 1 + src/beautifiers/yapf.coffee | 1 + 33 files changed, 122 insertions(+), 6 deletions(-) diff --git a/README-template.md b/README-template.md index 34f56a8..82bca17 100644 --- a/README-template.md +++ b/README-template.md @@ -20,6 +20,7 @@ ## Table of Contents - [Installation](#installation) +- [Beautifiers](#beautifiers) - [Language Support](#language-support) - [Usage](#usage) - [Selection of Code](#selection-of-code) @@ -54,6 +55,11 @@ Thank you. Atom-Beautify is going to be completely rewritten with [Unibeautify](https://github.com/Unibeautify/unibeautify) at its core! See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Issue #1174](https://github.com/Glavin001/atom-beautify/issues/1174). +## Beautifiers + +Some of the supported beautifiers are developed for Node.js and are automatically installed when Atom-Beautify is installed. However, other beautifiers are command-line interface (CLI) applications and require you to manually install them. + +{{beautifiers-info beautifiers}} ## Language Support diff --git a/README.md b/README.md index da87ff0..f74d4a7 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ ## Table of Contents - [Installation](#installation) +- [Beautifiers](#beautifiers) - [Language Support](#language-support) - [Usage](#usage) - [Selection of Code](#selection-of-code) @@ -54,6 +55,53 @@ Thank you. Atom-Beautify is going to be completely rewritten with [Unibeautify](https://github.com/Unibeautify/unibeautify) at its core! See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Issue #1174](https://github.com/Glavin001/atom-beautify/issues/1174). +## Beautifiers + +Some of the supported beautifiers are developed for Node.js and are automatically installed when Atom-Beautify is installed. However, other beautifiers are command-line interface (CLI) applications and require you to manually install them. + +| Beautifier | Is Pre-Installed? | Installation Instructions | +| --- | --- | --- | ---- | +| autopep8 | :x: | Go to https://github.com/hhatto/autopep8 and follow the instructions. | +| beautysh | :x: | Go to https://github.com/bemeurer/beautysh and follow the instructions. | +| clang-format | :x: | Go to https://clang.llvm.org/docs/ClangFormat.html and follow the instructions. | +| cljfmt | :white_check_mark: | Nothing! | +| Coffee Formatter | :white_check_mark: | Nothing! | +| coffee-fmt | :white_check_mark: | Nothing! | +| Crystal | :x: | Go to http://crystal-lang.org and follow the instructions. | +| CSScomb | :white_check_mark: | Nothing! | +| dfmt | :x: | Go to https://github.com/Hackerpilot/dfmt and follow the instructions. | +| elm-format | :x: | Go to https://github.com/avh4/elm-format and follow the instructions. | +| erl_tidy | :x: | Go to http://erlang.org/doc/man/erl_tidy.html and follow the instructions. | +| formatR | :x: | Go to https://github.com/yihui/formatR and follow the instructions. | +| Fortran Beautifier | :x: | Go to https://www.gnu.org/software/emacs/ and follow the instructions. | +| Gherkin formatter | :white_check_mark: | Nothing! | +| gofmt | :x: | Go to https://golang.org/cmd/gofmt/ and follow the instructions. | +| hh_format | :x: | Go to http://hhvm.com/ and follow the instructions. | +| HTML Beautifier | :x: | Go to https://github.com/threedaymonk/htmlbeautifier and follow the instructions. | +| JS Beautify | :white_check_mark: | Nothing! | +| JSCS Fixer | :white_check_mark: | Nothing! | +| Latex Beautify | :x: | Go to https://github.com/cmhughes/latexindent.pl and follow the instructions. | +| Lua beautifier | :x: | Go to https://www.perl.org/ and follow the instructions. | +| Marko Beautifier | :white_check_mark: | Nothing! | +| ocp-indent | :x: | Go to https://www.typerex.org/ocp-indent.html and follow the instructions. | +| Perltidy | :x: | Go to http://perltidy.sourceforge.net/ and follow the instructions. | +| PHP-CS-Fixer | :x: | Go to https://github.com/FriendsOfPHP/PHP-CS-Fixer and follow the instructions. | +| PHPCBF | :x: | Go to http://php.net/manual/en/install.php and follow the instructions. | +| Pretty Diff | :white_check_mark: | Nothing! | +| Pug Beautify | :white_check_mark: | Nothing! | +| puppet-lint | :x: | Go to http://puppet-lint.com/ and follow the instructions. | +| Remark | :white_check_mark: | Nothing! | +| Rubocop | :x: | Go to https://github.com/bbatsov/rubocop and follow the instructions. | +| Ruby Beautify | :x: | Go to https://github.com/erniebrodeur/ruby-beautify and follow the instructions. | +| rustfmt | :x: | Go to https://github.com/nrc/rustfmt and follow the instructions. | +| SassConvert | :x: | Go to http://sass-lang.com/documentation/file.SASS_REFERENCE.html#syntax and follow the instructions. | +| sqlformat | :x: | Go to https://github.com/andialbrecht/sqlparse and follow the instructions. | +| stylish-haskell | :x: | Go to https://github.com/jaspervdj/stylish-haskell and follow the instructions. | +| Tidy Markdown | :white_check_mark: | Nothing! | +| TypeScript Formatter | :white_check_mark: | Nothing! | +| Uncrustify | :x: | Go to https://github.com/uncrustify/uncrustify and follow the instructions. | +| Vue Beautifier | :white_check_mark: | Nothing! | +| yapf | :x: | Go to https://github.com/google/yapf and follow the instructions. | ## Language Support @@ -78,7 +126,7 @@ See [all supported options in the documentation at `docs/options.md`](docs/opti | Elm | `Elm` |`.elm` | [`elm-format`](https://github.com/avh4/elm-format) (Default) | | ERB | `HTML (Ruby - ERB)`, `HTML (Rails)` |`.erb` | [`HTML Beautifier`](https://github.com/threedaymonk/htmlbeautifier), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | | Erlang | `Erlang` |`.erl` | [`erl_tidy`](http://erlang.org/doc/man/erl_tidy.html) (Default) | -| Fortran | `Fortran - Modern` |`.f90`, `.F90`, `.f95`, `.F95` | [`Fortran Beautifier`](https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/fortran-beautifier/emacs-fortran-formating-script.lisp) (Default) | +| Fortran | `Fortran - Modern` |`.f90`, `.F90`, `.f95`, `.F95` | [`Fortran Beautifier`](https://www.gnu.org/software/emacs/) (Default) | | gherkin | `Gherkin` |`.feature` | [`Gherkin formatter`](https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/gherkin.coffee) (Default) | | GLSL | `C`, `opencl`, `GLSL` |`.vert`, `.frag` | [`clang-format`](https://clang.llvm.org/docs/ClangFormat.html) (Default) | | Go | `Go` |`.go` | [`gofmt`](https://golang.org/cmd/gofmt/) (Default) | @@ -92,7 +140,7 @@ See [all supported options in the documentation at `docs/options.md`](docs/opti | JSX | `JSX`, `JavaScript (JSX)`, `Babel ES6 JavaScript`, `JavaScript with JSX` |`.jsx`, `.js` | [`JS Beautify`](https://github.com/beautify-web/js-beautify), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | | LaTeX | `LaTeX` |`.tex` | [`Latex Beautify`](https://github.com/cmhughes/latexindent.pl) (Default) | | LESS | `LESS` |`.less` | [`CSScomb`](https://github.com/csscomb/csscomb.js), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | -| Lua | `Lua` |`.lua` | [`Lua beautifier`](https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/lua-beautifier/beautifier.pl) (Default) | +| Lua | `Lua` |`.lua` | [`Lua beautifier`](https://www.perl.org/) (Default) | | Markdown | `GitHub Markdown` |`.markdown`, `.md` | [`Remark`](https://github.com/wooorm/remark), [`Tidy Markdown`](https://github.com/slang800/tidy-markdown) (Default) | | Marko | `Marko` |`.marko` | [`Marko Beautifier`](https://github.com/marko-js/marko-prettyprint) (Default) | | Mustache | `HTML (Mustache)` |`.mustache` | [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default) | @@ -120,7 +168,7 @@ See [all supported options in the documentation at `docs/options.md`](docs/opti | UX Markup | `UX` |`.ux` | [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | | Vala | `Vala` |`.vala`, `.vapi` | [`Uncrustify`](https://github.com/uncrustify/uncrustify) (Default) | | Visualforce | `Visualforce` |`.page` | [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | -| Vue | `Vue Component` |`.vue` | `Vue Beautifier` (Default) | +| Vue | `Vue Component` |`.vue` | [`Vue Beautifier`](https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/vue-beautifier.coffee) (Default) | | XML | `SLD`, `XML`, `XHTML`, `XSD`, `XSL`, `JSP`, `GSP` |`.sld`, `.xml`, `.xhtml`, `.xsd`, `.xsl`, `.jsp`, `.gsp`, `.plist`, `.recipe` | [`JS Beautify`](https://github.com/beautify-web/js-beautify), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | | XTemplate | `XTemplate` |`.xtemplate` | [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | diff --git a/docs/index.coffee b/docs/index.coffee index 66b3247..482fc0f 100755 --- a/docs/index.coffee +++ b/docs/index.coffee @@ -150,6 +150,31 @@ Handlebars.registerHelper('language-options-support', (languageOptions, options) return new Handlebars.SafeString(results) ) + +Handlebars.registerHelper('beautifiers-info', (beautifiers, options) -> + + ### + | Beautifier | Is Pre-Installed? | Installation Instructions | + | --- | ---- | + | Pretty Diff | :white_check_mark: | N/A | + | AutoPEP8 | :x: | LINK | + ### + + rows = _.map(beautifiers, (beautifier, k) -> + name = beautifier.name + isPreInstalled = beautifier.isPreInstalled + link = beautifier.link + installationInstructions = if isPreInstalled then "Nothing!" else "Go to #{link} and follow the instructions." + return "| #{name} | #{if isPreInstalled then ':white_check_mark:' else ':x:'} | #{installationInstructions} |" + ) + results = """ + | Beautifier | Is Pre-Installed? | Installation Instructions | + | --- | --- | --- | ---- | + #{rows.join('\n')} + """ + return new Handlebars.SafeString(results) +) + sortKeysBy = (obj, comparator) -> keys = _.sortBy(_.keys(obj), (key) -> return if comparator then comparator(obj[key], key) else key @@ -176,6 +201,7 @@ context = { packageOptions: sortSettings(packageOptions) languageOptions: sortSettings(languageOptions) beautifierOptions: sortSettings(beautifierOptions) + beautifiers: _.sortBy(beautifier.beautifiers, (beautifier) -> beautifier.name.toLowerCase()) } result = template(context) readmeResult = readmeTemplate(context) diff --git a/package.json b/package.json index a91d8a9..df5b064 100644 --- a/package.json +++ b/package.json @@ -305,4 +305,4 @@ "lint": "coffeelint src/ spec/", "code-docs": "codo && open docs/code/index.html" } -} +} \ No newline at end of file diff --git a/src/beautifiers/autopep8.coffee b/src/beautifiers/autopep8.coffee index 3f4b546..cc1a234 100644 --- a/src/beautifiers/autopep8.coffee +++ b/src/beautifiers/autopep8.coffee @@ -9,6 +9,7 @@ module.exports = class Autopep8 extends Beautifier name: "autopep8" link: "https://github.com/hhatto/autopep8" + isPreInstalled: false options: { Python: true diff --git a/src/beautifiers/beautifier.coffee b/src/beautifiers/beautifier.coffee index e369ac6..40ba3ef 100644 --- a/src/beautifiers/beautifier.coffee +++ b/src/beautifiers/beautifier.coffee @@ -31,6 +31,11 @@ module.exports = class Beautifier ### options: {} + ### + Is the beautifier a command-line interface beautifier? + ### + isPreInstalled: true + ### Supported languages by this Beautifier diff --git a/src/beautifiers/beautysh.coffee b/src/beautifiers/beautysh.coffee index 62a22da..86626a3 100644 --- a/src/beautifiers/beautysh.coffee +++ b/src/beautifiers/beautysh.coffee @@ -4,6 +4,8 @@ Beautifier = require('./beautifier') module.exports = class BashBeautify extends Beautifier name: "beautysh" link: "https://github.com/bemeurer/beautysh" + isPreInstalled: false + options: { Bash: indent_size: true diff --git a/src/beautifiers/clang-format.coffee b/src/beautifiers/clang-format.coffee index 5fa9481..eb4fa32 100644 --- a/src/beautifiers/clang-format.coffee +++ b/src/beautifiers/clang-format.coffee @@ -11,6 +11,7 @@ module.exports = class ClangFormat extends Beautifier name: "clang-format" link: "https://clang.llvm.org/docs/ClangFormat.html" + isPreInstalled: false options: { "C++": false diff --git a/src/beautifiers/crystal.coffee b/src/beautifiers/crystal.coffee index 04c496c..cb1ad22 100644 --- a/src/beautifiers/crystal.coffee +++ b/src/beautifiers/crystal.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class Crystal extends Beautifier name: "Crystal" link: "http://crystal-lang.org" + isPreInstalled: false options: { Crystal: false diff --git a/src/beautifiers/dfmt.coffee b/src/beautifiers/dfmt.coffee index f77460b..0accd86 100644 --- a/src/beautifiers/dfmt.coffee +++ b/src/beautifiers/dfmt.coffee @@ -7,6 +7,7 @@ Beautifier = require('./beautifier') module.exports = class Dfmt extends Beautifier name: "dfmt" link: "https://github.com/Hackerpilot/dfmt" + isPreInstalled: false options: { D: false diff --git a/src/beautifiers/elm-format.coffee b/src/beautifiers/elm-format.coffee index 0623a79..af91cf5 100644 --- a/src/beautifiers/elm-format.coffee +++ b/src/beautifiers/elm-format.coffee @@ -7,6 +7,7 @@ Beautifier = require('./beautifier') module.exports = class ElmFormat extends Beautifier name: "elm-format" link: "https://github.com/avh4/elm-format" + isPreInstalled: false options: { Elm: true diff --git a/src/beautifiers/erl_tidy.coffee b/src/beautifiers/erl_tidy.coffee index a4d0bcd..c8e89ee 100644 --- a/src/beautifiers/erl_tidy.coffee +++ b/src/beautifiers/erl_tidy.coffee @@ -9,6 +9,7 @@ module.exports = class ErlTidy extends Beautifier name: "erl_tidy" link: "http://erlang.org/doc/man/erl_tidy.html" + isPreInstalled: false options: { Erlang: true diff --git a/src/beautifiers/formatR/index.coffee b/src/beautifiers/formatR/index.coffee index 7bfcee3..bf0e8f5 100644 --- a/src/beautifiers/formatR/index.coffee +++ b/src/beautifiers/formatR/index.coffee @@ -9,6 +9,7 @@ Beautifier = require('../beautifier') module.exports = class R extends Beautifier name: "formatR" link: "https://github.com/yihui/formatR" + isPreInstalled: false options: { R: true diff --git a/src/beautifiers/fortran-beautifier/index.coffee b/src/beautifiers/fortran-beautifier/index.coffee index 075290d..8fcd759 100644 --- a/src/beautifiers/fortran-beautifier/index.coffee +++ b/src/beautifiers/fortran-beautifier/index.coffee @@ -8,7 +8,8 @@ path = require("path") module.exports = class FortranBeautifier extends Beautifier name: "Fortran Beautifier" - link: "https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/fortran-beautifier/emacs-fortran-formating-script.lisp" + link: "https://www.gnu.org/software/emacs/" + isPreInstalled: false options: { Fortran: true diff --git a/src/beautifiers/gofmt.coffee b/src/beautifiers/gofmt.coffee index 760a64a..31ded4d 100644 --- a/src/beautifiers/gofmt.coffee +++ b/src/beautifiers/gofmt.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class Gofmt extends Beautifier name: "gofmt" link: "https://golang.org/cmd/gofmt/" + isPreInstalled: false options: { Go: true diff --git a/src/beautifiers/hh_format.coffee b/src/beautifiers/hh_format.coffee index a2e0949..08986d0 100644 --- a/src/beautifiers/hh_format.coffee +++ b/src/beautifiers/hh_format.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class HhFormat extends Beautifier name: "hh_format" link: "http://hhvm.com/" + isPreInstalled: false options: PHP: false diff --git a/src/beautifiers/htmlbeautifier.coffee b/src/beautifiers/htmlbeautifier.coffee index 67558e4..f934d2f 100644 --- a/src/beautifiers/htmlbeautifier.coffee +++ b/src/beautifiers/htmlbeautifier.coffee @@ -8,6 +8,8 @@ Beautifier = require('./beautifier') module.exports = class HTMLBeautifier extends Beautifier name: "HTML Beautifier" link: "https://github.com/threedaymonk/htmlbeautifier" + isPreInstalled: false + options: { ERB: indent_size: true diff --git a/src/beautifiers/latex-beautify.coffee b/src/beautifiers/latex-beautify.coffee index bccfa11..1e13e7a 100644 --- a/src/beautifiers/latex-beautify.coffee +++ b/src/beautifiers/latex-beautify.coffee @@ -8,6 +8,7 @@ temp = require("temp").track() module.exports = class LatexBeautify extends Beautifier name: "Latex Beautify" link: "https://github.com/cmhughes/latexindent.pl" + isPreInstalled: false options: { LaTeX: true diff --git a/src/beautifiers/lua-beautifier/index.coffee b/src/beautifiers/lua-beautifier/index.coffee index c96c743..ff1ff42 100644 --- a/src/beautifiers/lua-beautifier/index.coffee +++ b/src/beautifiers/lua-beautifier/index.coffee @@ -7,7 +7,8 @@ Beautifier = require('../beautifier') module.exports = class Lua extends Beautifier name: "Lua beautifier" - link: "https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/lua-beautifier/beautifier.pl" + link: "https://www.perl.org/" + isPreInstalled: false options: { Lua: true diff --git a/src/beautifiers/ocp-indent.coffee b/src/beautifiers/ocp-indent.coffee index a7ea475..22c0463 100644 --- a/src/beautifiers/ocp-indent.coffee +++ b/src/beautifiers/ocp-indent.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class OCPIndent extends Beautifier name: "ocp-indent" link: "https://www.typerex.org/ocp-indent.html" + isPreInstalled: false options: { OCaml: true diff --git a/src/beautifiers/perltidy.coffee b/src/beautifiers/perltidy.coffee index 1823701..9ce6c00 100644 --- a/src/beautifiers/perltidy.coffee +++ b/src/beautifiers/perltidy.coffee @@ -7,6 +7,7 @@ Beautifier = require('./beautifier') module.exports = class PerlTidy extends Beautifier name: "Perltidy" link: "http://perltidy.sourceforge.net/" + isPreInstalled: false options: { Perl: true diff --git a/src/beautifiers/php-cs-fixer.coffee b/src/beautifiers/php-cs-fixer.coffee index 0cf8f01..959432d 100644 --- a/src/beautifiers/php-cs-fixer.coffee +++ b/src/beautifiers/php-cs-fixer.coffee @@ -10,6 +10,7 @@ module.exports = class PHPCSFixer extends Beautifier name: 'PHP-CS-Fixer' link: "https://github.com/FriendsOfPHP/PHP-CS-Fixer" + isPreInstalled: false options: PHP: true diff --git a/src/beautifiers/phpcbf.coffee b/src/beautifiers/phpcbf.coffee index 67ebd2f..0b0db2e 100644 --- a/src/beautifiers/phpcbf.coffee +++ b/src/beautifiers/phpcbf.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class PHPCBF extends Beautifier name: "PHPCBF" link: "http://php.net/manual/en/install.php" + isPreInstalled: false options: { _: diff --git a/src/beautifiers/puppet-fix.coffee b/src/beautifiers/puppet-fix.coffee index 20bd84c..4ae96ed 100644 --- a/src/beautifiers/puppet-fix.coffee +++ b/src/beautifiers/puppet-fix.coffee @@ -8,6 +8,7 @@ module.exports = class PuppetFix extends Beautifier # this is what displays as your Default Beautifier in Language Config name: "puppet-lint" link: "http://puppet-lint.com/" + isPreInstalled: false options: { Puppet: true diff --git a/src/beautifiers/rubocop.coffee b/src/beautifiers/rubocop.coffee index 20062a3..8a4d366 100644 --- a/src/beautifiers/rubocop.coffee +++ b/src/beautifiers/rubocop.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class Rubocop extends Beautifier name: "Rubocop" link: "https://github.com/bbatsov/rubocop" + isPreInstalled: false options: { Ruby: diff --git a/src/beautifiers/ruby-beautify.coffee b/src/beautifiers/ruby-beautify.coffee index 27a2c80..f710ec7 100644 --- a/src/beautifiers/ruby-beautify.coffee +++ b/src/beautifiers/ruby-beautify.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class RubyBeautify extends Beautifier name: "Ruby Beautify" link: "https://github.com/erniebrodeur/ruby-beautify" + isPreInstalled: false options: { Ruby: diff --git a/src/beautifiers/rustfmt.coffee b/src/beautifiers/rustfmt.coffee index e877820..8277653 100644 --- a/src/beautifiers/rustfmt.coffee +++ b/src/beautifiers/rustfmt.coffee @@ -11,6 +11,7 @@ versionCheckState = false module.exports = class Rustfmt extends Beautifier name: "rustfmt" link: "https://github.com/nrc/rustfmt" + isPreInstalled: false options: { Rust: true diff --git a/src/beautifiers/sass-convert.coffee b/src/beautifiers/sass-convert.coffee index 8e65da9..e53fa98 100644 --- a/src/beautifiers/sass-convert.coffee +++ b/src/beautifiers/sass-convert.coffee @@ -4,6 +4,7 @@ Beautifier = require('./beautifier') module.exports = class SassConvert extends Beautifier name: "SassConvert" link: "http://sass-lang.com/documentation/file.SASS_REFERENCE.html#syntax" + isPreInstalled: false options: # TODO: Add support for options diff --git a/src/beautifiers/sqlformat.coffee b/src/beautifiers/sqlformat.coffee index 7095f3a..e6b0058 100644 --- a/src/beautifiers/sqlformat.coffee +++ b/src/beautifiers/sqlformat.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class Sqlformat extends Beautifier name: "sqlformat" link: "https://github.com/andialbrecht/sqlparse" + isPreInstalled: false options: { SQL: true diff --git a/src/beautifiers/stylish-haskell.coffee b/src/beautifiers/stylish-haskell.coffee index 65db98d..95ba9ad 100644 --- a/src/beautifiers/stylish-haskell.coffee +++ b/src/beautifiers/stylish-haskell.coffee @@ -8,6 +8,7 @@ Beautifier = require('./beautifier') module.exports = class StylishHaskell extends Beautifier name: "stylish-haskell" link: "https://github.com/jaspervdj/stylish-haskell" + isPreInstalled: false options: { Haskell: true diff --git a/src/beautifiers/uncrustify/index.coffee b/src/beautifiers/uncrustify/index.coffee index 92724c8..2ee1ae7 100644 --- a/src/beautifiers/uncrustify/index.coffee +++ b/src/beautifiers/uncrustify/index.coffee @@ -11,6 +11,8 @@ _ = require('lodash') module.exports = class Uncrustify extends Beautifier name: "Uncrustify" link: "https://github.com/uncrustify/uncrustify" + isPreInstalled: false + options: { Apex: true C: true diff --git a/src/beautifiers/vue-beautifier.coffee b/src/beautifiers/vue-beautifier.coffee index bdfc661..814893f 100644 --- a/src/beautifiers/vue-beautifier.coffee +++ b/src/beautifiers/vue-beautifier.coffee @@ -5,6 +5,7 @@ _ = require('lodash') module.exports = class VueBeautifier extends Beautifier name: "Vue Beautifier" + link: "https://github.com/Glavin001/atom-beautify/blob/master/src/beautifiers/vue-beautifier.coffee" options: Vue: true diff --git a/src/beautifiers/yapf.coffee b/src/beautifiers/yapf.coffee index affd32e..5ba490c 100644 --- a/src/beautifiers/yapf.coffee +++ b/src/beautifiers/yapf.coffee @@ -9,6 +9,7 @@ module.exports = class Yapf extends Beautifier name: "yapf" link: "https://github.com/google/yapf" + isPreInstalled: false options: { Python: false From c40a5a4b5ad908e4cab3d1fb97b34ed44865797a Mon Sep 17 00:00:00 2001 From: Glavin Wiechert Date: Mon, 10 Apr 2017 02:55:56 -0300 Subject: [PATCH 16/18] Fix beautifiers info table in README. See #1525 --- README.md | 2 +- docs/index.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f74d4a7..d3235ee 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Iss Some of the supported beautifiers are developed for Node.js and are automatically installed when Atom-Beautify is installed. However, other beautifiers are command-line interface (CLI) applications and require you to manually install them. | Beautifier | Is Pre-Installed? | Installation Instructions | -| --- | --- | --- | ---- | +| --- | --- | --- | | autopep8 | :x: | Go to https://github.com/hhatto/autopep8 and follow the instructions. | | beautysh | :x: | Go to https://github.com/bemeurer/beautysh and follow the instructions. | | clang-format | :x: | Go to https://clang.llvm.org/docs/ClangFormat.html and follow the instructions. | diff --git a/docs/index.coffee b/docs/index.coffee index 482fc0f..80539b9 100755 --- a/docs/index.coffee +++ b/docs/index.coffee @@ -169,7 +169,7 @@ Handlebars.registerHelper('beautifiers-info', (beautifiers, options) -> ) results = """ | Beautifier | Is Pre-Installed? | Installation Instructions | - | --- | --- | --- | ---- | + | --- | --- | --- | #{rows.join('\n')} """ return new Handlebars.SafeString(results) From 1982d7f405e74c8707def443da9af5b2eb2a5ad2 Mon Sep 17 00:00:00 2001 From: Glavin Wiechert Date: Mon, 10 Apr 2017 03:05:03 -0300 Subject: [PATCH 17/18] Fix linting issues --- src/beautifiers/index.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/beautifiers/index.coffee b/src/beautifiers/index.coffee index e229452..4575fe5 100644 --- a/src/beautifiers/index.coffee +++ b/src/beautifiers/index.coffee @@ -146,7 +146,7 @@ module.exports = class Beautifiers extends EventEmitter getLanguages : (grammar, filePath) -> # Get language - fileExtension = @getExtension(filePath) + fileExtension = @getExtension(filePath) if fileExtension languages = @languages.getLanguages({grammar, extension: fileExtension}) @@ -256,7 +256,7 @@ module.exports = class Beautifiers extends EventEmitter language = @getLanguage(grammar, filePath) # Check if unsupported language - if !language + if !language unsupportedGrammar = true logger.verbose('Unsupported language') From 5ff3e2ada9a6c61a0dd6859f3e5bebf39ca0d36f Mon Sep 17 00:00:00 2001 From: Glavin Wiechert Date: Mon, 10 Apr 2017 03:46:06 -0300 Subject: [PATCH 18/18] Update docs --- README.md | 3 ++- docs/options.md | 52 ++++++++++++++++++++++++------------------------- 2 files changed, 28 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 85b4aef..61c8fb3 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,7 @@ Some of the supported beautifiers are developed for Node.js and are automaticall | dfmt | :x: | Go to https://github.com/Hackerpilot/dfmt and follow the instructions. | | elm-format | :x: | Go to https://github.com/avh4/elm-format and follow the instructions. | | erl_tidy | :x: | Go to http://erlang.org/doc/man/erl_tidy.html and follow the instructions. | +| ESLint Fixer | :white_check_mark: | Nothing! | | formatR | :x: | Go to https://github.com/yihui/formatR and follow the instructions. | | Fortran Beautifier | :x: | Go to https://www.gnu.org/software/emacs/ and follow the instructions. | | Gherkin formatter | :white_check_mark: | Nothing! | @@ -135,7 +136,7 @@ See [all supported options in the documentation at `docs/options.md`](docs/opti | HTML | `HTML` |`.html` | [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) | | Jade | `Jade`, `Pug` |`.jade`, `.pug` | [`Pug Beautify`](https://github.com/vingorius/pug-beautify) (Default) | | Java | `Java` |`.java` | [`Uncrustify`](https://github.com/uncrustify/uncrustify) (Default) | -| JavaScript | `JavaScript` |`.js` | [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default), [`JSCS Fixer`](https://github.com/jscs-dev/node-jscs/), [`Pretty Diff`](https://github.com/prettydiff/prettydiff), [`ESLint Fixer`](https://github.com/eslint/eslint) | +| JavaScript | `JavaScript` |`.js` | [`ESLint Fixer`](https://github.com/eslint/eslint), [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default), [`JSCS Fixer`](https://github.com/jscs-dev/node-jscs/), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) | | JSON | `JSON` |`.json` | [`JS Beautify`](https://github.com/beautify-web/js-beautify) (Default), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) | | JSX | `JSX`, `JavaScript (JSX)`, `Babel ES6 JavaScript`, `JavaScript with JSX` |`.jsx`, `.js` | [`JS Beautify`](https://github.com/beautify-web/js-beautify), [`Pretty Diff`](https://github.com/prettydiff/prettydiff) (Default) | | LaTeX | `LaTeX` |`.tex` | [`Latex Beautify`](https://github.com/cmhughes/latexindent.pl) (Default) | diff --git a/docs/options.md b/docs/options.md index 6bb63b3..92af25a 100644 --- a/docs/options.md +++ b/docs/options.md @@ -4963,32 +4963,32 @@ Path to uncrustify config file. i.e. uncrustify.cfg (Supported by Uncrustify) #### [JavaScript](#javascript) -**Supported Beautifiers**: [`JS Beautify`](#js-beautify) [`JSCS Fixer`](#jscs-fixer) [`Pretty Diff`](#pretty-diff) +**Supported Beautifiers**: [`JS Beautify`](#js-beautify) [`JSCS Fixer`](#jscs-fixer) [`ESLint Fixer`](#eslint-fixer) [`Pretty Diff`](#pretty-diff) -| Option | JS Beautify | JSCS Fixer | Pretty Diff | -| --- | --- | --- | --- | -| `disabled` | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| `default_beautifier` | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| `beautify_on_save` | :white_check_mark: | :white_check_mark: | :white_check_mark: | -| `brace_style` | :white_check_mark: | :x: | :x: | -| `break_chained_methods` | :white_check_mark: | :x: | :white_check_mark: | -| `end_with_comma` | :white_check_mark: | :x: | :white_check_mark: | -| `end_with_newline` | :white_check_mark: | :x: | :x: | -| `eval_code` | :white_check_mark: | :x: | :x: | -| `indent_char` | :white_check_mark: | :x: | :white_check_mark: | -| `indent_level` | :white_check_mark: | :x: | :x: | -| `indent_size` | :white_check_mark: | :x: | :white_check_mark: | -| `indent_with_tabs` | :white_check_mark: | :x: | :white_check_mark: | -| `jslint_happy` | :white_check_mark: | :x: | :x: | -| `keep_array_indentation` | :white_check_mark: | :x: | :x: | -| `keep_function_indentation` | :white_check_mark: | :x: | :x: | -| `max_preserve_newlines` | :white_check_mark: | :x: | :x: | -| `preserve_newlines` | :white_check_mark: | :x: | :white_check_mark: | -| `space_after_anon_function` | :white_check_mark: | :x: | :white_check_mark: | -| `space_before_conditional` | :white_check_mark: | :x: | :x: | -| `space_in_paren` | :white_check_mark: | :x: | :white_check_mark: | -| `unescape_strings` | :white_check_mark: | :x: | :x: | -| `wrap_line_length` | :white_check_mark: | :x: | :white_check_mark: | +| Option | ESLint Fixer | JS Beautify | JSCS Fixer | Pretty Diff | +| --- | --- | --- | --- | --- | +| `disabled` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| `default_beautifier` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| `beautify_on_save` | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | +| `brace_style` | :x: | :white_check_mark: | :x: | :x: | +| `break_chained_methods` | :x: | :white_check_mark: | :x: | :white_check_mark: | +| `end_with_comma` | :x: | :white_check_mark: | :x: | :white_check_mark: | +| `end_with_newline` | :x: | :white_check_mark: | :x: | :x: | +| `eval_code` | :x: | :white_check_mark: | :x: | :x: | +| `indent_char` | :x: | :white_check_mark: | :x: | :white_check_mark: | +| `indent_level` | :x: | :white_check_mark: | :x: | :x: | +| `indent_size` | :x: | :white_check_mark: | :x: | :white_check_mark: | +| `indent_with_tabs` | :x: | :white_check_mark: | :x: | :white_check_mark: | +| `jslint_happy` | :x: | :white_check_mark: | :x: | :x: | +| `keep_array_indentation` | :x: | :white_check_mark: | :x: | :x: | +| `keep_function_indentation` | :x: | :white_check_mark: | :x: | :x: | +| `max_preserve_newlines` | :x: | :white_check_mark: | :x: | :x: | +| `preserve_newlines` | :x: | :white_check_mark: | :x: | :white_check_mark: | +| `space_after_anon_function` | :x: | :white_check_mark: | :x: | :white_check_mark: | +| `space_before_conditional` | :x: | :white_check_mark: | :x: | :x: | +| `space_in_paren` | :x: | :white_check_mark: | :x: | :white_check_mark: | +| `unescape_strings` | :x: | :white_check_mark: | :x: | :x: | +| `wrap_line_length` | :x: | :white_check_mark: | :x: | :white_check_mark: | **Description**: @@ -5019,7 +5019,7 @@ Disable JavaScript Beautification **Type**: `string` -**Enum**: `JS Beautify` `JSCS Fixer` `Pretty Diff` +**Enum**: `JS Beautify` `JSCS Fixer` `ESLint Fixer` `Pretty Diff` **Description**: