diff --git a/CHANGELOG.md b/CHANGELOG.md index dd692cf3..bf87bef1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ `1.8.0`: 帮助菜单支持连续触发补全弹窗 `1.8.2`: 代码片段预览改成纯文本 -`1.8.4`: 修复嵌入标题含有特殊引号的问题 \ No newline at end of file +`1.8.4`: 修复嵌入标题含有特殊引号的问题 +`1.8.5`: 支持中文`【【` 触发 \ No newline at end of file diff --git a/package.json b/package.json index aa62ad83..9a1aad87 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "registry": "https://registry.npmjs.org" }, "license": "MIT", - "version": "1.8.4", + "version": "1.8.5", "packageManager": "pnpm@9.0.6", "scripts": { "update:config": " pnpm ts-node scripts/generateConfig.ts", diff --git a/packages/lang-tiddlywiki/package.json b/packages/lang-tiddlywiki/package.json index 97ad9838..18d48cc5 100644 --- a/packages/lang-tiddlywiki/package.json +++ b/packages/lang-tiddlywiki/package.json @@ -1,6 +1,6 @@ { "name": "lang-tiddlywiki", - "version": "1.8.4", + "version": "1.8.5", "description": "", "scripts": { "build": "cm-buildhelper src/tiddlywiki.ts" diff --git a/src/tiddlywiki-codemirror-6/modules/completions/sources/index.ts b/src/tiddlywiki-codemirror-6/modules/completions/sources/index.ts index c26e7f4f..d76848de 100644 --- a/src/tiddlywiki-codemirror-6/modules/completions/sources/index.ts +++ b/src/tiddlywiki-codemirror-6/modules/completions/sources/index.ts @@ -10,6 +10,7 @@ import snippets from './snippets'; import tags from './tags'; import template from './template'; import tiddlers from './tiddlers'; +import tiddlersCn from './tiddlers-cn'; import tiddlersEmbed from './tiddlers-embed'; import widget from './widget'; // import markdown from './markdown'; @@ -29,6 +30,7 @@ const sources = [ tags, tiddlersEmbed, tiddlers, + tiddlersCn, widget, template ]; diff --git a/src/tiddlywiki-codemirror-6/modules/completions/sources/tiddlers-cn.ts b/src/tiddlywiki-codemirror-6/modules/completions/sources/tiddlers-cn.ts new file mode 100644 index 00000000..0b3bdd4e --- /dev/null +++ b/src/tiddlywiki-codemirror-6/modules/completions/sources/tiddlers-cn.ts @@ -0,0 +1,44 @@ +import { Completion } from '@codemirror/autocomplete'; +import conf from '@/cm6/config'; +import { renderTid } from '@/cm6/utils/renderTiddler'; +import { EditorView } from '@codemirror/view'; + +const type = 'cm-tiddler'; +const section = 'tiddlers'; +const delimiter = '【【'; +const description = 'Tiddler Embed in Chinese'; + +export function getAllTiddlers(delimiter: string) { + const systemFilter = + '[all[tiddlers+shadows]!has[draft.of]!prefix[$:/status]!preifx[$:/temp]!prefix[$:/state]!tag[$:/tags/TextEditor/Snippet]!prefix[$:/language]!prefix[$:/config/Server/]!prefix[Draft of]]'; + const filter = conf.enableSystemTiddlersCompletion() + ? systemFilter + : '[!is[system]!has[draft.of]]'; + const allTiddlers = $tw.wiki.filterTiddlers(filter); + + return allTiddlers.map( + (title) => + ({ + label: delimiter + title, + displayLabel: title.length > 35 ? title.slice(0, 35) + ' …' : title, + type, + section, + boost: title.startsWith('$') ? 0 : 1, + // NOTE: TypeError: Cannot set property parentNode of # which has only a getter, 部分 widget 使用到$tw 的 fakedom api, 会导致报错。 + info: () => renderTid(title), + apply: (view: EditorView, completion, from, to) => { + view.dispatch({ + changes: { from, to, insert: '[[' + title + ']]' } + }); + } + }) as Completion + ); +} + +export default { + section, + type, + delimiter, + description, + snippets: () => getAllTiddlers(delimiter) +}; diff --git a/src/tiddlywiki-codemirror-6/plugin.info b/src/tiddlywiki-codemirror-6/plugin.info index bc03a55f..a34d9fce 100644 --- a/src/tiddlywiki-codemirror-6/plugin.info +++ b/src/tiddlywiki-codemirror-6/plugin.info @@ -2,7 +2,7 @@ "title": "$:/plugins/oeyoews/tiddlywiki-codemirror-6", "name": "CodeMirror6", "description": "CodeMirror 6 editor", - "version": "1.8.4", + "version": "1.8.5", "core-version": ">=5.3.3", "list": "readme usage" } \ No newline at end of file