aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbin Simon <mail@meain.io>2022-12-10 07:37:34 +0530
committerGitHub <noreply@github.com>2022-12-10 02:07:34 +0000
commitdeab8fb972f0cbc03c6a5409564435121b5db9c2 (patch)
treed6c9545bc54fbcb5a4687c38bddb03a068dcd8b7
parent049b724858c5c6f43a7a0831ddc2d85920dcd0c3 (diff)
Add gofumpt and goimports as formatter options (#147)
* Add gofumpt and goimports as formatter options * Add tests for gofumpt and goimports * changelog Co-authored-by: Radon Rosborough <radon@intuitiveexplanations.com>
-rw-r--r--CHANGELOG.md4
-rw-r--r--apheleia.el2
-rw-r--r--test/formatters/installers/gofumpt.bash6
-rw-r--r--test/formatters/installers/goimports.bash3
-rw-r--r--test/formatters/samplecode/gofumpt/in.go10
-rw-r--r--test/formatters/samplecode/gofumpt/out.go8
-rw-r--r--test/formatters/samplecode/goimports/in.go12
-rw-r--r--test/formatters/samplecode/goimports/out.go12
8 files changed, 57 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index de3fb90..95a6bd1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,9 @@ The format is based on [Keep a Changelog].
* [`crystal tool
format`](https://crystal-lang.org/reference/1.6/man/crystal/index.html#crystal-tool-format)
for [Crystal](https://crystal-lang.org/) ([#137]).
+* [gofumpt](https://pkg.go.dev/mvdan.cc/gofumpt) and
+ [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) for
+ [Go](https://golang.google.cn/) ([#147]).
[#131]: https://github.com/radian-software/apheleia/issues/131
[#134]: https://github.com/radian-software/apheleia/issues/134
@@ -36,6 +39,7 @@ The format is based on [Keep a Changelog].
[#138]: https://github.com/radian-software/apheleia/pull/138
[#143]: https://github.com/radian-software/apheleia/pull/143
[#145]: https://github.com/radian-software/apheleia/pull/145
+[#147]: https://github.com/radian-software/apheleia/pull/147
## 3.1 (released 2022-11-11)
### Enhancements
diff --git a/apheleia.el b/apheleia.el
index 3d0bd0c..076438c 100644
--- a/apheleia.el
+++ b/apheleia.el
@@ -956,6 +956,8 @@ being run, for diagnostic purposes."
(elm-format . ("elm-format" "--yes" "--stdin"))
(fish-indent . ("fish_indent"))
(gofmt . ("gofmt"))
+ (gofumpt . ("gofumpt"))
+ (goimports . ("goimports"))
(google-java-format . ("google-java-format" "-"))
(isort . ("isort" "-"))
(lisp-indent . apheleia-indent-lisp-buffer)
diff --git a/test/formatters/installers/gofumpt.bash b/test/formatters/installers/gofumpt.bash
new file mode 100644
index 0000000..b16ef37
--- /dev/null
+++ b/test/formatters/installers/gofumpt.bash
@@ -0,0 +1,6 @@
+# Require at least version 1.17 of go
+# https://github.com/mvdan/gofumpt/issues/231
+curl -OL https://golang.org/dl/go1.19.3.linux-amd64.tar.gz
+sudo tar -C /usr/local -xvf go1.19.3.linux-amd64.tar.gz
+/usr/local/go/bin/go install mvdan.cc/gofumpt@latest
+cp -L "$HOME/go/bin/gofumpt" /usr/local/bin/ \ No newline at end of file
diff --git a/test/formatters/installers/goimports.bash b/test/formatters/installers/goimports.bash
new file mode 100644
index 0000000..18d4471
--- /dev/null
+++ b/test/formatters/installers/goimports.bash
@@ -0,0 +1,3 @@
+apt-get install -y golang-go
+go get -u golang.org/x/tools/cmd/goimports
+cp -L "$HOME/go/bin/goimports" /usr/local/bin/ \ No newline at end of file
diff --git a/test/formatters/samplecode/gofumpt/in.go b/test/formatters/samplecode/gofumpt/in.go
new file mode 100644
index 0000000..c70abb4
--- /dev/null
+++ b/test/formatters/samplecode/gofumpt/in.go
@@ -0,0 +1,10 @@
+package asdfasdf
+
+func Factorial(x int) int {
+
+ if x <= 1 {
+ return x
+}
+ return x * Factorial(x - 1,
+)
+ }
diff --git a/test/formatters/samplecode/gofumpt/out.go b/test/formatters/samplecode/gofumpt/out.go
new file mode 100644
index 0000000..1437eb1
--- /dev/null
+++ b/test/formatters/samplecode/gofumpt/out.go
@@ -0,0 +1,8 @@
+package asdfasdf
+
+func Factorial(x int) int {
+ if x <= 1 {
+ return x
+ }
+ return x * Factorial(x-1)
+}
diff --git a/test/formatters/samplecode/goimports/in.go b/test/formatters/samplecode/goimports/in.go
new file mode 100644
index 0000000..3583cc5
--- /dev/null
+++ b/test/formatters/samplecode/goimports/in.go
@@ -0,0 +1,12 @@
+package asdfasdf
+func
+
+Factorial(x int) int {
+ if x <=
+ 1 {
+ return x
+}
+ fmt.Println( "Hello there!" )
+ return x * Factorial(x - 1,
+)
+ }
diff --git a/test/formatters/samplecode/goimports/out.go b/test/formatters/samplecode/goimports/out.go
new file mode 100644
index 0000000..e56e679
--- /dev/null
+++ b/test/formatters/samplecode/goimports/out.go
@@ -0,0 +1,12 @@
+package asdfasdf
+
+import "fmt"
+
+func Factorial(x int) int {
+ if x <=
+ 1 {
+ return x
+ }
+ fmt.Println("Hello there!")
+ return x * Factorial(x-1)
+}