UNPKG

@ton-ai-core/vibecode-linter

Version:

Advanced TypeScript linter with Git integration, dependency analysis, and comprehensive error reporting

77 lines 3.48 kB
/** * Размер табуляции по умолчанию (как в git diff и ESLint). */ export declare const TAB_WIDTH = 8; /** * Конвертирует визуальную колонку (как в ESLint) в реальный индекс символа. * * CHANGE: Reworked iteration to compute target column purely through monotone visual offsets * WHY: Stryker report highlighted equivalent mutants due to unused flags; tight loop makes every branch observable * QUOTE(UserMsg#6): "Можешь так же тесты исправить о которых было описано в отчёте?" * REF: output:849-897 ([Survived] BooleanLiteral / ConditionalExpression for column.ts) * SOURCE: "Stryker Mutant Survivors Log" (output file) * FORMAT THEOREM: ∀i ∈ ℤ≥0, visualOffset_i ≤ visualOffset_{i+1} ∧ target ∈ [visualOffset_i, visualOffset_{i+1}) ⇒ return index(i) + δ * QUOTE(LINT): "Function has too many lines/complexity" * REF: ESLint max-lines-per-function, complexity * SOURCE: n/a * * ESLint и git diff считают табуляцию как 8 пробелов, но в строке это один символ. * Эта функция преобразует визуальную позицию в реальный индекс в строке. * * @param lineContent Строка исходного кода без diff-префикса * @param visualColumn Визуальная колонка (0-based) * @param tabSize Размер табуляции; по умолчанию 8, как в git diff и ESLint * @returns Реальный индекс символа (0-based) * * @pure true * @invariant visualColumn >= 0 * @complexity O(n) где n = длина строки * * @example * ```ts * // Строка: "x\ty" (x, tab, y) * // Визуально: "x y" (x, 7 spaces, y) * const realIndex = computeRealColumnFromVisual("x\ty", 8, 8); * // Returns 2 (индекс символа 'y') * ``` */ export declare function computeRealColumnFromVisual(lineContent: string, visualColumn: number, tabSize?: number): number; /** * Вычисляет визуальную позицию колонки с учетом табуляции. * * @param content Строка исходного кода * @param index Индекс символа в строке (0-based) * @param tabWidth Размер табуляции * @returns Визуальная колонка (0-based) * * @pure true * @invariant result >= 0 * @complexity O(n) где n = index * * @example * ```ts * // Строка: "x\ty" (x, tab, y) * const visual = visualColumnAt("x\ty", 2, 8); * // Returns 8 (визуальная позиция 'y') * ``` */ export declare function visualColumnAt(content: string, index: number, tabWidth?: number): number; /** * Раскрывает табуляцию в строке в пробелы. * * @param content Строка исходного кода с табуляцией * @param tabWidth Размер табуляции * @returns Строка с раскрытыми табуляциями * * @pure true * @invariant result.length >= content.length * @complexity O(n) где n = длина строки * * @example * ```ts * const expanded = expandTabs("x\ty", 8); * // Returns "x y" (x, 7 spaces, y) * ``` */ export declare function expandTabs(content: string, tabWidth?: number): string; //# sourceMappingURL=column.d.ts.map