Current section
Files
Jump to
Current section
Files
lexical_plugin
mix.exs
mix.exs
defmodule Lexical.Plugin.MixProject do
use Mix.Project
@version "0.0.1"
def project do
[
app: :lexical_plugin,
aliases: aliases(),
version: @version,
elixir: "~> 1.14",
start_permanent: Mix.env() == :prod,
deps: deps(),
build_path: "../../_build",
deps_path: "../../deps",
dialyzer: dialyzer_config(),
package: package(),
docs: docs()
]
end
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger],
mod: {Lexical.Plugin.Application, []}
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
env_dep(
prod: {:lexical_shared, "> 0.0.0"},
else: {:lexical_shared, path: "../lexical_shared"}
),
{:ex_doc, "~> 0.29", only: [:dev, :prod], optional: true},
dialyzer_dep()
]
end
defp env_dep(opts) do
case Keyword.fetch(opts, Mix.env()) do
{:ok, dep} -> dep
:error -> Keyword.fetch!(opts, :else)
end
end
defp aliases do
[
test: "test --no-start"
]
end
defp package do
[
description: "The package you need to build plugins for the lexical language server",
licenses: ["Apache-2.0"],
links: %{"Lexical LSP" => "https://github.com/lexical-lsp/lexical"},
files: [
"lib/lexical/plugin/v1/*",
".formatter.exs",
"mix.exs",
"README*",
"LICENSE*"
]
]
end
defp docs do
[
extras: ["README.md": [title: "Overview"]],
main: "readme",
source_ref: "v#{@version}"
]
end
def dialyzer_dep do
path = Path.join([Path.dirname(__ENV__.file), "..", "..", "mix_dialyzer.exs"])
if File.exists?(path) do
Code.require_file(path)
Mix.Dialyzer.dependency()
else
{:dialyxir, "> 0.0.0", only: [], runtime: false, optional: true}
end
end
def dialyzer_config do
if function_exported?(Mix.Dialyzer, :config, 0) do
Mix.Dialyzer.config()
else
[]
end
end
end