From c8d9ad43ba99bb3b8703e6810fca357cf96c05ad Mon Sep 17 00:00:00 2001 From: dalu <25452934+dalugm@users.noreply.github.com> Date: Thu, 30 Nov 2023 03:25:11 +0800 Subject: [PATCH] Add denofmt (#264) --- CHANGELOG.md | 3 +++ apheleia-formatters.el | 8 ++++++++ test/formatters/installers/denofmt-js.bash | 1 + test/formatters/installers/denofmt-json.bash | 1 + test/formatters/installers/denofmt-jsonc.bash | 1 + test/formatters/installers/denofmt-jsx.bash | 1 + test/formatters/installers/denofmt-md.bash | 1 + test/formatters/installers/denofmt-ts.bash | 1 + test/formatters/installers/denofmt-tsx.bash | 1 + test/formatters/installers/denofmt.bash | 1 + test/formatters/samplecode/denofmt-js/in.js | 1 + test/formatters/samplecode/denofmt-js/out.js | 5 +++++ .../samplecode/denofmt-json/in.json | 1 + .../samplecode/denofmt-json/out.json | 19 ++++++++++++++++++ .../samplecode/denofmt-jsonc/in.jsonc | 10 ++++++++++ .../samplecode/denofmt-jsonc/out.jsonc | 19 ++++++++++++++++++ test/formatters/samplecode/denofmt-jsx/in.jsx | 17 ++++++++++++++++ .../formatters/samplecode/denofmt-jsx/out.jsx | 16 +++++++++++++++ test/formatters/samplecode/denofmt-md/in.md | 1 + test/formatters/samplecode/denofmt-md/out.md | 4 ++++ test/formatters/samplecode/denofmt-ts/in.ts | 1 + test/formatters/samplecode/denofmt-ts/out.ts | 6 ++++++ test/formatters/samplecode/denofmt-tsx/in.tsx | 20 +++++++++++++++++++ .../formatters/samplecode/denofmt-tsx/out.tsx | 19 ++++++++++++++++++ test/formatters/samplecode/denofmt/in.js | 1 + test/formatters/samplecode/denofmt/in.jsx | 1 + test/formatters/samplecode/denofmt/in.ts | 1 + test/formatters/samplecode/denofmt/in.tsx | 1 + test/formatters/samplecode/denofmt/out.js | 1 + test/formatters/samplecode/denofmt/out.jsx | 1 + test/formatters/samplecode/denofmt/out.ts | 1 + test/formatters/samplecode/denofmt/out.tsx | 1 + 32 files changed, 166 insertions(+) create mode 120000 test/formatters/installers/denofmt-js.bash create mode 120000 test/formatters/installers/denofmt-json.bash create mode 120000 test/formatters/installers/denofmt-jsonc.bash create mode 120000 test/formatters/installers/denofmt-jsx.bash create mode 120000 test/formatters/installers/denofmt-md.bash create mode 120000 test/formatters/installers/denofmt-ts.bash create mode 120000 test/formatters/installers/denofmt-tsx.bash create mode 100644 test/formatters/installers/denofmt.bash create mode 120000 test/formatters/samplecode/denofmt-js/in.js create mode 100644 test/formatters/samplecode/denofmt-js/out.js create mode 120000 test/formatters/samplecode/denofmt-json/in.json create mode 100644 test/formatters/samplecode/denofmt-json/out.json create mode 100644 test/formatters/samplecode/denofmt-jsonc/in.jsonc create mode 100644 test/formatters/samplecode/denofmt-jsonc/out.jsonc create mode 100644 test/formatters/samplecode/denofmt-jsx/in.jsx create mode 100644 test/formatters/samplecode/denofmt-jsx/out.jsx create mode 120000 test/formatters/samplecode/denofmt-md/in.md create mode 100644 test/formatters/samplecode/denofmt-md/out.md create mode 120000 test/formatters/samplecode/denofmt-ts/in.ts create mode 100644 test/formatters/samplecode/denofmt-ts/out.ts create mode 100644 test/formatters/samplecode/denofmt-tsx/in.tsx create mode 100644 test/formatters/samplecode/denofmt-tsx/out.tsx create mode 120000 test/formatters/samplecode/denofmt/in.js create mode 120000 test/formatters/samplecode/denofmt/in.jsx create mode 120000 test/formatters/samplecode/denofmt/in.ts create mode 120000 test/formatters/samplecode/denofmt/in.tsx create mode 120000 test/formatters/samplecode/denofmt/out.js create mode 120000 test/formatters/samplecode/denofmt/out.jsx create mode 120000 test/formatters/samplecode/denofmt/out.ts create mode 120000 test/formatters/samplecode/denofmt/out.tsx diff --git a/CHANGELOG.md b/CHANGELOG.md index 8871d12..bdf604f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,9 +13,12 @@ The format is based on [Keep a Changelog]. ([#229]) * [`robotidy`](https://robotidy.readthedocs.io) for Robot Framework files ([#263]). +* [denofmt](https://docs.deno.com/runtime/manual/tools/formatter) for + js, jsx, ts, tsx, json, jsonc, md files. ([#264]) [#229]: https://github.com/radian-software/apheleia/pull/229 [#263]: https://github.com/radian-software/apheleia/pull/263 +[#264]: https://github.com/radian-software/apheleia/pull/264 ## 4.0 (released 2023-11-23) ### Breaking changes diff --git a/apheleia-formatters.el b/apheleia-formatters.el index 780da69..49ffd7d 100644 --- a/apheleia-formatters.el +++ b/apheleia-formatters.el @@ -47,6 +47,14 @@ (apheleia-formatters-indent "--indent-with-tabs" "--indent-size")) (dart-format . ("dart" "format")) + (denofmt . ("deno" "fmt" "-")) + (denofmt-js . ("deno" "fmt" "-" "--ext" "js")) + (denofmt-json . ("deno" "fmt" "-" "--ext" "json")) + (denofmt-jsonc . ("deno" "fmt" "-" "--ext" "jsonc")) + (denofmt-jsx . ("deno" "fmt" "-" "--ext" "jsx")) + (denofmt-md . ("deno" "fmt" "-" "--ext" "md")) + (denofmt-ts . ("deno" "fmt" "-" "--ext" "ts")) + (denofmt-tsx . ("deno" "fmt" "-" "--ext" "tsx")) (elm-format . ("elm-format" "--yes" "--stdin")) (fish-indent . ("fish_indent")) (fourmolu . ("fourmolu")) diff --git a/test/formatters/installers/denofmt-js.bash b/test/formatters/installers/denofmt-js.bash new file mode 120000 index 0000000..5308b4b --- /dev/null +++ b/test/formatters/installers/denofmt-js.bash @@ -0,0 +1 @@ +denofmt.bash \ No newline at end of file diff --git a/test/formatters/installers/denofmt-json.bash b/test/formatters/installers/denofmt-json.bash new file mode 120000 index 0000000..5308b4b --- /dev/null +++ b/test/formatters/installers/denofmt-json.bash @@ -0,0 +1 @@ +denofmt.bash \ No newline at end of file diff --git a/test/formatters/installers/denofmt-jsonc.bash b/test/formatters/installers/denofmt-jsonc.bash new file mode 120000 index 0000000..5308b4b --- /dev/null +++ b/test/formatters/installers/denofmt-jsonc.bash @@ -0,0 +1 @@ +denofmt.bash \ No newline at end of file diff --git a/test/formatters/installers/denofmt-jsx.bash b/test/formatters/installers/denofmt-jsx.bash new file mode 120000 index 0000000..5308b4b --- /dev/null +++ b/test/formatters/installers/denofmt-jsx.bash @@ -0,0 +1 @@ +denofmt.bash \ No newline at end of file diff --git a/test/formatters/installers/denofmt-md.bash b/test/formatters/installers/denofmt-md.bash new file mode 120000 index 0000000..5308b4b --- /dev/null +++ b/test/formatters/installers/denofmt-md.bash @@ -0,0 +1 @@ +denofmt.bash \ No newline at end of file diff --git a/test/formatters/installers/denofmt-ts.bash b/test/formatters/installers/denofmt-ts.bash new file mode 120000 index 0000000..5308b4b --- /dev/null +++ b/test/formatters/installers/denofmt-ts.bash @@ -0,0 +1 @@ +denofmt.bash \ No newline at end of file diff --git a/test/formatters/installers/denofmt-tsx.bash b/test/formatters/installers/denofmt-tsx.bash new file mode 120000 index 0000000..5308b4b --- /dev/null +++ b/test/formatters/installers/denofmt-tsx.bash @@ -0,0 +1 @@ +denofmt.bash \ No newline at end of file diff --git a/test/formatters/installers/denofmt.bash b/test/formatters/installers/denofmt.bash new file mode 100644 index 0000000..e78611b --- /dev/null +++ b/test/formatters/installers/denofmt.bash @@ -0,0 +1 @@ +curl -fsSL https://deno.land/x/install/install.sh | sudo DENO_INSTALL=/usr/local sh diff --git a/test/formatters/samplecode/denofmt-js/in.js b/test/formatters/samplecode/denofmt-js/in.js new file mode 120000 index 0000000..da49303 --- /dev/null +++ b/test/formatters/samplecode/denofmt-js/in.js @@ -0,0 +1 @@ +../prettier-javascript/in.js \ No newline at end of file diff --git a/test/formatters/samplecode/denofmt-js/out.js b/test/formatters/samplecode/denofmt-js/out.js new file mode 100644 index 0000000..bfd7620 --- /dev/null +++ b/test/formatters/samplecode/denofmt-js/out.js @@ -0,0 +1,5 @@ +function HelloWorld( + { greeting = "hello", greeted = '"World"', silent = false, onMouseOver }, +) { + if (!greeting) return null; +} diff --git a/test/formatters/samplecode/denofmt-json/in.json b/test/formatters/samplecode/denofmt-json/in.json new file mode 120000 index 0000000..599a1e2 --- /dev/null +++ b/test/formatters/samplecode/denofmt-json/in.json @@ -0,0 +1 @@ +../prettier-json/in.json \ No newline at end of file diff --git a/test/formatters/samplecode/denofmt-json/out.json b/test/formatters/samplecode/denofmt-json/out.json new file mode 100644 index 0000000..59bb3b4 --- /dev/null +++ b/test/formatters/samplecode/denofmt-json/out.json @@ -0,0 +1,19 @@ +{ + "arrowParens": "always", + "bracketSpacing": true, + "embeddedLanguageFormatting": "auto", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxBracketSameLine": false, + "jsxSingleQuote": false, + "printWidth": 80, + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": false, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false, + "vueIndentScriptAndStyle": false +} diff --git a/test/formatters/samplecode/denofmt-jsonc/in.jsonc b/test/formatters/samplecode/denofmt-jsonc/in.jsonc new file mode 100644 index 0000000..8ce15bd --- /dev/null +++ b/test/formatters/samplecode/denofmt-jsonc/in.jsonc @@ -0,0 +1,10 @@ +{"arrowParens": "always",// top comment + "bracketSpacing": true,"embeddedLanguageFormatting": "auto","htmlWhitespaceSensitivity": "css","insertPragma": false,"jsxBracketSameLine": false,"jsxSingleQuote": false,"printWidth": 80,// middle comment + "proseWrap": "preserve","quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": false, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false,"vueIndentScriptAndStyle": false // bottom comment +} \ No newline at end of file diff --git a/test/formatters/samplecode/denofmt-jsonc/out.jsonc b/test/formatters/samplecode/denofmt-jsonc/out.jsonc new file mode 100644 index 0000000..879665d --- /dev/null +++ b/test/formatters/samplecode/denofmt-jsonc/out.jsonc @@ -0,0 +1,19 @@ +{ + "arrowParens": "always", // top comment + "bracketSpacing": true, + "embeddedLanguageFormatting": "auto", + "htmlWhitespaceSensitivity": "css", + "insertPragma": false, + "jsxBracketSameLine": false, + "jsxSingleQuote": false, + "printWidth": 80, // middle comment + "proseWrap": "preserve", + "quoteProps": "as-needed", + "requirePragma": false, + "semi": true, + "singleQuote": false, + "tabWidth": 2, + "trailingComma": "es5", + "useTabs": false, + "vueIndentScriptAndStyle": false // bottom comment +} diff --git a/test/formatters/samplecode/denofmt-jsx/in.jsx b/test/formatters/samplecode/denofmt-jsx/in.jsx new file mode 100644 index 0000000..1895e85 --- /dev/null +++ b/test/formatters/samplecode/denofmt-jsx/in.jsx @@ -0,0 +1,17 @@ +const Foo = ({name, + test} + ) => { + return <> +