defmodule MakeupDiff.MixProject do use Mix.Project @app :makeup_patch @version "0.1.0" @source_url "https://github.com/am-kantox/makeup_patch" def project do [ app: @app, version: @version, elixir: "~> 1.18", start_permanent: Mix.env() == :prod, consolidate_protocols: Mix.env() not in [:dev, :test], deps: deps(), description: description(), package: package(), docs: docs(), aliases: aliases(), test_coverage: [tool: ExCoveralls], dialyzer: [ plt_file: {:no_warn, ".dialyzer/dialyzer.plt"}, plt_add_deps: :app_tree, plt_core_path: ".dialyzer", list_unused_filters: true, ignore_warnings: ".dialyzer/ignore.exs" ], name: "MakeupDiff", source_url: @source_url ] end def application do [ extra_applications: [:logger], mod: {Makeup.Lexers.DiffLexer.Application, []} ] end def cli do [ preferred_envs: [ coveralls: :test, "coveralls.detail": :test, "coveralls.post": :test, "coveralls.html": :test, "coveralls.json": :test ] ] end defp deps do [ # Core {:makeup, "~> 1.0"}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3"}, # Development and documentation {:ex_doc, "~> 0.34", only: :dev, runtime: false}, {:excoveralls, "~> 0.18", only: :test, runtime: false}, {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}, {:credo, "~> 1.7", only: [:dev, :test], runtime: false} ] end defp aliases do [ quality: ["format", "credo --strict"], "quality.ci": [ "format --check-formatted", "credo --strict" ] ] end defp description do """ Diff and patch lexer for the Makeup syntax highlighter. Provides syntax highlighting for unified, context and normal diffs in ExDoc and any other tool using Makeup. """ end defp package do [ name: @app, files: ~w( lib .formatter.exs mix.exs README.md CHANGELOG.md LICENSE ), licenses: ["MIT"], maintainers: ["Aleksei Matiushkin"], links: %{ "GitHub" => @source_url, "Documentation" => "https://hexdocs.pm/#{@app}", "Changelog" => "#{@source_url}/blob/main/CHANGELOG.md" } ] end defp docs do [ main: "readme", extras: ["README.md", "CHANGELOG.md"], source_url: @source_url, source_ref: "v#{@version}", formatters: ["html"], authors: ["Aleksei Matiushkin"], canonical: "https://hexdocs.pm/#{@app}" ] end end