diff options
Diffstat (limited to 'pluginManager.js')
-rw-r--r-- | pluginManager.js | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/pluginManager.js b/pluginManager.js index 4836cef..12e4e65 100644 --- a/pluginManager.js +++ b/pluginManager.js @@ -7,9 +7,10 @@ var PLUGIN_INFO = <version>0.2</version> <minVersion>2.0pre</minVersion> <maxVersion>2.0pre</maxVersion> -<detail><![CDATA[ +<detail lang="ja"><![CDATA[ これはVimperatorプラグインの詳細情報orヘルプを表示するためのプラグインです。 == Command == + :plugin[help] [pluginName] [-v]: {pluginName}を入れるとそのプラグインの詳細を表示します。 省略すると全てのプラグインの詳細を表示します。 @@ -164,7 +165,7 @@ function getPlugins(){ if (info){ for (let tag in tags){ let value = tags[tag](info); - if (value.toString().length > 0) + if (value && value.toString().length > 0) plugin.push([tag, value]); } } @@ -183,6 +184,7 @@ function WikiParser(text){ this.mode = ''; this.lines = text.split(/\n\r|[\r\n]/); this.preCount = 0; + this.pendingMode = ''; this.xmlstack = new HTMLStack(); } WikiParser.prototype = { @@ -223,6 +225,7 @@ WikiParser.prototype = { return <>{line}</>; } else if (this.wikiReg.preStart.test(line)){ this.mode = 'pre'; + this.pendingMode = prevMode; return <pre/>; } else if (this.wikiReg.hn.test(line)){ var hn = RegExp.$1.length - 1; @@ -263,8 +266,7 @@ WikiParser.prototype = { this.xmlstack.appendLastChild(indent.substr(prevIndent) + line + "\n"); } else { this.xmlstack.reorg(-2); - this.mode = this.xmlstack.lastLocalName; - if (this.mode == 'pre') this.mode = ''; + this.mode = this.pendingMode; indentList.pop(); if (indentList.length == 0) indentList = [0]; } @@ -284,7 +286,7 @@ WikiParser.prototype = { this.xmlstack.push(bufXML); indentList.push(currentIndent); } else { - if (this.xmlstack.length > 0){ + if (prevMode && this.xmlstack.length > 0){ this.xmlstack.appendLastChild(bufXML); } else { this.xmlstack.append(bufXML); @@ -425,4 +427,4 @@ var public = { }; return public; })(); -// vim: sw=4 ts=4 fdm=marker: +// vim: sw=4 ts=4 et fdm=marker: |