diff --git a/plugins/tiddlywiki/codemirror-trailingspace/config-language.multids b/plugins/tiddlywiki/codemirror-trailingspace/config-language.multids new file mode 100644 index 000000000..7f8ee0234 --- /dev/null +++ b/plugins/tiddlywiki/codemirror-trailingspace/config-language.multids @@ -0,0 +1,4 @@ +title: $:/language/codemirror/ + +showTrailingSpace/hint: Show trailing space +showTrailingSpace/info: Trailing space on each line will be decorated as per theme CSS. diff --git a/plugins/tiddlywiki/codemirror-trailingspace/config/showTrailingSpace.tid b/plugins/tiddlywiki/codemirror-trailingspace/config/showTrailingSpace.tid new file mode 100644 index 000000000..c2ab9d10b --- /dev/null +++ b/plugins/tiddlywiki/codemirror-trailingspace/config/showTrailingSpace.tid @@ -0,0 +1,3 @@ +title: $:/config/codemirror/showTrailingSpace +type: bool +text: true diff --git a/plugins/tiddlywiki/codemirror-trailingspace/files/addon/edit/trailingspace.css b/plugins/tiddlywiki/codemirror-trailingspace/files/addon/edit/trailingspace.css new file mode 100644 index 000000000..652152d99 --- /dev/null +++ b/plugins/tiddlywiki/codemirror-trailingspace/files/addon/edit/trailingspace.css @@ -0,0 +1,5 @@ +.cm-trailingspace { + background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==); + background-position: bottom left; + background-repeat: repeat-x; +} diff --git a/plugins/tiddlywiki/codemirror-trailingspace/files/addon/edit/trailingspace.js b/plugins/tiddlywiki/codemirror-trailingspace/files/addon/edit/trailingspace.js new file mode 100644 index 000000000..8d01c20ca --- /dev/null +++ b/plugins/tiddlywiki/codemirror-trailingspace/files/addon/edit/trailingspace.js @@ -0,0 +1,27 @@ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/5/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { + if (prev == CodeMirror.Init) prev = false; + if (prev && !val) + cm.removeOverlay("trailingspace"); + else if (!prev && val) + cm.addOverlay({ + token: function(stream) { + for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} + if (i > stream.pos) { stream.pos = i; return null; } + stream.pos = l; + return "trailingspace"; + }, + name: "trailingspace" + }); + }); +}); diff --git a/plugins/tiddlywiki/codemirror-trailingspace/files/tiddlywiki.files b/plugins/tiddlywiki/codemirror-trailingspace/files/tiddlywiki.files new file mode 100755 index 000000000..c981dfdaf --- /dev/null +++ b/plugins/tiddlywiki/codemirror-trailingspace/files/tiddlywiki.files @@ -0,0 +1,19 @@ +{ + "tiddlers": [ + { + "file": "addon/edit/trailingspace.css", + "fields": { + "type": "text/css", + "title": "$:/plugins/tiddlywiki/codemirror/addon/edit/trailingspace.css", + "tags": "[[$:/tags/Stylesheet]]" + } + },{ + "file": "addon/edit/trailingspace.js", + "fields": { + "type": "application/javascript", + "title": "$:/plugins/tiddlywiki/codemirror/addon/edit/trailingspace.js", + "module-type": "codemirror" + } + } + ] +} diff --git a/plugins/tiddlywiki/codemirror-trailingspace/plugin.info b/plugins/tiddlywiki/codemirror-trailingspace/plugin.info new file mode 100755 index 000000000..60e94e88e --- /dev/null +++ b/plugins/tiddlywiki/codemirror-trailingspace/plugin.info @@ -0,0 +1,7 @@ +{ + "title": "$:/plugins/tiddlywiki/codemirror-trailingspace", + "name": "CodeMirror Show Trailing Space", + "description": "Show trailing space in CodeMirror", + "parent-plugin": "$:/plugins/tiddlywiki/codemirror", + "list": "readme" +} diff --git a/plugins/tiddlywiki/codemirror-trailingspace/readme.tid b/plugins/tiddlywiki/codemirror-trailingspace/readme.tid new file mode 100755 index 000000000..bc95f5955 --- /dev/null +++ b/plugins/tiddlywiki/codemirror-trailingspace/readme.tid @@ -0,0 +1,7 @@ +title: $:/plugins/tiddlywiki/codemirror-trailingspace/readme + +This plugin contains the [[trailingspace|https://codemirror.net/5/doc/manual.html#addon_trailingspace]] +addon for CodeMirror, and provides a default style (red squiggles). + +First install the [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]]. + diff --git a/plugins/tiddlywiki/codemirror-trailingspace/settings/showTrailingSpace.tid b/plugins/tiddlywiki/codemirror-trailingspace/settings/showTrailingSpace.tid new file mode 100644 index 000000000..7b58507df --- /dev/null +++ b/plugins/tiddlywiki/codemirror-trailingspace/settings/showTrailingSpace.tid @@ -0,0 +1,11 @@ +title: $:/core/ui/ControlPanel/Settings/codemirror/showTrailingSpace +tags: $:/tags/ControlPanel/Settings/CodeMirror +caption: {{$:/language/codemirror/showTrailingSpace/hint}} + +\define lingo-base() $:/language/codemirror/showTrailingSpace/ +<> + +<$checkbox tiddler="$:/config/codemirror/showTrailingSpace" field="text" checked="true" unchecked="false" default="true"> + <$link to="$:/config/codemirror/showTrailingSpace"><> + +