Files
CljElixir/stubs/Code.clj
2026-03-09 23:09:46 -04:00

134 lines
2.8 KiB
Clojure

(ns Code
"Elixir Code module — code loading, compilation, and evaluation.
In CljElixir: (Code/eval-string \"1 + 2\"), (Code/compile-file \"mod.ex\"), etc.")
(defn eval-string
"Evaluates Elixir code from a string. Returns {result, binding}.
(Code/eval-string \"1 + 2\") ;=> {3 []}"
([string])
([string binding])
([string binding opts]))
(defn eval-quoted
"Evaluates a quoted Elixir AST.
(Code/eval-quoted ast binding)"
([quoted])
([quoted binding])
([quoted binding opts]))
(defn compile-string
"Compiles Elixir code from a string."
([string])
([string file]))
(defn compile-file
"Compiles an Elixir source file."
([file])
([file relative-to]))
(defn compile-quoted
"Compiles a quoted AST."
([quoted])
([quoted file]))
(defn require-file
"Requires a file, compiling it if needed. No-op if already loaded."
([file])
([file relative-to]))
(defn ensure-loaded
"Ensures the module is loaded. Returns {:module module} or {:error reason}.
(Code/ensure-loaded Enum) ;=> {:module Enum}"
[module])
(defn ensure-loaded!
"Ensures the module is loaded. Raises on error."
[module])
(defn ensure-compiled
"Ensures the module is compiled. Returns {:module module} or {:error reason}."
[module])
(defn ensure-compiled!
"Ensures the module is compiled. Raises on error."
[module])
(defn loaded?
"Returns true if the module is loaded.
(Code/loaded? Enum) ;=> true"
[module])
(defn available?
"Returns true if the module is available."
[module])
(defn fetch-docs
"Returns documentation for a module."
[module])
(defn get-docs
"Returns docs for a module, function, or callback."
([module spec]))
(defn string-to-quoted
"Parses an Elixir string to AST. Returns {:ok ast} or {:error reason}.
(Code/string-to-quoted \"1 + 2\") ;=> {:ok {:+ [line: 1] [1 2]}}"
([string])
([string opts]))
(defn string-to-quoted!
"Parses to AST. Raises on error."
([string])
([string opts]))
(defn quoted-to-algebra
"Converts quoted AST to formatted algebra document."
([quoted])
([quoted opts]))
(defn format-string!
"Formats Elixir code string.
(Code/format-string! \"1+2\") ;=> \"1 + 2\""
([string])
([string opts]))
(defn format-file!
"Formats an Elixir source file."
([file])
([file opts]))
(defn purge
"Purges a module (removes old code)."
[module])
(defn delete
"Deletes a module from the VM."
[module])
(defn compiler-options
"Gets or sets compiler options.
(Code/compiler-options) ;=> current options"
([])
([opts]))
(defn put-compiler-option
"Sets a single compiler option."
[key value])
(defn unrequire-files
"Un-requires files so they can be required again."
[files])
(defn required-files
"Returns list of required files."
[])
(defn append-path
"Appends a path to the code path."
[path])
(defn prepend-path
"Prepends a path to the code path."
[path])