Tiddlywiki codemirror 6
你的下一个 TiddlyWiki5 编辑器:Codemirror6, 专注TiddlyWiki5写作体验的优化,和TiddlyWiki5深度集成.
插件在线地址
🧩 TIDDLYWIKI CODEMIRROR-6背景介绍
- tw 的 codemirror5 插件为了可插拔性, 将codemirror的每个特性模块做成了单独的模块, 对于不熟悉的人来说, 经常会遇到依赖确实导致的报错。又正好看到codemirror6的稳定。 希望使用codemirror6重构一个插件。 当时社区正好有人开始了这个项目。 我第一次使用就觉得很不错。 但是我希望加上一些新特性, 比如vim 代码片段的自动提示, 补全, 借助moderndev项目, 我成功地重构了codemirror6。并且加上了很多新特性.
难点
目前插件开发重点为自动补全提示.
主要是tw 本身的theme layout palette之间的概念比较模糊, 对于插件开发使用不同的主题颜色比较困难。还有暗亮模式的问题, 社区并没有一个一致的解决方案。还有就是i18n 的实现。 更多情况下还是要靠开发者自己去实现兼容。所以这一块目前插件虽然做了一部分实现。 但是肯定是不够通用的。 所以目前插件并不会对这些进行较为全面的完善。
代码高亮:...
用户群体受众群体和反馈比较少. 所以主要都是解决自己遇到一些痛点和bug.
特性
- 自动完成预览(包括图片)
- 支持加载代码片段模块
- 迷你地图、Vim 模式、字数统计、彩虹括号、代码块高亮
- 自定义占位符、制表符大小、最小完成长度
Completions
输入
/?
, 你将看到所有的补全命令列表(注意目前插件加上了较多的特性, 更加高级具体的用法可能尚未在文档中列出. 关于cm6 的全部使用说明需要一篇文章来补充, 待填坑)
/
获取用户代码片段[[
或{{
获取 tiddlers:
获取emoji表情符号[img[
获取图片tiddler<$
获取小部件//
更改 tiddler 类型#
插入tiddler标签@#
打开 codemirror6 设置页面弹窗
Tips
- Emoji 完成需要安装 [[$:/plugins/oeyoews/tiddlywiki-cmp-emoji]] 插件
- 如果你希望添加你的自定义代码片段,你可以编写一个简单的插件模块(模块类型:snippets)。
- 按 Tab 键接受当前完成
- 非 Vim 模式下按
ctrl + /
注释当前行 - Vim 模式:
"+y
(复制到系统剪贴板) - Vim 模式:
"+p
(粘贴系统剪贴板内容到编辑器)
Can be removed plugins
- Cm5 系列插件
- 自动列表插件
- 自动完成插件
- 插入当前时间插件
- 表情按钮插件
- 字符按钮插件
- ...
Proposal
零 Js,纯 Wikitext。
将代码片段纳入插件,用于小部件、宏和模板,可以显著提升用户便利性。例如,kookma 插件展示了许多示例代码,包括宏、样式和常用片段,这些都可以转换为代码片段。
特别是 codemirror6 插件,它可以无缝加载这些代码片段,同时也支持占位符。此外,用户可以分享他们常用的代码片段,促进协作和支持性社区的建设。这些片段甚至可以作为独立插件打包,例如 zero-js 或纯 wikitext。这种方式无疑将简化编码过程,并有助于创造更高效和用户友好的体验。
Motivation
- 希望统一 codemirror 插件,无需安装十几个 codemirror 插件,或因缺少某些插件而导致的界面错误。
- codemirror 增强插件的自动完成有时会导致界面冻结。
- 更好地支持代码片段
- 更佳的 markdown 编辑体验
- all in codemirror6 with tiddlywiki5
Credits
BurningTreeC's tiddlywiki codemirror-6 plugin
Report Bug
https://github.com/oeyoews/tiddlywiki-codemirror6/issues/new