コンテンツにスキップ

API リファレンス

ソース文字列をフォーマットして返します。

import { format } from 'indentier'
const output = format(source, resolvedOptions, '.ts')
パラメーター説明
inputstringフォーマットするソースコード
optionsResolvedOptions解決済みの設定オプション
extstringファイル拡張子(例: '.ts')。省略時は '.js'
pluginIndentierPlugin | undefinedコア非対応言語用のプラグインインスタンス

string を返します。


cosmiconfig を使って最寄りの設定ファイルを読み込みます。

import { loadConfig } from 'indentier'
const { options, filepath } = await loadConfig()
// options は ResolvedOptions(デフォルト値補完済み)

Promise<{ options: ResolvedOptions, filepath: string | null }> を返します。


プラグインパッケージを動的にインポートしてグローバルレジストリに登録します。

import { loadPlugins } from 'indentier'
await loadPlugins(['@indentier/plugin-rust', '@indentier/plugin-go'])
パラメーター説明
namesstring[]インポートするパッケージ名

Promise<void> を返します。


プラグインインスタンスを手動で登録します。

import { registerPlugin } from 'indentier'
registerPlugin({
extensions: ['.mylang'],
rubyCompatible: false,
})

指定した拡張子のプラグインを返します。登録されていなければ undefined

import { getPlugin } from 'indentier'
const plugin = getPlugin('.rs') // IndentierPlugin | undefined

指定した拡張子のプラグインが登録されていれば true を返します。


登録済みのすべてのプラグインをクリアします。テスト時に便利です。


interface IndentierOptions {
mode?: 'default' | 'ruby'
tabWidth?: number
useTabs?: boolean
offset?: number
minColumn?: number
brackets?: boolean
semicolon?: boolean
comma?: boolean
ruby?: {
variableName?: string
injectDeclaration?: boolean
smartEnd?: boolean
}
overrides?: Override[]
plugins?: string[]
}
interface IndentierPlugin {
extensions: string[]
rubyCompatible?: boolean
declarationTemplate?: string | null
getEndStatement?: (variableName: string) => string
declarationInsertIndex?: (lines: readonly PluginLine[]) => number
}
interface PluginLine {
readonly body: string
}