Mit dem neuen Formatierer in Elixir v1.6 glaube ich nicht, dass es für Dogma noch mehr verwendet wird. Danke, dass du diesen Linter benutzt hast, es hat Spaß gemacht :)
Dogma ist ein Prinzip oder eine Reihe von Prinzipien, die von einer Autorität als unbestreitbar wahr sind .
Es ist auch ein Linter im Codestil für Elixir, der von Scham angetrieben wird.
Dogma ist ein Tool zur Durchsetzung eines konsistenten Elixiercode -Stils in Ihrem Projekt. Die Idee ist, dass es auch einfacher zu verstehen ist, wenn Ihr Code leichter zu lesen ist. Es ist sehr konfigurierbar, sodass Sie es so anpassen können, dass Sie Ihren Style Guide entsprechen, aber mit einer vernünftigen Standardeinstellung ausgestattet sind. Für die meisten Personen sollte es also einfach außerhalb des Boxs arbeiten. Ich mag es, Dogma auf dem CI -Server mit der Testsuite auszuführen und den Build in Betracht zu ziehen, wenn Dogma ein Problem meldet.
Wenn Sie an einem Tool interessiert sind, das mehr darauf ausgerichtet ist, Stilvorschläge zu machen, anstatt Ihren Style Guide streng durchzusetzen, lesen Sie Credo.
Fügen Sie Ihren Mix -Abhängigkeiten Dogma hinzu
# mix.exs
def deps do
[
{ :dogma , "~> 0.1" , only: :dev } ,
]
endHolen es:
mix deps.get
Führen Sie die Mix -Aufgabe aus:
mix dogma
Du wirst so etwas bekommen:
Inspecting 27 files.
.....X..........X..........
27 files, 2 errors!
== lib/dogma/rules.ex ==
23: TrailingBlankLines: Blank lines detected at end of file
== test/dogma/formatter_test.exs ==
9: TrailingWhitespace: Trailing whitespace detected
Wie praktisch!
Um Dogma aus einem Verzeichnis auszuführen, erstellen Sie das E -eSkript:
mix escript.build
Dies erzeugt eine ausführbare Datei, die Sie auf Ihrem Weg platzieren und von überall von überall aufrufen können.
mix test # Run tests once
mix test.watch # Run tests on file changes
mix dogma # Dogfooding- run the linter!Schauen Sie sich sie auf Hexdocs an oder generieren Sie sie selbst:
mix docs Dogma - A code style linter for Elixir, powered by shame.
Copyright © 2015 Louis Pilfold - MIT Licence
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
the rights to use, copy, modify, merge, publish, distribute, sublicense,
and/or sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.