🚧 Optimize
This commit is contained in:
@@ -38,9 +38,6 @@ export interface CodeBlockOptions {
|
||||
|
||||
/** 新建块时的默认语言 */
|
||||
defaultLanguage?: SupportedLanguage;
|
||||
|
||||
/** 新建块时是否默认启用自动检测(添加-a标记) */
|
||||
defaultAutoDetect?: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -87,7 +84,6 @@ export function createCodeBlockExtension(options: CodeBlockOptions = {}): Extens
|
||||
showBackground = true,
|
||||
enableAutoDetection = true,
|
||||
defaultLanguage = 'text',
|
||||
defaultAutoDetect = true,
|
||||
} = options;
|
||||
|
||||
return [
|
||||
|
||||
@@ -83,56 +83,10 @@ export interface EditorOptions {
|
||||
defaultBlockAutoDetect: boolean;
|
||||
}
|
||||
|
||||
// 语言信息接口
|
||||
export interface LanguageInfo {
|
||||
name: SupportedLanguage;
|
||||
auto: boolean; // 是否自动检测语言
|
||||
}
|
||||
|
||||
// 位置范围接口
|
||||
export interface Range {
|
||||
from: number;
|
||||
to: number;
|
||||
}
|
||||
|
||||
// 代码块核心接口
|
||||
export interface CodeBlock {
|
||||
language: LanguageInfo;
|
||||
content: Range; // 内容区域
|
||||
delimiter: Range; // 分隔符区域
|
||||
range: Range; // 整个块区域(包括分隔符和内容)
|
||||
}
|
||||
|
||||
// 代码块解析选项
|
||||
export interface ParseOptions {
|
||||
fallbackLanguage?: SupportedLanguage;
|
||||
enableAutoDetection?: boolean;
|
||||
}
|
||||
|
||||
// 分隔符格式常量
|
||||
export const DELIMITER_REGEX = /^\n∞∞∞([a-zA-Z0-9_-]+)(-a)?\n/gm;
|
||||
export const DELIMITER_PREFIX = '\n∞∞∞';
|
||||
export const DELIMITER_SUFFIX = '\n';
|
||||
export const AUTO_DETECT_SUFFIX = '-a';
|
||||
|
||||
// 代码块操作类型
|
||||
export type BlockOperation =
|
||||
| 'insert-after'
|
||||
| 'insert-before'
|
||||
| 'delete'
|
||||
| 'move-up'
|
||||
| 'move-down'
|
||||
| 'change-language';
|
||||
|
||||
// 代码块状态更新事件
|
||||
export interface BlockStateUpdate {
|
||||
blocks: CodeBlock[];
|
||||
activeBlockIndex: number;
|
||||
operation?: BlockOperation;
|
||||
}
|
||||
|
||||
// 语言检测结果
|
||||
export interface LanguageDetectionResult {
|
||||
language: SupportedLanguage;
|
||||
confidence: number;
|
||||
}
|
||||
Reference in New Issue
Block a user