@prisma/language-server
Version:
Prisma Language Server
35 lines (34 loc) • 2.8 kB
TypeScript
import { Position } from 'vscode-languageserver';
import type { TextEdit, TextDocument } from 'vscode-languageserver-textdocument';
import { Block } from '../ast';
import { BlockType } from '../types';
import { PrismaSchema } from '../Schema';
export declare function isRelationField(currentLine: string, schema: PrismaSchema): boolean;
export declare function isValidFieldName(currentLine: string, position: Position, block: Block, document: TextDocument): boolean;
export declare const isDatamodelBlockName: (position: Position, block: Block, schema: PrismaSchema, document: TextDocument) => boolean;
export declare function isEnumValue(line: string, position: Position, block: Block, document: TextDocument): boolean;
export declare function printLogMessage(currentName: string, newName: string, isBlockRename: boolean, isFieldRename: boolean, isEnumValueRename: boolean, blockType: BlockType): void;
/**
* Renames references in any '@@index', '@@id' and '@@unique' attributes in the same model.
* Renames references in any referenced fields inside a '@relation' attribute in the same model (fields: []).
* Renames references inside a '@relation' attribute in other model blocks (references: []).
*/
export declare function renameReferencesForFieldName(currentName: string, newName: string, schema: PrismaSchema, block: Block, isRelationFieldRename: boolean): EditsMap;
/**
* Renames references where the current enum value is used as a default value in other model blocks.
*/
export declare function renameReferencesForEnumValue(currentValue: string, newName: string, schema: PrismaSchema, enumName: string): EditsMap;
export type EditsMap = {
[documentUri: string]: TextEdit[];
};
/**
* Renames references where the model name is used as a relation type in the same and other model blocks.
*/
export declare function renameReferencesForModelName(currentName: string, newName: string, schema: PrismaSchema): EditsMap;
export declare function insertBasicRename(newName: string, currentName: string, document: TextDocument, line: number): EditsMap;
export declare function mapExistsAlready(currentLine: string, schema: PrismaSchema, block: Block, isDatamodelBlockRename: boolean): boolean;
export declare function insertMapAttribute(currentName: string, position: Position, block: Block, isDatamodelBlockRename: boolean): EditsMap;
export declare function extractCurrentName(line: string, isBlockRename: boolean, isEnumValueRename: boolean, isFieldRename: boolean, document: TextDocument, position: Position): string;
export declare function appendEdit(edits: EditsMap, documentUri: string, edit: TextEdit): void;
export declare function appendEdits(edits: EditsMap, documentUri: string, editsToAppend: TextEdit[]): void;
export declare function mergeEditMaps(maps: EditsMap[]): EditsMap;