wikiplus-highlight 2.44.2 → 2.48.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -7
- package/dist/main.min.js +1 -1
- package/dist/main.min.js.map +1 -1
- package/i18n/en.json +2 -2
- package/i18n/ka.json +5 -1
- package/i18n/zh-hans.json +2 -2
- package/i18n/zh-hant.json +5 -2
- package/lint.js +22 -9
- package/main.js +24 -17
- package/matchtags.js +46 -49
- package/package.json +2 -3
- package/search.js +88 -67
package/README.md
CHANGED
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
在*个人 JS 页*添加以下代码:
|
|
12
12
|
|
|
13
13
|
```javascript
|
|
14
|
-
mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.
|
|
14
|
+
mw.loader.load('//cdn.jsdelivr.net/npm/wikiplus-highlight@2.48.7');
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
或
|
|
18
18
|
|
|
19
19
|
```javascript
|
|
20
|
-
mw.loader.load('//unpkg.com/wikiplus-highlight@2.
|
|
20
|
+
mw.loader.load('//unpkg.com/wikiplus-highlight@2.48.7/dist/main.min.js');
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
### 稳定版本
|
|
@@ -47,10 +47,11 @@ mw.loader.load('//unpkg.com/wikiplus-highlight/dist/main.min.js');
|
|
|
47
47
|
- `Ctrl`/`Cmd` + `F`: 打开搜索框
|
|
48
48
|
- `Ctrl`/`Cmd` + `G`: 搜索下一处
|
|
49
49
|
- `Shift` + `Ctrl`/`Cmd` + `G`: 搜索上一处
|
|
50
|
-
- `
|
|
51
|
-
- `Shift` + `Ctrl
|
|
50
|
+
- `Ctrl`/`Cmd` + `H`: 打开搜索框: 打开全文替换
|
|
51
|
+
- `Shift` + `Ctrl`/`Cmd` + `H`: 替换上一处
|
|
52
|
+
- `Ctrl`/`Cmd` + `Alt` + `Enter`: 开始全文替换
|
|
52
53
|
|
|
53
|
-
除了使用以上快捷键,也可以通过在搜索框中按下 `Enter` 键或点击搜索框右侧的 `▼` 按钮来执行搜索下一处的命令,点击 `▲`
|
|
54
|
+
除了使用以上快捷键,也可以通过在搜索框中按下 `Enter` 键或点击搜索框右侧的 `▼` 按钮来执行搜索下一处的命令,点击 `▲` 按钮将执行搜索上一处的命令;在全文替换文本框中按下 `Enter` 键将执行全文替换命令,点击全文替换右侧的 `▼` 按钮执行替换下一处的命令,点击 `▲` 按钮将执行替换上一处的命令。搜索可以使用字符串,也可以使用形如 `/re/` 或 `/re/i` 的正则表达式。正则表达式仅接受可选的 `i` 修饰符,并默认添加 `m` 修饰符,暂不接受其他修饰符。 **注意:使用先行或后行断言时可能无法逐处替换。** 使用全文中匹配的字符都会添加淡粉色背景。如果没有匹配的结果,搜索框会添加粉色背景。
|
|
54
55
|
|
|
55
56
|
### 高亮当前行
|
|
56
57
|
|
|
@@ -91,7 +92,7 @@ MediaWiki 模式下自动闭合生效的字符包括 `(`、`[`、`{` 和 `"`,
|
|
|
91
92
|
添加以下快捷键:
|
|
92
93
|
|
|
93
94
|
- `Ctrl`/`Cmd` + `/`: 将选中的文字转换为HTML实体
|
|
94
|
-
- `Ctrl`/`Cmd` + `\`:
|
|
95
|
+
- `Ctrl`/`Cmd` + `\`: 将选中的文字解码或转换为URL编码
|
|
95
96
|
|
|
96
97
|
### 快速打开模板
|
|
97
98
|
|
|
@@ -102,7 +103,7 @@ MediaWiki 模式下自动闭合生效的字符包括 `(`、`[`、`{` 和 `"`,
|
|
|
102
103
|
这个功能基于 [wikiparser-node](https://github.com/bhsd-harry/wikiparser-node)。开启后将在编辑框内提示可能存在的维基语法错误,同时在右侧的滚动条上也会以红黄条纹粗略地指示错误在文中出现的位置。这个插件还将添加以下快捷键:
|
|
103
104
|
|
|
104
105
|
- `Ctrl`/`Cmd` + `L`: 随时开启或关闭错误提示
|
|
105
|
-
- `Ctrl`/`Cmd` + `K`:
|
|
106
|
+
- `Ctrl`/`Cmd` + `K`: 立即刷新语法错误
|
|
106
107
|
|
|
107
108
|
### 调整缩进
|
|
108
109
|
|
package/dist/main.min.js
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* @author 机智的小鱼君 <https://github.com/Dragon-Fish>
|
|
5
5
|
* @license GPL-3.0
|
|
6
6
|
*/
|
|
7
|
-
(async()=>{"use strict";if(mw.libs.wphl&&mw.libs.wphl.version)return;mw.libs.wphl=mw.libs.wphl||{};const i="2.44.2",w="object"==typeof mw.storage&&"function"==typeof mw.storage.getObject?mw.storage:{getObject(e){var i=localStorage.getItem(e);if(!1===i)return!1;try{return JSON.parse(i)}catch(e){return null}},setObject(e,i){try{return localStorage.setItem(e,JSON.stringify(i))}catch(e){return!1}}},r=(Object.fromEntries=Object.fromEntries||(e=>{const i={};for(var[t,o]of e)i[t]=o;return i}),(e=i)=>e.split(".").map(Number));const h=(e,...i)=>mw.msg("wphl-"+e,...i),n=(...e)=>$($.parseHTML(h(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:h(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=r().slice(0,2).join(".");const s="//fastly.jsdelivr.net",l="npm/codemirror@5.65.3",P="gh/bhsd-harry/codemirror-mediawiki@1.1.6",o="npm/wikiplus-highlight@"+t,{wgPageName:D,wgNamespaceNumber:k,wgPageContentModel:N,wgServerName:F,wgScriptPath:H,wgUserLanguage:U,skin:d}=mw["config"]["values"],u=null!==mw.loader.getState("ext.CodeMirror"),a=w.getObject("InPageEditMwConfig")||{},V=""+F+H,f=a[V]||{},b=!(f.time>Date.now()-2592e6),B={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},c=u?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:l+"/mode/lua/lua.min.js",mediawiki:b?"ext.CodeMirror.data":[],htmlmixed:"ext.CodeMirror.lib.mode.htmlmixed",xml:[]}:{lib:l+"/lib/codemirror.min.js",css:l+"/mode/css/css.min.js",javascript:l+"/mode/javascript/javascript.min.js",lua:l+"/mode/lua/lua.min.js",mediawiki:[],htmlmixed:l+"/mode/htmlmixed/htmlmixed.min.js",xml:l+"/mode/xml/xml.min.js"},m={searchcursor:l+"/addon/search/searchcursor.min.js",search:o+"/search.min.js",markSelection:l+"/addon/selection/mark-selection.min.js",activeLine:l+"/addon/selection/active-line.min.js",trailingspace:l+"/addon/edit/trailingspace.min.js",matchBrackets:l+"/addon/edit/matchbrackets.min.js",closeBrackets:l+"/addon/edit/closebrackets.min.js",matchTags:o+"/matchtags.min.js",fold:o+"/fold.min.js",wikiEditor:"ext.wikiEditor",contextmenu:"mediawiki.Title",lint:l+"/addon/lint/lint.min.js",annotateScrollbar:l+"/addon/scroll/annotatescrollbar.min.js",parser:"gh/bhsd-harry/wikiparser-node@0.6.28-b/extensions/editor.min.js",lintWikitext:o+"/lint.min.js"},x=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!y.has("wikiEditor")},{option:"styleActiveLine",addon:"activeLine"},{option:"showTrailingSpace",addon:"trailingspace"},{option:"matchBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||{bracketRegex:/[{}[\]]/}},{option:"autoCloseBrackets",addon:"closeBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||'()[]{}""'},{option:"matchTags",addon:["matchTags","fold"],modes:new Set(["mediawiki","widget"])},{option:"fold",modes:new Set(["mediawiki","widget"])}],y=new Set(w.getObject("Wikiplus-highlight-addons")||["search"]);let v=w.getObject("Wikiplus-highlight-indent")||4;const Q={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},q=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},g=q(e=>[...e].map(e=>{if(e in Q)return`&${Q[e]};`;const i=e.codePointAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),K=q(e=>{if(e.includes("%"))try{return decodeURIComponent(e)}catch(e){}return encodeURIComponent(e)}),j=({keyMap:e})=>e.default===e.pcDefault,J={"Ctrl-/":g,"Ctrl-\\":K},R={"Cmd-/":g,"Cmd-\\":K},C=(u,e)=>{if(("mediawiki"===e||"widget"===e)&&y.has("contextmenu")){const t=$(u.getWrapperElement()).addClass("CodeMirror-contextmenu"),[o]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];var i=i=>new Set(Object.keys(o).filter(e=>o[e]===i).map(e=>e.startsWith("#")?e:"#"+e));const w=i("invoke"),h=i("widget");t.contextmenu(({pageX:e,pageY:i})=>{const t=u.coordsChar({left:e,top:i}),{line:o,ch:a}=t,n=u.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(n)){const c=u.getLineTokens(o);for(let e=c.length-1;0<e;e--){var{type:r,end:s,string:l}=c[e];c[e-1].type===r&&(c[e-1].end=s,c[e-1].string+=l,c.splice(e,1))}const m=c.findIndex(({start:e,end:i})=>e<a&&i>=a),g=c[m].string.replace(/\u200E/g,"").replace(/_/g," ").trim();if(/\bmw-template-name\b/.test(n)){const p=new mw.Title(g);return 0!==p.namespace||g.startsWith(":")?open(p.getUrl(),"_blank"):open(mw.util.getUrl("Template:"+g),"_blank"),!1}if(!(m<2)&&/\bmw-parserfunction-delimiter\b/.test(c[m-1].type)&&/\bmw-parserfunction-name\b/.test(c[m-2].type)){var d=c[m-2].string.trim().toLowerCase();if(w.has(d))open(mw.util.getUrl("Module:"+g),"_blank");else{if(!h.has(d))return;open(mw.util.getUrl("Widget:"+g,{action:"edit"}),"_blank")}return!1}}})}},p=w.getObject("Wikiplus-highlight-i18n")||{};let S;p["wphl-version"]?((e,i)=>{var[t,o]=r(e),[a,n]=r(i);return t<a||t===a&&o<n})(p["wphl-version"],i)&&(S=e("welcome-upgrade",i,0)):S=e("welcome");const M={zh:"zh-hans","zh-hans":"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hant":"zh-hant","zh-tw":"zh-hant","zh-hk":"zh-hant","zh-mo":"zh-hant",ka:"ka"}[U]||"en",G=`${s}/${o}/i18n/${M}.json`,X=p["wphl-version"]===t;e=async()=>{X&&p["wphl-lang"]===M||(Object.assign(p,await $.ajax(G,{dataType:"json",cache:!0})),w.setObject("Wikiplus-highlight-i18n",p)),mw.messages.set(p)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const W=e=>0<e.length?mw.loader.using(e):Promise.resolve(),Y=e=>0<e.length?$.ajax(s+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0}):Promise.resolve(),Z=async(e,i)=>{var t=e.filter(e=>!e.includes("/")),o=e.filter(e=>e.includes("/"));return!0===i?(await W(t),Y(o)):!1===i?(await Y(o),W(t)):Promise.all([W(t),Y(o)])};let O;const ee=(e,i=!1)=>{const t=[];for(var{option:o,addon:a=o,download:n=Array.isArray(a)?o:a,only:r}of x)r&&i||o in e.optionHandlers||!ie(a,y)||t.push(m[n]);return t},ie=(e,i)=>Array.isArray(e)?e.some(e=>i.has(e)):i.has(e),te=e=>{let i=[];var t,o="function"==typeof window.CodeMirror,a=o?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{},helpers:{}};if(o||(i.push(c.lib),u||mw.loader.load(`${s}/${l}/lib/codemirror.min.css`,"text/css")),"mediawiki"!==(e="mediawiki"===e&&f.config&&f.config.tags.html?"html":e)&&"widget"!==e||a.modes.mediawiki||(mw.loader.load(`${s}/${P}/mediawiki.min.css`,"text/css"),i.push(P+"/mediawiki.min.js")),"widget"===e||"html"===e)for(const n of["css","javascript","mediawiki","htmlmixed","xml"])a.modes[n]||(i=i.concat(c[n]));else i=i.concat(c[e]);return a.prototype.getSearchCursor||!y.has("search")||y.has("wikiEditor")||i.push(m.searchcursor),!a.prototype.annotateScrollbar&&"mediawiki"===e&&y.has("lint")&&i.push(m.annotateScrollbar),a.commands.findForward||!y.has("search")||y.has("wikiEditor")||i.push(m.search),!window.wikiparse&&"mediawiki"===e&&y.has("lint")&&i.push(m.parser),!a.optionHandlers.lint&&"mediawiki"===e&&y.has("lint")&&(mw.loader.load(`${s}/${l}/addon/lint/lint.min.css`,"text/css"),i.push(m.lint)),a.helpers.lint&&a.helpers.lint.mediawiki||"mediawiki"!==e||!y.has("lint")||i.push(m.lintWikitext),y.has("wikiEditor")&&((t=mw.loader.getState("ext.wikiEditor"))?"ready"!==t&&i.push(m.wikiEditor):y.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&y.has("contextmenu")&&i.push(m.contextmenu),i.push(...ee(a)),Z(i,o?void 0:u)},oe=e=>{a[V]={config:e,time:Date.now()},w.setObject("InPageEditMwConfig",a)},E=e=>e.flatMap(({aliases:e,name:i})=>e.map(e=>({alias:e,name:i}))),_=e=>Object.fromEntries(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i])),ae=e=>{for(const i of["indicator","poem","ref","tabs","tab","poll"])e.tags[i]&&(e.tagModes[i]="text/mediawiki")},ne=async(e,i)=>{if("mediawiki"===e||"widget"===e){u&&b&&await i;let e=mw.config.get("extCodeMirrorConfig");if(e||b||!X||({config:e}=f,ae(e),mw.config.set("extCodeMirrorConfig",e)),e&&e.redirect&&e.img)return e;const{magicwords:a,extensiontags:n,functionhooks:r,variables:s}=(await(new mw.Api).get({meta:"siteinfo",siprop:e?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],l=new Set(["msg","raw","msgnw","subst","safesubst"]);if(e){const[d]=e["functionSynonyms"];var t,o;if(!d.subst)for({alias:t,name:o}of E(a.filter(({name:e})=>l.has(e))))d[t.replace(/:$/,"")]=o}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:Object.fromEntries(n.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const c=new Set([...r,...s,...l]),m=a.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||c.has(e)),g=E(m.filter(e=>e["case-sensitive"])),p=E(m.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[_(p.filter(({alias:e})=>/^__.+__$/.test(e))),_(g.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[_(p.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),_(g.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=a.find(({name:e})=>"redirect"===e).aliases,e.img=_(E(a.filter(({name:e})=>e.startsWith("img_")))),ae(e),mw.config.set("extCodeMirrorConfig",e),oe(e),e}},re={getContents(){return O.getValue()},setContents(e){return O.setValue(e),this},getSelection(){return O.getSelection()},setSelection(e){return O.setSelection(O.posFromIndex(e.start),"end"in e?O.posFromIndex(e.end):void 0),O.focus(),this},replaceSelection(e){return O.replaceSelection(e),this},getCaretPosition(e){var i=O.indexFromPos(O.getCursor("from")),t=O.indexFromPos(O.getCursor("to"));return e.startAndEnd?[i,t]:i},scrollToCaretPosition(){return O.scrollIntoView(),this}},se=async(e,i)=>{const n=i?"javascript":await(async()=>{if(D.endsWith("/doc"))return"mediawiki";if(274!==k&&828!==k)return B[N];const e=274===k?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(h("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()})(),t=te(n),[o]=await Promise.all([ne(n,t),t]);if(!i&&y.has("wikiEditor"))try{if("function"==typeof mw.addWikiEditor)mw.addWikiEditor(e);else{const{modules:{dialogs:{config:s}}}=$["wikiEditor"];e.wikiEditor("addModule",{...$.wikiEditor.modules.toolbar.config.getDefaultConfig(),...s.getDefaultConfig()}),s.replaceIcons(e)}}catch(e){y.delete("wikiEditor"),mw.notify("WikiEditor工具栏加载失败。",{type:"error"}),console.error(e)}"mediawiki"===n&&o.tags.html?(o.tagModes.html="htmlmixed",await te("html")):"widget"!==n||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});var a=e.height();O&&O.toTextArea();const r=i||"json"===N;if((O=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:n,mwConfig:o,json:r},Object.fromEntries(x.map(({option:e,addon:i=e,modes:t,complex:o=e=>!t||t.has(e)})=>{var a=Array.isArray(i)?i[0]:i;return[e,y.has(a)&&o(n,r)]})),"mediawiki"===n?{extraKeys:y.has("escape")&&(j(CodeMirror)?J:R)}:{indentUnit:y.has("indentWithSpace")?v:4,indentWithTabs:!y.has("indentWithSpace")}))).setSize(null,a),O.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",re),y.has("wikiEditor")){const l=e.data("wikiEditorContext"),d=CodeMirror["keyMap"],c=()=>{$.wikiEditor.modules.dialogs.api.openDialog(l,"search-and-replace")};O.addKeyMap(d.default===d.pcDefault?{"Ctrl-F":c}:{"Cmd-F":c})}if(C(O,n),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const m="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=w.getObject("Wikiplus_Settings");return i&&i[e]}},g=m.getSetting("esc_to_exit_quickedit"),p=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},u=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};O.addKeyMap($.extend(j(CodeMirror)?{"Ctrl-S":p,"Shift-Ctrl-S":u}:{"Cmd-S":p,"Shift-Cmd-S":u},!0===g||"true"===g?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}O.refresh(),mw.hook("wiki-codemirror").fire(O)},le=document["body"],de=new MutationObserver(e=>{const i=$(e.flatMap(({addedNodes:e})=>[...e])).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0<i.length&&se(i,"Wikiplus-Setting-Input"===i.attr("id"))}),ce=(de.observe(le,{childList:!0}),$(le).on("keydown.wphl",".ui-dialog",function(e){if("Escape"===e.key){const i=$(this).children(".ui-dialog-content").data("context");i&&i.$textarea&&"Wikiplus-Quickedit"===i.$textarea.attr("id")&&e.stopPropagation()}}),document.querySelector("#wphl-style")||mw.loader.addStyleTag("#Wikiplus-CodeMirror{border:1px solid #c8ccd1;line-height:1.3;clear:both;-moz-user-select:auto;-webkit-user-select:auto;user-select:auto}#Wikiplus-CodeMirror .CodeMirror-gutter-wrapper{-moz-user-select:none;-webkit-user-select:none;user-select:none}div.Wikiplus-InterBox{font-size:14px;z-index:100}.skin-minerva .Wikiplus-InterBox{font-size:16px}.cm-trailingspace{text-decoration:underline wavy red}div.CodeMirror span.CodeMirror-matchingbracket{box-shadow:0 0 0 2px #9aef98}div.CodeMirror span.CodeMirror-nonmatchingbracket{box-shadow:0 0 0 2px #eace64}#Wikiplus-highlight-dialog .oo-ui-messageDialog-title{margin-bottom:0.28571429em}#Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice{font-weight:normal;margin:0}.CodeMirror-contextmenu .cm-mw-template-name{cursor:pointer}.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}.skin-moeskin .oo-ui-windowManager-modal>.oo-ui-dialog{z-index:101}")),{get:me=e=>e.value,set:ge=(e,i)=>{e.value=i}}=(ce.id="wphl-style",$.valHooks.textarea||{}),pe=e=>"Wikiplus-Quickedit"===e.id||"Wikiplus-Setting-Input"===e.id;$.valHooks.textarea={get(e){return pe(e)&&O?O.getValue():me(e)},set(e,i){pe(e)&&O?O.setValue(i):ge(e,i)}},await t;let z,I,ue,we,he,T,ke,A;const fe=(e=[...y])=>{A.toggle(e.includes("indentWithSpace"))};const be=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions",moeskin:"ca-more-actions"}[d]||"p-cactions","#",h("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),z)I.setValue([...y]),T.setValue(v);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),z=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const t=new OO.ui.WindowManager,o=(t.$element.appendTo(le),t.addWindows([z]),I=new OO.ui.CheckboxMultiselectInputWidget({options:[...x.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:n("addon-"+t.toLowerCase())}}),...["wikiEditor","escape","contextmenu","lint","indentWithSpace","otherEditors"].map(e=>({data:e,label:n("addon-"+e.toLowerCase())}))],value:[...y]}).on("change",fe))["checkboxMultiselectWidget"];ue=o.findItemFromData("search"),we=o.findItemFromData("wikiEditor"),he=o.findItemFromData("lint"),T=new OO.ui.NumberInputWidget({min:0,value:v}),ke=new OO.ui.FieldLayout(I,{label:h("addon-label"),notices:[h("addon-notice")],align:"top"}),A=new OO.ui.FieldLayout(T,{label:h("addon-indent")}),fe(),Object.assign(mw.libs.wphl,{widget:I,indentWidget:T})}var i="object"==typeof window.Wikiplus||"object"==typeof window.Pages,i=(ue.setDisabled(!i),we.setDisabled(!i||!mw.loader.getState("ext.wikiEditor")),he.setDisabled(!i),await z.open({title:h("addon-title"),message:ke.$element.add(A.$element).add($("<p>",{html:h("feedback")})),actions:[{action:"reject",label:mw.msg("ooui-dialog-message-reject")},{action:"accept",label:mw.msg("ooui-dialog-message-accept"),flags:"progressive"}],size:"en"===M||"minerva"===d?"medium":"small"}).closing);if(ke.$element.detach(),A.$element.detach(),"object"==typeof i&&"accept"===i.action){i=I.getValue();y.clear();for(const a of i)y.add(a);v=Number(T.getValue()),w.setObject("Wikiplus-highlight-addons",i),w.setObject("Wikiplus-highlight-indent",v)}}),L=("minerva"===d&&be.find(".mw-ui-icon").addClass("mw-ui-icon-minerva-settings"),"function"==typeof S&&S().find("#wphl-settings-notify").click(e=>{e.preventDefault(),$("#wphl-settings").triggerHandler("click")}),async i=>{if(y.has("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=ee(CodeMirror,!0),o=i.getOption("json");await Z(t);for(const{option:n,addon:r=n,modes:s,complex:l=e=>!s||s.has(e)}of x.filter(({only:e})=>!e)){var a=Array.isArray(r)?r[0]:r;void 0===i.getOption(n)&&y.has(a)&&i.setOption(n,l(e,o))}"mediawiki"===e&&y.has("escape")?i.addKeyMap(j(CodeMirror)?J:R,!0):"mediawiki"!==e&&y.has("indentWithSpace")&&(i.setOption("indentUnit",v),i.setOption("indentWithTabs",!1)),C(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>L(e)),mw.hook("inspector").add(e=>L(e)),mw.hook("wiki-codemirror").add(e=>{e.getTextArea&&pe(e.getTextArea())||L(e)}),Object.assign(mw.libs.wphl,{version:i,options:x,addons:y,i18n:p,i18nLang:M,wphlStyle:ce,$portlet:be,USING_LOCAL:u,MODE_LIST:c,ADDON_LIST:m,msg:h,htmlMsg:n,escapeHTML:g,handleContextMenu:C,setI18N:e,getAddonScript:ee,updateCachedConfig:oe,getMwConfig:ne,renderEditor:se,handleOtherEditors:L,isPc:j})})();
|
|
7
|
+
(async()=>{"use strict";if(mw.libs.wphl&&mw.libs.wphl.version)return;mw.libs.wphl=mw.libs.wphl||{};const i="2.48.7",p="object"==typeof mw.storage&&"function"==typeof mw.storage.getObject?mw.storage:{getObject(e){var i=localStorage.getItem(e);if(!1===i)return!1;try{return JSON.parse(i)}catch(e){return null}},setObject(e,i){try{return localStorage.setItem(e,JSON.stringify(i))}catch(e){return!1}}},r=(Object.fromEntries=Object.fromEntries||(e=>{const i={};for(var[t,o]of e)i[t]=o;return i}),(e=i)=>e.split(".").map(Number));const u=(e,...i)=>mw.msg("wphl-"+e,...i),n=(...e)=>$($.parseHTML(u(...e)));var e=(...i)=>()=>{var e=$("<p>",{html:u(...i)});return mw.notify(e,{type:"success",autoHideSeconds:"long",tag:"wikiplus-highlight"}),e},t=r().slice(0,2).join(".");const s="//fastly.jsdelivr.net",l="npm/codemirror@5.65.3",P="gh/bhsd-harry/codemirror-mediawiki@1.1.6",o="npm/wikiplus-highlight@"+t,{wgPageName:D,wgNamespaceNumber:w,wgPageContentModel:N,wgServerName:U,wgScriptPath:H,wgUserLanguage:F,skin:d}=mw["config"]["values"],h=null!==mw.loader.getState("ext.CodeMirror"),a=p.getObject("InPageEditMwConfig")||{},V=""+U+H,k=a[V]||{},f=!(k.time>Date.now()-2592e6),B={css:"css","sanitized-css":"css",javascript:"javascript",json:"javascript",wikitext:"mediawiki"},c=h?{lib:"ext.CodeMirror.lib",css:"ext.CodeMirror.lib.mode.css",javascript:"ext.CodeMirror.lib.mode.javascript",lua:l+"/mode/lua/lua.min.js",mediawiki:f?"ext.CodeMirror.data":[],htmlmixed:"ext.CodeMirror.lib.mode.htmlmixed",xml:[]}:{lib:l+"/lib/codemirror.min.js",css:l+"/mode/css/css.min.js",javascript:l+"/mode/javascript/javascript.min.js",lua:l+"/mode/lua/lua.min.js",mediawiki:[],htmlmixed:l+"/mode/htmlmixed/htmlmixed.min.js",xml:l+"/mode/xml/xml.min.js"},m={searchcursor:l+"/addon/search/searchcursor.min.js",search:o+"/search.min.js",markSelection:l+"/addon/selection/mark-selection.min.js",activeLine:l+"/addon/selection/active-line.min.js",trailingspace:l+"/addon/edit/trailingspace.min.js",matchBrackets:l+"/addon/edit/matchbrackets.min.js",closeBrackets:l+"/addon/edit/closebrackets.min.js",matchTags:o+"/matchtags.min.js",fold:o+"/fold.min.js",wikiEditor:"ext.wikiEditor",contextmenu:"mediawiki.Title",lint:l+"/addon/lint/lint.min.js",annotateScrollbar:l+"/addon/scroll/annotatescrollbar.min.js",parser:"gh/bhsd-harry/wikiparser-node@0.7.4-b/extensions/editor.min.js",lintWikitext:o+"/lint.min.js"},b=[{option:"styleSelectedText",addon:"search",download:"markSelection",only:!0,complex:()=>!x.has("wikiEditor")},{option:"styleActiveLine",addon:"activeLine"},{option:"showTrailingSpace",addon:"trailingspace"},{option:"matchBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||{bracketRegex:/[{}[\]]/}},{option:"autoCloseBrackets",addon:"closeBrackets",complex:(e,i)=>"mediawiki"!==e&&!i||'()[]{}""'},{option:"matchTags",addon:["matchTags","fold"],modes:new Set(["mediawiki","widget"])},{option:"fold",modes:new Set(["mediawiki","widget"])}],x=new Set(p.getObject("Wikiplus-highlight-addons")||["search"]);let y=p.getObject("Wikiplus-highlight-indent")||4;const Q={'"':"quot","'":"apos","<":"lt",">":"gt","&":"amp"," ":"nbsp"},g=i=>e=>{e.replaceSelection(e.getSelection().split("\n").map(i).join("\n"),"around")},q=g(e=>[...e].map(e=>{if(e in Q)return`&${Q[e]};`;const i=e.codePointAt();return i<256?`&#${i};`:`&#x${i.toString(16)};`}).join("")),K=g(e=>{if(e.includes("%"))try{return decodeURIComponent(e)}catch(e){}return encodeURIComponent(e)}),R=g(i=>{try{return decodeURIComponent(i.replace(/\.([\da-f]{2})/gi,"%$1"))}catch(e){return i}}),v=({keyMap:e})=>e.default===e.pcDefault,J=e=>{var i=v(e)?"Ctrl":"Cmd";return{[i+"-/"]:q,[i+"-\\"]:K,[`Shift-${i}-\\`]:R}},j=(u,e)=>{if(("mediawiki"===e||"widget"===e)&&x.has("contextmenu")){const t=$(u.getWrapperElement()).addClass("CodeMirror-contextmenu"),[o]=(mw.config.get("extCodeMirrorConfig")||{functionSynonyms:[{invoke:"invoke","调用":"invoke",widget:"widget","小工具":"widget"}]})["functionSynonyms"];var i=i=>new Set(Object.keys(o).filter(e=>o[e]===i).map(e=>e.startsWith("#")?e:"#"+e));const w=i("invoke"),h=i("widget");t.contextmenu(({pageX:e,pageY:i})=>{const t=u.coordsChar({left:e,top:i}),{line:o,ch:a}=t,n=u.getTokenTypeAt(t);if(/\bmw-(?:template-name|parserfunction)\b/.test(n)){const c=u.getLineTokens(o);for(let e=c.length-1;0<e;e--){var{type:r,end:s,string:l}=c[e];c[e-1].type===r&&(c[e-1].end=s,c[e-1].string+=l,c.splice(e,1))}const m=c.findIndex(({start:e,end:i})=>e<a&&i>=a),g=c[m].string.replace(/\u200E/g,"").replace(/_/g," ").trim();if(/\bmw-template-name\b/.test(n)){const p=new mw.Title(g);return 0!==p.namespace||g.startsWith(":")?open(p.getUrl(),"_blank"):open(mw.util.getUrl("Template:"+g),"_blank"),!1}if(!(m<2)&&/\bmw-parserfunction-delimiter\b/.test(c[m-1].type)&&/\bmw-parserfunction-name\b/.test(c[m-2].type)){var d=c[m-2].string.trim().toLowerCase();if(w.has(d))open(mw.util.getUrl("Module:"+g),"_blank");else{if(!h.has(d))return;open(mw.util.getUrl("Widget:"+g,{action:"edit"}),"_blank")}return!1}}})}},C=p.getObject("Wikiplus-highlight-i18n")||{};let S;C["wphl-version"]?((e,i)=>{var[t,o]=r(e),[a,n]=r(i);return t<a||t===a&&o<n})(C["wphl-version"],i)&&(S=e("welcome-upgrade",i,0)):S=e("welcome");const M={zh:"zh-hans","zh-hans":"zh-hans","zh-cn":"zh-hans","zh-my":"zh-hans","zh-sg":"zh-hans","zh-hant":"zh-hant","zh-tw":"zh-hant","zh-hk":"zh-hant","zh-mo":"zh-hant",ka:"ka"}[F]||"en",G=`${s}/${o}/i18n/${M}.json`,X=C["wphl-version"]===t;e=async()=>{X&&C["wphl-lang"]===M||(Object.assign(C,await $.ajax(G,{dataType:"json",cache:!0})),p.setObject("Wikiplus-highlight-i18n",C)),mw.messages.set(C)},t=Promise.all([mw.loader.using("mediawiki.util"),e()]);const W=e=>0<e.length?mw.loader.using(e):Promise.resolve(),Y=e=>0<e.length?$.ajax(s+"/"+(1<e.length?"combine/":"")+e.join(),{dataType:"script",cache:!0}):Promise.resolve(),Z=async(e,i)=>{var t=e.filter(e=>!e.includes("/")),o=e.filter(e=>e.includes("/"));return!0===i?(await W(t),Y(o)):!1===i?(await Y(o),W(t)):Promise.all([W(t),Y(o)])};let O;const ee=(e,i=!1)=>{const t=[];for(var{option:o,addon:a=o,download:n=Array.isArray(a)?o:a,only:r}of b)r&&i||o in e.optionHandlers||!ie(a,x)||t.push(m[n]);return t},ie=(e,i)=>Array.isArray(e)?e.some(e=>i.has(e)):i.has(e),te=e=>{let i=[];var t,o="function"==typeof window.CodeMirror,a=o?window.CodeMirror:{modes:{},prototype:{},commands:{},optionHandlers:{},helpers:{}};if(o||(i.push(c.lib),h||mw.loader.load(`${s}/${l}/lib/codemirror.min.css`,"text/css")),"mediawiki"!==(e="mediawiki"===e&&k.config&&k.config.tags.html?"html":e)&&"widget"!==e||a.modes.mediawiki||(mw.loader.load(`${s}/${P}/mediawiki.min.css`,"text/css"),i.push(P+"/mediawiki.min.js")),"widget"===e||"html"===e)for(const n of["css","javascript","mediawiki","htmlmixed","xml"])a.modes[n]||(i=i.concat(c[n]));else i=i.concat(c[e]);return a.prototype.getSearchCursor||!x.has("search")||x.has("wikiEditor")||i.push(m.searchcursor),!a.prototype.annotateScrollbar&&"mediawiki"===e&&x.has("lint")&&i.push(m.annotateScrollbar),a.commands.find||!x.has("search")||x.has("wikiEditor")||i.push(m.search),!window.wikiparse&&"mediawiki"===e&&x.has("lint")&&i.push(m.parser),!a.optionHandlers.lint&&"mediawiki"===e&&x.has("lint")&&(mw.loader.load(`${s}/${l}/addon/lint/lint.min.css`,"text/css"),i.push(m.lint)),a.helpers.lint&&a.helpers.lint.mediawiki||"mediawiki"!==e||!x.has("lint")||i.push(m.lintWikitext),x.has("wikiEditor")&&((t=mw.loader.getState("ext.wikiEditor"))?"ready"!==t&&i.push(m.wikiEditor):x.delete("wikiEditor")),"ready"!==mw.loader.getState("mediawiki.Title")&&x.has("contextmenu")&&i.push(m.contextmenu),i.push(...ee(a)),Z(i,o?void 0:h)},oe=e=>{a[V]={config:e,time:Date.now()},p.setObject("InPageEditMwConfig",a)},E=e=>e.flatMap(({aliases:e,name:i})=>e.map(e=>({alias:e,name:i}))),_=e=>Object.fromEntries(e.map(({alias:e,name:i})=>[e.replace(/:$/,""),i])),ae=e=>{for(const i of["indicator","poem","ref","tabs","tab","poll"])e.tags[i]&&(e.tagModes[i]="text/mediawiki")},ne=async(e,i)=>{if("mediawiki"===e||"widget"===e){h&&f&&await i;let e=mw.config.get("extCodeMirrorConfig");if(e||f||!X||({config:e}=k,ae(e),mw.config.set("extCodeMirrorConfig",e)),e&&e.redirect&&e.img)return e;const{magicwords:a,extensiontags:n,functionhooks:r,variables:s}=(await(new mw.Api).get({meta:"siteinfo",siprop:e?"magicwords":"magicwords|extensiontags|functionhooks|variables",formatversion:2}))["query"],l=new Set(["msg","raw","msgnw","subst","safesubst"]);if(e){const[d]=e["functionSynonyms"];var t,o;if(!d.subst)for({alias:t,name:o}of E(a.filter(({name:e})=>l.has(e))))d[t.replace(/:$/,"")]=o}else{e={tagModes:{pre:"mw-tag-pre",nowiki:"mw-tag-nowiki",ref:"text/mediawiki"},tags:Object.fromEntries(n.map(e=>[e.slice(1,-1),!0])),urlProtocols:mw.config.get("wgUrlProtocols")};const c=new Set([...r,...s,...l]),m=a.filter(({name:e,aliases:i})=>i.some(e=>/^__.+__$/.test(e))||c.has(e)),g=E(m.filter(e=>e["case-sensitive"])),p=E(m.filter(e=>!e["case-sensitive"])).map(({alias:e,name:i})=>({alias:e.toLowerCase(),name:i}));e.doubleUnderscore=[_(p.filter(({alias:e})=>/^__.+__$/.test(e))),_(g.filter(({alias:e})=>/^__.+__$/.test(e)))],e.functionSynonyms=[_(p.filter(({alias:e})=>!/^__.+__|^#$/.test(e))),_(g.filter(({alias:e})=>!/^__.+__|^#$/.test(e)))]}return e.redirect=a.find(({name:e})=>"redirect"===e).aliases,e.img=_(E(a.filter(({name:e})=>e.startsWith("img_")))),ae(e),mw.config.set("extCodeMirrorConfig",e),oe(e),e}},re={getContents(){return O.getValue()},setContents(e){return O.setValue(e),this},getSelection(){return O.getSelection()},setSelection(e){return O.setSelection(O.posFromIndex(e.start),"end"in e?O.posFromIndex(e.end):void 0),O.focus(),this},replaceSelection(e){return O.replaceSelection(e),this},getCaretPosition(e){var i=O.indexFromPos(O.getCursor("from")),t=O.indexFromPos(O.getCursor("to"));return e.startAndEnd?[i,t]:i},scrollToCaretPosition(){return O.scrollIntoView(),this}},se=async(e,i)=>{const n=i?"javascript":await(async()=>{if(D.endsWith("/doc"))return"mediawiki";if(274!==w&&828!==w)return B[N];const e=274===w?"Widget":"Lua";return await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),await OO.ui.confirm(u("contentmodel"),{actions:[{label:e},{label:"Wikitext",action:"accept"}]})?"mediawiki":e.toLowerCase()})(),t=te(n),[o]=await Promise.all([ne(n,t),t]);if(!i&&x.has("wikiEditor"))try{if("function"==typeof mw.addWikiEditor)mw.addWikiEditor(e);else{const{dialogs:{config:s}}=$["wikiEditor"]["modules"];e.wikiEditor("addModule",{...$.wikiEditor.modules.toolbar.config.getDefaultConfig(),...s.getDefaultConfig()}),s.replaceIcons(e)}}catch(e){x.delete("wikiEditor"),mw.notify("WikiEditor工具栏加载失败。",{type:"error"}),console.error(e)}"mediawiki"===n&&o.tags.html?(o.tagModes.html="htmlmixed",await te("html")):"widget"!==n||CodeMirror.mimeModes.widget||CodeMirror.defineMIME("widget",{name:"htmlmixed",tags:{noinclude:[[null,null,"mediawiki"]]}});var a=e.height();O&&O.toTextArea();const r=i||"json"===N;(O=CodeMirror.fromTextArea(e[0],$.extend({inputStyle:"contenteditable",lineNumbers:!/Android\b/.test(navigator.userAgent),lineWrapping:!0,mode:n,mwConfig:o,json:r},Object.fromEntries(b.map(({option:e,addon:i=e,modes:t,complex:o=e=>!t||t.has(e)})=>{var a=Array.isArray(i)?i[0]:i;return[e,x.has(a)&&o(n,r)]})),"mediawiki"===n?{extraKeys:x.has("escape")&&J(CodeMirror)}:{indentUnit:x.has("indentWithSpace")?y:4,indentWithTabs:!x.has("indentWithSpace")}))).setSize(null,a),O.getWrapperElement().id="Wikiplus-CodeMirror",$.fn.textSelection&&e.textSelection("register",re);a=v(CodeMirror)?"Ctrl":"Cmd";if(x.has("wikiEditor")){const l=e.data("wikiEditorContext");O.addKeyMap({[a+"-F"](){$.wikiEditor.modules.dialogs.api.openDialog(l,"search-and-replace")}})}if(j(O,n),$("#Wikiplus-Quickedit-Jump").children("a").attr("href","#Wikiplus-CodeMirror"),!i){const d="object"==typeof window.Wikiplus?window.Wikiplus:{getSetting(e){var i=p.getObject("Wikiplus_Settings");return i&&i[e]}},c=d.getSetting("esc_to_exit_quickedit"),m=()=>{$("#Wikiplus-Quickedit-Submit").triggerHandler("click")},g=()=>{$("#Wikiplus-Quickedit-MinorEdit").click(),$("#Wikiplus-Quickedit-Submit").triggerHandler("click")};O.addKeyMap($.extend({[a+"-S"]:m,[`Shift-${a}-S`]:g},!0===c||"true"===c?{Esc(){$("#Wikiplus-Quickedit-Back").triggerHandler("click")}}:{}))}O.refresh(),mw.hook("wiki-codemirror").fire(O)},le=document["body"],de=new MutationObserver(e=>{const i=$(e.flatMap(({addedNodes:e})=>[...e])).find("#Wikiplus-Quickedit, #Wikiplus-Setting-Input");0<i.length&&se(i,"Wikiplus-Setting-Input"===i.attr("id"))}),ce=(de.observe(le,{childList:!0}),$(le).on("keydown.wphl",".ui-dialog",function(e){if("Escape"===e.key){const i=$(this).children(".ui-dialog-content").data("context");i&&i.$textarea&&"Wikiplus-Quickedit"===i.$textarea.attr("id")&&e.stopPropagation()}}),document.querySelector("#wphl-style")||mw.loader.addStyleTag("#Wikiplus-CodeMirror{border:1px solid #c8ccd1;line-height:1.3;clear:both;-moz-user-select:auto;-webkit-user-select:auto;user-select:auto}#Wikiplus-CodeMirror .CodeMirror-gutter-wrapper{-moz-user-select:none;-webkit-user-select:none;user-select:none}div.Wikiplus-InterBox{font-size:14px;z-index:100}.skin-minerva .Wikiplus-InterBox{font-size:16px}.cm-trailingspace{text-decoration:underline wavy red}div.CodeMirror span.CodeMirror-matchingbracket{box-shadow:0 0 0 2px #9aef98}div.CodeMirror span.CodeMirror-nonmatchingbracket{box-shadow:0 0 0 2px #eace64}#Wikiplus-highlight-dialog .oo-ui-messageDialog-title{margin-bottom:0.28571429em}#Wikiplus-highlight-dialog .oo-ui-flaggedElement-notice{font-weight:normal;margin:0}.CodeMirror-contextmenu .cm-mw-template-name{cursor:pointer}.skin-moeskin #ca-more-actions li>a{display:inline-block;padding:0.4rem 0.8rem;line-height:1.5}.skin-moeskin .oo-ui-windowManager-modal>.oo-ui-dialog{z-index:101}")),{get:me=e=>e.value,set:ge=(e,i)=>{e.value=i}}=(ce.id="wphl-style",$.valHooks.textarea||{}),pe=e=>"Wikiplus-Quickedit"===e.id||"Wikiplus-Setting-Input"===e.id;$.valHooks.textarea={get(e){return pe(e)&&O?O.getValue():me(e)},set(e,i){pe(e)&&O?O.setValue(i):ge(e,i)}},await t;let z,I,ue,we,he,T,ke,A;const fe=(e=[...x])=>{A.toggle(e.includes("indentWithSpace"))};const be=$(mw.util.addPortletLink({minerva:"page-actions-overflow",citizen:"p-actions",moeskin:"ca-more-actions"}[d]||"p-cactions","#",u("portlet"),"wphl-settings")).click(async e=>{if(e.preventDefault(),z)I.setValue([...x]),T.setValue(y);else{await mw.loader.using(["oojs-ui-windows","oojs-ui.styles.icons-content"]),z=new OO.ui.MessageDialog({id:"Wikiplus-highlight-dialog"});const t=new OO.ui.WindowManager,o=(t.$element.appendTo(le),t.addWindows([z]),I=new OO.ui.CheckboxMultiselectInputWidget({options:[...b.map(({option:e,addon:i=e})=>{const t=Array.isArray(i)?i[0]:i;return{data:t,label:n("addon-"+t.toLowerCase())}}),...["wikiEditor","escape","contextmenu","lint","indentWithSpace","otherEditors"].map(e=>({data:e,label:n("addon-"+e.toLowerCase())}))],value:[...x]}).on("change",fe))["checkboxMultiselectWidget"];ue=o.findItemFromData("search"),we=o.findItemFromData("wikiEditor"),he=o.findItemFromData("lint"),T=new OO.ui.NumberInputWidget({min:0,value:y}),ke=new OO.ui.FieldLayout(I,{label:u("addon-label"),notices:[u("addon-notice")],align:"top"}),A=new OO.ui.FieldLayout(T,{label:u("addon-indent")}),fe(),Object.assign(mw.libs.wphl,{widget:I,indentWidget:T})}var i="object"==typeof window.Wikiplus||"object"==typeof window.Pages,i=(ue.setDisabled(!i),we.setDisabled(!i||!mw.loader.getState("ext.wikiEditor")),he.setDisabled(!i),await z.open({title:u("addon-title"),message:ke.$element.add(A.$element).add($("<p>",{html:u("feedback")})),actions:[{action:"reject",label:mw.msg("ooui-dialog-message-reject")},{action:"accept",label:mw.msg("ooui-dialog-message-accept"),flags:"progressive"}],size:"en"===M||"minerva"===d?"medium":"small"}).closing);if(ke.$element.detach(),A.$element.detach(),"object"==typeof i&&"accept"===i.action){i=I.getValue();x.clear();for(const a of i)x.add(a);y=Number(T.getValue()),p.setObject("Wikiplus-highlight-addons",i),p.setObject("Wikiplus-highlight-indent",y)}}),L=("minerva"===d&&be.find(".mw-ui-icon").addClass("mw-ui-icon-minerva-settings"),"function"==typeof S&&S().find("#wphl-settings-notify").click(e=>{e.preventDefault(),$("#wphl-settings").triggerHandler("click")}),async i=>{if(x.has("otherEditors")){let e=i.getOption("mode");e="text/mediawiki"===e?"mediawiki":e;var t=ee(CodeMirror,!0),o=i.getOption("json");await Z(t);for(const{option:n,addon:r=n,modes:s,complex:l=e=>!s||s.has(e)}of b.filter(({only:e})=>!e)){var a=Array.isArray(r)?r[0]:r;void 0===i.getOption(n)&&x.has(a)&&i.setOption(n,l(e,o))}"mediawiki"===e&&x.has("escape")?i.addKeyMap(J(CodeMirror),!0):"mediawiki"!==e&&x.has("indentWithSpace")&&(i.setOption("indentUnit",y),i.setOption("indentWithTabs",!1)),j(i,e)}});mw.hook("InPageEdit.quickEdit.codemirror").add(({cm:e})=>L(e)),mw.hook("inspector").add(e=>L(e)),mw.hook("wiki-codemirror").add(e=>{e.getTextArea&&pe(e.getTextArea())||L(e)}),Object.assign(mw.libs.wphl,{version:i,options:b,addons:x,i18n:C,i18nLang:M,wphlStyle:ce,$portlet:be,USING_LOCAL:h,MODE_LIST:c,ADDON_LIST:m,msg:u,htmlMsg:n,escapeHTML:q,handleContextMenu:j,setI18N:e,getAddonScript:ee,updateCachedConfig:oe,getMwConfig:ne,renderEditor:se,handleOtherEditors:L,isPc:v})})();
|
|
8
8
|
//# sourceMappingURL=main.min.js.map
|
package/dist/main.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"../","sources":["main.js"],"names":["mw","libs","wphl","version","storage","getObject","key","json","localStorage","getItem","JSON","parse","e","setObject","value","setItem","stringify","getVersion","Object","fromEntries","entries","obj","str","split","map","Number","msg","args","htmlMsg","$","parseHTML","notify","$p","html","type","autoHideSeconds","tag","majorVersion","slice","join","CDN","CM_CDN","MW_CDN","REPO_CDN","wgPageName","page","wgNamespaceNumber","ns","wgPageContentModel","contentmodel","wgServerName","server","wgScriptPath","scriptPath","wgUserLanguage","userLang","skin","config","values","USING_LOCAL","loader","getState","ALL_SETTINGS_CACHE","SITE_ID","SITE_SETTINGS","EXPIRED","time","Date","now","CONTENTMODEL","css","sanitized-css","javascript","wikitext","MODE_LIST","lib","lua","mediawiki","htmlmixed","xml","ADDON_LIST","searchcursor","search","markSelection","activeLine","trailingspace","matchBrackets","closeBrackets","matchTags","fold","wikiEditor","contextmenu","lint","annotateScrollbar","parser","lintWikitext","options","option","addon","download","only","complex","addons","has","mode","bracketRegex","modes","Set","let","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","codePointAt","toString","escapeURI","includes","decodeURIComponent","encodeURIComponent","isPc","keyMap","default","pcDefault","extraKeysPc","Ctrl-/","Ctrl-\\","extraKeysMac","Cmd-/","Cmd-\\","handleContextMenu","$wrapper","getWrapperElement","addClass","synonyms","get","functionSynonyms","invoke","调用","widget","小工具","getSysnonyms","keys","filter","startsWith","pageX","pageY","pos","coordsChar","left","top","line","ch","curType","getTokenTypeAt","test","tokens","getLineTokens","i","length","end","string","splice","index","findIndex","start","text","replace","trim","title","Title","namespace","open","getUrl","util","parserFunction","toLowerCase","action","i18n","welcome","a","b","a0","a1","b0","b1","cmpVersion","i18nLang","zh","zh-hans","zh-cn","zh-my","zh-sg","zh-hant","zh-tw","zh-hk","zh-mo","ka","I18N_CDN","isLatest","setI18N","async","assign","ajax","dataType","cache","messages","set","i18nPromise","Promise","all","using","getInternalScript","exts","resolve","getExternalScript","urls","getScript","local","internal","url","external","cm","getAddonScript","CM","other","addonScript","Array","isArray","optionHandlers","intersect","push","arr","some","ele","initMode","scripts","state","loaded","window","CodeMirror","prototype","commands","helpers","load","tags","lang","concat","getSearchCursor","findForward","wikiparse","delete","undefined","updateCachedConfig","getAliases","words","flatMap","aliases","name","alias","getConfig","setPlainMode","tagModes","getMwConfig","initModePromise","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","insensitive","subst","pre","nowiki","ref","urlProtocols","realMagicwords","allMagicwords","sensitive","word","doubleUnderscore","find","cmTextSelection","getContents","getValue","setContents","content","setValue","this","setSelection","posFromIndex","focus","getCaretPosition","caretPos","indexFromPos","getCursor","endPos","startAndEnd","scrollToCaretPosition","scrollIntoView","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","addWikiEditor","modules","dialogs","toolbar","getDefaultConfig","replaceIcons","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","extraKeys","indentUnit","indentWithTabs","setSize","id","fn","textSelection","context","data","callback","api","openDialog","addKeyMap","Ctrl-F","Cmd-F","children","attr","Wikiplus","getSetting","settings","escToExitQuickEdit","submit","triggerHandler","submitMinor","click","Ctrl-S","Shift-Ctrl-S","Cmd-S","Shift-Cmd-S","Esc","refresh","hook","fire","body","document","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","childList","on","$textarea","stopPropagation","querySelector","addStyleTag","elem","valHooks","textarea","isWikiplus","dialog","searchWidget","wikiEditorWidget","lintWidget","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","moeskin","preventDefault","MessageDialog","windowManager","WindowManager","checkboxMultiselectWidget","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","findItemFromData","NumberInputWidget","min","FieldLayout","notices","align","wikiplusLoaded","Pages","setDisabled","message","add","flags","size","closing","detach","clear","handleOtherEditors","getOption","setOption","getTextArea"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sourceRoot":"../","sources":["main.js"],"names":["mw","libs","wphl","version","storage","getObject","key","json","localStorage","getItem","JSON","parse","e","setObject","value","setItem","stringify","getVersion","Object","fromEntries","entries","obj","str","split","map","Number","msg","args","htmlMsg","$","parseHTML","notify","$p","html","type","autoHideSeconds","tag","majorVersion","slice","join","CDN","CM_CDN","MW_CDN","REPO_CDN","wgPageName","page","wgNamespaceNumber","ns","wgPageContentModel","contentmodel","wgServerName","server","wgScriptPath","scriptPath","wgUserLanguage","userLang","skin","config","values","USING_LOCAL","loader","getState","ALL_SETTINGS_CACHE","SITE_ID","SITE_SETTINGS","EXPIRED","time","Date","now","CONTENTMODEL","css","sanitized-css","javascript","wikitext","MODE_LIST","lib","lua","mediawiki","htmlmixed","xml","ADDON_LIST","searchcursor","search","markSelection","activeLine","trailingspace","matchBrackets","closeBrackets","matchTags","fold","wikiEditor","contextmenu","lint","annotateScrollbar","parser","lintWikitext","options","option","addon","download","only","complex","addons","has","mode","bracketRegex","modes","Set","let","indent","entity","\"","'","<",">","&"," ","convert","func","doc","replaceSelection","getSelection","escapeHTML","c","code","codePointAt","toString","escapeURI","includes","decodeURIComponent","encodeURIComponent","escapeHash","replace","isPc","keyMap","default","pcDefault","extraKeys","CM","ctrl","handleContextMenu","$wrapper","getWrapperElement","addClass","synonyms","get","functionSynonyms","invoke","调用","widget","小工具","getSysnonyms","keys","filter","startsWith","pageX","pageY","pos","coordsChar","left","top","line","ch","curType","getTokenTypeAt","test","tokens","getLineTokens","i","length","end","string","splice","index","findIndex","start","text","trim","title","Title","namespace","open","getUrl","util","parserFunction","toLowerCase","action","i18n","welcome","a","b","a0","a1","b0","b1","cmpVersion","i18nLang","zh","zh-hans","zh-cn","zh-my","zh-sg","zh-hant","zh-tw","zh-hk","zh-mo","ka","I18N_CDN","isLatest","setI18N","async","assign","ajax","dataType","cache","messages","set","i18nPromise","Promise","all","using","getInternalScript","exts","resolve","getExternalScript","urls","getScript","local","internal","url","external","cm","getAddonScript","other","addonScript","Array","isArray","optionHandlers","intersect","push","arr","some","ele","initMode","scripts","state","loaded","window","CodeMirror","prototype","commands","helpers","load","tags","lang","concat","getSearchCursor","find","wikiparse","delete","undefined","updateCachedConfig","getAliases","words","flatMap","aliases","name","alias","getConfig","setPlainMode","tagModes","getMwConfig","initModePromise","redirect","img","magicwords","extensiontags","functionhooks","variables","Api","meta","siprop","formatversion","query","otherMagicwords","insensitive","subst","pre","nowiki","ref","urlProtocols","realMagicwords","allMagicwords","sensitive","word","doubleUnderscore","cmTextSelection","getContents","getValue","setContents","content","setValue","this","setSelection","posFromIndex","focus","getCaretPosition","caretPos","indexFromPos","getCursor","endPos","startAndEnd","scrollToCaretPosition","scrollIntoView","renderEditor","$target","setting","endsWith","pageMode","OO","ui","confirm","actions","label","getPageMode","mwConfig","addWikiEditor","dialogs","modules","toolbar","getDefaultConfig","replaceIcons","console","error","mimeModes","defineMIME","noinclude","height","toTextArea","fromTextArea","extend","inputStyle","lineNumbers","navigator","userAgent","lineWrapping","mod","mainAddon","indentUnit","indentWithTabs","setSize","id","fn","textSelection","context","data","addKeyMap","api","openDialog","children","attr","Wikiplus","getSetting","settings","escToExitQuickEdit","submit","triggerHandler","submitMinor","click","Esc","refresh","hook","fire","body","document","observer","MutationObserver","records","$editArea","addedNodes","wphlStyle","observe","childList","on","$textarea","stopPropagation","querySelector","addStyleTag","elem","valHooks","textarea","isWikiplus","dialog","searchWidget","wikiEditorWidget","lintWidget","indentWidget","field","indentField","toggleIndent","toggle","$portlet","addPortletLink","minerva","citizen","moeskin","preventDefault","MessageDialog","windowManager","WindowManager","checkboxMultiselectWidget","$element","appendTo","addWindows","CheckboxMultiselectInputWidget","findItemFromData","NumberInputWidget","min","FieldLayout","notices","align","wikiplusLoaded","Pages","setDisabled","message","add","flags","size","closing","detach","clear","handleOtherEditors","getOption","setOption","getTextArea"],"mappings":"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"}
|
package/i18n/en.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wphl-version": "2.
|
|
2
|
+
"wphl-version": "2.48.7",
|
|
3
3
|
"wphl-lang": "en",
|
|
4
4
|
"wphl-addon-search": "<span title=\"Search with a string or a regular expression\">Search</span>",
|
|
5
5
|
"wphl-addon-activeline": "Show the active line",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"wphl-addon-matchtags": "Highlight matching/nonmatching tags",
|
|
10
10
|
"wphl-addon-fold": "Fold template arguments and tags' innerHTML",
|
|
11
11
|
"wphl-addon-wikieditor": "Add WikiEditor toolbar",
|
|
12
|
-
"wphl-addon-escape": "<span title=\"Ctrl/Cmd + / : HTML encoding\nCtrl/Cmd + \\ : URL encoding\">Keyboard shortcuts for HTML/URL encoding</span>",
|
|
12
|
+
"wphl-addon-escape": "<span title=\"Ctrl/Cmd + / : HTML encoding\nCtrl/Cmd + \\ : URL decoding or encoding\">Keyboard shortcuts for HTML/URL encoding</span>",
|
|
13
13
|
"wphl-addon-contextmenu": "Open the template or module page when right clicking",
|
|
14
14
|
"wphl-addon-indentwithspace": "Indent JavaScript/CSS/Lua codes with spaces instead of tabs",
|
|
15
15
|
"wphl-addon-indent": "Indent",
|
package/i18n/ka.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wphl-version": "2.
|
|
2
|
+
"wphl-version": "2.48.7",
|
|
3
3
|
"wphl-lang": "ka",
|
|
4
4
|
"wphl-addon-search": "<span title=\"ძებნა ნიშნების მწკრივით ან რეგულარული გაფართოებით\">ძებნა</span>",
|
|
5
5
|
"wphl-addon-activeline": "აქტიური ხაზის მონიშვნა",
|
|
@@ -14,10 +14,14 @@
|
|
|
14
14
|
"wphl-addon-indentwithspace": "JavaScript/CSS/Lua-ის კოდებში ტაბულაციის ნაცვლად შორისებით შეწევა",
|
|
15
15
|
"wphl-addon-indent": "შეწევა",
|
|
16
16
|
"wphl-addon-othereditors": "არჩეული დანამატების გამოყენება სხვა მომხმარებლებისთვისაც",
|
|
17
|
+
"wphl-addon-lint": "Wikitext linter (Switch on/off by <code>Ctrl/Cmd + L</code>)",
|
|
17
18
|
"wphl-addon-label": "აირჩიეთ ის დანამატები, რომელთა გამოყენებაც გსურთ",
|
|
18
19
|
"wphl-addon-notice": "ცვლილებები აისახება Wikiplus-ის ახალი დიალოგის გახსნისას.",
|
|
19
20
|
"wphl-addon-title": "Wikiplus-ის განათების დანამატები",
|
|
20
21
|
"wphl-search-placeholder": "ძებნა ნიშნების მწკრივის ან რეგულარული გაფართოების ნიმუშის გამოყენებით",
|
|
22
|
+
"wphl-replace-placeholder": "string used in replaceAll",
|
|
23
|
+
"wphl-search-replace": "replaceAll",
|
|
24
|
+
"wphl-replace-count": "The pattern occurs $1 time(s). Do you want to replace them all?",
|
|
21
25
|
"wphl-unfold": "აქ დააწკაპუნეთ, რათა $1 გაიშალოს",
|
|
22
26
|
"wphl-fold": "აქ დააწკაპუნეთ, რათა $1 შეიკეცოს",
|
|
23
27
|
"wphl-fold-template": "თარგის არგუმენტები",
|
package/i18n/zh-hans.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wphl-version": "2.
|
|
2
|
+
"wphl-version": "2.48.7",
|
|
3
3
|
"wphl-lang": "zh-hans",
|
|
4
4
|
"wphl-addon-search": "<span title=\"搜索字符串或正则表达式\">搜索</span>",
|
|
5
5
|
"wphl-addon-activeline": "高亮显示光标所在行",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"wphl-addon-matchtags": "高亮显示匹配和未匹配的标签",
|
|
10
10
|
"wphl-addon-fold": "折叠模板参数和标签内部文本",
|
|
11
11
|
"wphl-addon-wikieditor": "添加WikiEditor工具条",
|
|
12
|
-
"wphl-addon-escape": "<span title=\"Ctrl/Cmd + / : HTML编码\nCtrl/Cmd + \\ : URL
|
|
12
|
+
"wphl-addon-escape": "<span title=\"Ctrl/Cmd + / : HTML编码\nCtrl/Cmd + \\ : URL解码或编码\">添加HTML和URL编码快捷键</span>",
|
|
13
13
|
"wphl-addon-contextmenu": "右键点击可打开模板或模块页面",
|
|
14
14
|
"wphl-addon-indentwithspace": "代码缩进使用空格而非Tab",
|
|
15
15
|
"wphl-addon-indent": "缩进",
|
package/i18n/zh-hant.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"wphl-version": "2.
|
|
2
|
+
"wphl-version": "2.48.7",
|
|
3
3
|
"wphl-lang": "zh-hant",
|
|
4
4
|
"wphl-addon-search": "<span title=\"搜尋字串或正規表示式\">搜尋</span>",
|
|
5
5
|
"wphl-addon-activeline": "突出顯示游標所在行",
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"wphl-addon-matchtags": "突出顯示匹配和未匹配的標籤",
|
|
10
10
|
"wphl-addon-fold": "摺疊模板參數和標籤內部文字",
|
|
11
11
|
"wphl-addon-wikieditor": "添加WikiEditor工具條",
|
|
12
|
-
"wphl-addon-escape": "<span title=\"Ctrl/Cmd + / : HTML編碼\nCtrl/Cmd + \\ : URL
|
|
12
|
+
"wphl-addon-escape": "<span title=\"Ctrl/Cmd + / : HTML編碼\nCtrl/Cmd + \\ : URL解碼或編碼\">添加HTML和URL編碼快速鍵</span>",
|
|
13
13
|
"wphl-addon-contextmenu": "右鍵點擊可打開模板或模組頁面",
|
|
14
14
|
"wphl-addon-indentwithspace": "代碼縮排使用空格而非Tab",
|
|
15
15
|
"wphl-addon-indent": "縮排",
|
|
@@ -19,6 +19,9 @@
|
|
|
19
19
|
"wphl-addon-notice": "更改將於打開新的Wikiplus編輯區時生效。",
|
|
20
20
|
"wphl-addon-title": "Wikiplus突顯外掛程式",
|
|
21
21
|
"wphl-search-placeholder": "使用字串或正規表示式搜尋",
|
|
22
|
+
"wphl-replace-placeholder": "用於全文替換的字符串",
|
|
23
|
+
"wphl-search-replace": "全文替換",
|
|
24
|
+
"wphl-replace-count": "全文共有 $1 處待替換,確認替換嗎?",
|
|
22
25
|
"wphl-unfold": "點擊以展開$1",
|
|
23
26
|
"wphl-fold": "點擊以摺疊$1",
|
|
24
27
|
"wphl-fold-template": "模板參數",
|
package/lint.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
/**
|
|
14
14
|
* annotationSource
|
|
15
15
|
* @param {string} str wikitext
|
|
16
|
-
* @param {CodeMirror.Editor} cm
|
|
16
|
+
* @param {CodeMirror.Editor} cm
|
|
17
17
|
* @returns {Promise<CodeMirror.LintAnnotation>}
|
|
18
18
|
*/
|
|
19
19
|
const annotate = async (str, _, cm) => {
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
};
|
|
32
32
|
|
|
33
33
|
mw.loader.addStyleTag(
|
|
34
|
-
'.CodeMirror-line .CodeMirror-lint-mark-warning{background:#ffbf00;color:#fff}'
|
|
34
|
+
'.CodeMirror-line .CodeMirror-lint-mark-warning{background:#ffbf00;color:#fff;caret-color:#000}'
|
|
35
35
|
+ '.CodeMirror-line .CodeMirror-lint-mark-error{background:#d33;color:#fff}'
|
|
36
36
|
+ '.CodeMirror-lint-scroll-warn{'
|
|
37
37
|
+ 'background:#fc3;border-top:1px solid #fc3;border-bottom:1px solid #fc3;box-sizing:border-box'
|
|
@@ -113,7 +113,8 @@
|
|
|
113
113
|
}).click(() => {
|
|
114
114
|
nextMark(warnings);
|
|
115
115
|
}),
|
|
116
|
-
$panelElement = $('<div>', {id: 'wphl-lint-panel', html: [$panelError, $panelWarn]})
|
|
116
|
+
$panelElement = $('<div>', {id: 'wphl-lint-panel', html: [$panelError, $panelWarn]}),
|
|
117
|
+
$lineDiv = $(cm.display.lineDiv);
|
|
117
118
|
|
|
118
119
|
/**
|
|
119
120
|
* update linting
|
|
@@ -130,30 +131,42 @@
|
|
|
130
131
|
performLint = () => {
|
|
131
132
|
cm.performLint();
|
|
132
133
|
},
|
|
134
|
+
onInput = () => {
|
|
135
|
+
clearTimeout(cm.state.lint.timeout);
|
|
136
|
+
},
|
|
133
137
|
switchOption = () => {
|
|
134
138
|
if (cm.state.lint) {
|
|
135
139
|
cm.setOption('lint', false);
|
|
140
|
+
$lineDiv.off('input', onInput);
|
|
136
141
|
annotateScrollWarn.update([]);
|
|
137
142
|
annotateScrollError.update([]);
|
|
138
143
|
$panelElement.detach();
|
|
139
144
|
} else {
|
|
140
|
-
cm.setOption('lint', {
|
|
145
|
+
cm.setOption('lint', {
|
|
146
|
+
delay: 1000, ...mw.libs.wphl.lintOptions, selfContain: true, onUpdateLinting,
|
|
147
|
+
});
|
|
148
|
+
$lineDiv.on('input', onInput);
|
|
141
149
|
$panelElement.insertAfter(cm.getWrapperElement());
|
|
142
150
|
}
|
|
143
151
|
};
|
|
144
152
|
cm.setOption('gutters', ['CodeMirror-lint-markers']);
|
|
145
153
|
switchOption();
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
: {'Cmd-K': performLint, 'Cmd-L': switchOption});
|
|
154
|
+
const ctrl = mw.libs.wphl.isPc(CodeMirror) ? 'Ctrl' : 'Cmd';
|
|
155
|
+
cm.addKeyMap({[`${ctrl}-K`]: performLint, [`${ctrl}-L`]: switchOption});
|
|
149
156
|
cm.on('cursorActivity', () => {
|
|
150
157
|
positionMap.clear();
|
|
151
158
|
});
|
|
152
159
|
};
|
|
153
160
|
|
|
154
|
-
|
|
161
|
+
/**
|
|
162
|
+
* 分离hook函数以便调试
|
|
163
|
+
* @param {CodeMirror.Editor} cm
|
|
164
|
+
*/
|
|
165
|
+
const hook = cm => {
|
|
155
166
|
if (mw.libs.wphl.addons.has('lint') && cm.getTextArea && cm.getTextArea().id === 'Wikiplus-Quickedit') {
|
|
156
167
|
lint(cm);
|
|
157
168
|
}
|
|
158
|
-
}
|
|
169
|
+
};
|
|
170
|
+
mw.hook('wiki-codemirror').add(hook);
|
|
171
|
+
mw.libs.wphl.lintHook = hook;
|
|
159
172
|
})();
|
package/main.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
(async () => {
|
|
9
|
+
/* eslint es-x/no-regexp-u-flag: 2 */
|
|
9
10
|
/* eslint-disable require-unicode-regexp */
|
|
10
11
|
'use strict';
|
|
11
12
|
|
|
@@ -14,7 +15,7 @@
|
|
|
14
15
|
}
|
|
15
16
|
mw.libs.wphl = mw.libs.wphl || {}; // 开始加载
|
|
16
17
|
|
|
17
|
-
const version = '2.
|
|
18
|
+
const version = '2.48.7',
|
|
18
19
|
newAddon = 0;
|
|
19
20
|
|
|
20
21
|
/** @type {typeof mw.storage} */
|
|
@@ -99,7 +100,7 @@
|
|
|
99
100
|
const CDN = '//fastly.jsdelivr.net',
|
|
100
101
|
CM_CDN = 'npm/codemirror@5.65.3',
|
|
101
102
|
MW_CDN = 'gh/bhsd-harry/codemirror-mediawiki@1.1.6',
|
|
102
|
-
PARSER_CDN = 'gh/bhsd-harry/wikiparser-node@0.
|
|
103
|
+
PARSER_CDN = 'gh/bhsd-harry/wikiparser-node@0.7.4-b',
|
|
103
104
|
REPO_CDN = `npm/wikiplus-highlight@${majorVersion}`;
|
|
104
105
|
|
|
105
106
|
const {config: {values: {
|
|
@@ -219,9 +220,18 @@
|
|
|
219
220
|
}
|
|
220
221
|
return encodeURIComponent(str);
|
|
221
222
|
}),
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
223
|
+
escapeHash = convert(str => {
|
|
224
|
+
try {
|
|
225
|
+
return decodeURIComponent(str.replace(/\.([\da-f]{2})/gi, '%$1'));
|
|
226
|
+
} catch (e) {
|
|
227
|
+
return str;
|
|
228
|
+
}
|
|
229
|
+
}),
|
|
230
|
+
/** @type {(cm: typeof CodeMirror) => boolean} */ isPc = ({keyMap}) => keyMap.default === keyMap.pcDefault,
|
|
231
|
+
/** @type {(cm: typeof CodeMirror) => Record<string, (doc: CodeMirror.Editor) => void} */ extraKeys = CM => {
|
|
232
|
+
const ctrl = isPc(CM) ? 'Ctrl' : 'Cmd';
|
|
233
|
+
return {[`${ctrl}-/`]: escapeHTML, [`${ctrl}-\\`]: escapeURI, [`Shift-${ctrl}-\\`]: escapeHash};
|
|
234
|
+
};
|
|
225
235
|
|
|
226
236
|
/**
|
|
227
237
|
* contextMenu插件
|
|
@@ -441,7 +451,7 @@
|
|
|
441
451
|
if (!CM.prototype.annotateScrollbar && type === 'mediawiki' && addons.has('lint')) {
|
|
442
452
|
scripts.push(ADDON_LIST.annotateScrollbar);
|
|
443
453
|
}
|
|
444
|
-
if (!CM.commands.
|
|
454
|
+
if (!CM.commands.find && addons.has('search') && !addons.has('wikiEditor')) {
|
|
445
455
|
scripts.push(ADDON_LIST.search);
|
|
446
456
|
}
|
|
447
457
|
if (!window.wikiparse && type === 'mediawiki' && addons.has('lint')) {
|
|
@@ -710,7 +720,7 @@
|
|
|
710
720
|
),
|
|
711
721
|
mode === 'mediawiki'
|
|
712
722
|
? {
|
|
713
|
-
extraKeys: addons.has('escape') && (
|
|
723
|
+
extraKeys: addons.has('escape') && extraKeys(CodeMirror),
|
|
714
724
|
}
|
|
715
725
|
: {
|
|
716
726
|
indentUnit: addons.has('indentWithSpace') ? indent : defaultIndent,
|
|
@@ -724,13 +734,12 @@
|
|
|
724
734
|
$target.textSelection('register', cmTextSelection);
|
|
725
735
|
}
|
|
726
736
|
|
|
737
|
+
const ctrl = isPc(CodeMirror) ? 'Ctrl' : 'Cmd';
|
|
727
738
|
if (addons.has('wikiEditor')) {
|
|
728
|
-
const context = $target.data('wikiEditorContext')
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
};
|
|
733
|
-
cm.addKeyMap(keyMap.default === keyMap.pcDefault ? {'Ctrl-F': callback} : {'Cmd-F': callback});
|
|
739
|
+
const context = $target.data('wikiEditorContext');
|
|
740
|
+
cm.addKeyMap({/** 替代CodeMirror的搜索功能 */ [`${ctrl}-F`]() {
|
|
741
|
+
$.wikiEditor.modules.dialogs.api.openDialog(context, 'search-and-replace');
|
|
742
|
+
}});
|
|
734
743
|
}
|
|
735
744
|
|
|
736
745
|
handleContextMenu(cm, mode);
|
|
@@ -755,9 +764,7 @@
|
|
|
755
764
|
$('#Wikiplus-Quickedit-Submit').triggerHandler('click');
|
|
756
765
|
};
|
|
757
766
|
cm.addKeyMap($.extend(
|
|
758
|
-
|
|
759
|
-
? {'Ctrl-S': submit, 'Shift-Ctrl-S': submitMinor}
|
|
760
|
-
: {'Cmd-S': submit, 'Shift-Cmd-S': submitMinor},
|
|
767
|
+
{[`${ctrl}-S`]: submit, [`Shift-${ctrl}-S`]: submitMinor},
|
|
761
768
|
escToExitQuickEdit === true || escToExitQuickEdit === 'true'
|
|
762
769
|
? {
|
|
763
770
|
/** 按下Esc键退出编辑 */ Esc() {
|
|
@@ -973,7 +980,7 @@
|
|
|
973
980
|
}
|
|
974
981
|
}
|
|
975
982
|
if (mode === 'mediawiki' && addons.has('escape')) {
|
|
976
|
-
doc.addKeyMap(
|
|
983
|
+
doc.addKeyMap(extraKeys(CodeMirror), true);
|
|
977
984
|
} else if (mode !== 'mediawiki' && addons.has('indentWithSpace')) {
|
|
978
985
|
doc.setOption('indentUnit', indent);
|
|
979
986
|
doc.setOption('indentWithTabs', false);
|
package/matchtags.js
CHANGED
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
(() => {
|
|
8
8
|
'use strict';
|
|
9
9
|
|
|
10
|
-
const {Pos, cmpPos, Init} = CodeMirror
|
|
11
|
-
|
|
12
|
-
const tagStart = /<(\/?)([_a-z]\w*)/giu,
|
|
10
|
+
const {Pos, cmpPos, Init} = CodeMirror,
|
|
11
|
+
tagStart = /<(\/?)([a-z]\w*)(?=[\s/>]|$)/giu,
|
|
13
12
|
voidTags = new Set(['br', 'wbr', 'hr', 'img']),
|
|
14
13
|
maxScanLines = 1000;
|
|
15
14
|
|
|
@@ -19,8 +18,7 @@
|
|
|
19
18
|
* @param {CodeMirror.Editor} cm
|
|
20
19
|
* @param {CodeMirror.Position} pos 当前位置
|
|
21
20
|
*/
|
|
22
|
-
constructor(cm,
|
|
23
|
-
const {line, ch} = pos;
|
|
21
|
+
constructor(cm, {line, ch}) {
|
|
24
22
|
this.line = line;
|
|
25
23
|
this.ch = ch;
|
|
26
24
|
this.cm = cm;
|
|
@@ -29,14 +27,19 @@
|
|
|
29
27
|
this.max = Math.min(line + maxScanLines - 1, cm.lastLine());
|
|
30
28
|
}
|
|
31
29
|
|
|
30
|
+
/** 提取当前位置 */
|
|
31
|
+
get pos() {
|
|
32
|
+
return Pos(this.line, this.ch);
|
|
33
|
+
}
|
|
34
|
+
|
|
32
35
|
/** 是否是标签 */
|
|
33
36
|
isTag() {
|
|
34
|
-
const type = this.cm.getTokenTypeAt(
|
|
37
|
+
const type = this.cm.getTokenTypeAt(this.pos);
|
|
35
38
|
return /\b(?:mw-(?:html|ext)tag|tag\b)/u.test(type);
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
/**
|
|
39
|
-
*
|
|
42
|
+
* 判断是否是`<`或`>`
|
|
40
43
|
* @param {number} ch 列号
|
|
41
44
|
*/
|
|
42
45
|
bracketAt(ch) {
|
|
@@ -69,6 +72,9 @@
|
|
|
69
72
|
for (;;) {
|
|
70
73
|
const gt = this.text.indexOf('>', this.ch);
|
|
71
74
|
if (gt === -1) {
|
|
75
|
+
if (this.nextLine()) {
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
72
78
|
return undefined;
|
|
73
79
|
}
|
|
74
80
|
this.ch = gt + 1;
|
|
@@ -81,8 +87,11 @@
|
|
|
81
87
|
/** Jump to a `<` towards the line start */
|
|
82
88
|
toTagStart() {
|
|
83
89
|
for (;;) {
|
|
84
|
-
const lt = this.ch ? this.text.lastIndexOf('<', this.ch - 1) : -1;
|
|
90
|
+
const lt = this.ch > 0 ? this.text.lastIndexOf('<', this.ch - 1) : -1;
|
|
85
91
|
if (lt === -1) {
|
|
92
|
+
if (this.prevLine()) {
|
|
93
|
+
continue;
|
|
94
|
+
}
|
|
86
95
|
return undefined;
|
|
87
96
|
} else if (!this.bracketAt(lt)) {
|
|
88
97
|
this.ch = lt;
|
|
@@ -105,9 +114,8 @@
|
|
|
105
114
|
if (!found) {
|
|
106
115
|
if (this.nextLine()) {
|
|
107
116
|
continue;
|
|
108
|
-
} else {
|
|
109
|
-
return undefined;
|
|
110
117
|
}
|
|
118
|
+
return undefined;
|
|
111
119
|
}
|
|
112
120
|
this.ch = found.index + found[0].length;
|
|
113
121
|
if (this.bracketAt(found.index)) {
|
|
@@ -119,19 +127,15 @@
|
|
|
119
127
|
/** Jump to the end of the first line, or a non-bracket `>`, or the letter after a tag bracket `>` */
|
|
120
128
|
toPrevTag() {
|
|
121
129
|
for (;;) {
|
|
122
|
-
const gt = this.ch ? this.text.lastIndexOf('>', this.ch - 1) : -1;
|
|
130
|
+
const gt = this.ch > 0 ? this.text.lastIndexOf('>', this.ch - 1) : -1;
|
|
123
131
|
if (gt === -1) {
|
|
124
132
|
if (this.prevLine()) {
|
|
125
133
|
continue;
|
|
126
|
-
} else {
|
|
127
|
-
return undefined;
|
|
128
134
|
}
|
|
129
|
-
|
|
130
|
-
if (this.bracketAt(gt)) {
|
|
131
|
-
const lastSlash = this.text.lastIndexOf('/', gt);
|
|
132
|
-
const selfClose = lastSlash > -1 && !/\S/u.test(this.text.slice(lastSlash + 1, gt));
|
|
135
|
+
return undefined;
|
|
136
|
+
} else if (this.bracketAt(gt)) {
|
|
133
137
|
this.ch = gt + 1;
|
|
134
|
-
return
|
|
138
|
+
return this.text[gt - 1] === '/' ? 'selfClose' : 'regular';
|
|
135
139
|
}
|
|
136
140
|
this.ch = gt;
|
|
137
141
|
}
|
|
@@ -150,7 +154,7 @@
|
|
|
150
154
|
if (!next) {
|
|
151
155
|
return undefined;
|
|
152
156
|
}
|
|
153
|
-
const
|
|
157
|
+
const from = Pos(this.line, this.ch - next[0].length),
|
|
154
158
|
end = this.toTagEnd(),
|
|
155
159
|
tagName = next[2].toLowerCase();
|
|
156
160
|
if (!end) {
|
|
@@ -166,7 +170,7 @@
|
|
|
166
170
|
}
|
|
167
171
|
}
|
|
168
172
|
if (i < 0 && (!tag || tag === tagName)) {
|
|
169
|
-
return {tag: tagName, from
|
|
173
|
+
return {tag: tagName, from, to: this.pos};
|
|
170
174
|
}
|
|
171
175
|
} else { // opening tag
|
|
172
176
|
stack.push(tagName);
|
|
@@ -187,7 +191,7 @@
|
|
|
187
191
|
if (!prev) {
|
|
188
192
|
return undefined;
|
|
189
193
|
}
|
|
190
|
-
const {
|
|
194
|
+
const {pos: to} = this,
|
|
191
195
|
start = this.toTagStart();
|
|
192
196
|
if (!start) {
|
|
193
197
|
return undefined;
|
|
@@ -206,7 +210,7 @@
|
|
|
206
210
|
}
|
|
207
211
|
}
|
|
208
212
|
if (i < 0 && (!tag || tag === tagName)) {
|
|
209
|
-
return {tag: tagName, from:
|
|
213
|
+
return {tag: tagName, from: this.pos, to};
|
|
210
214
|
}
|
|
211
215
|
}
|
|
212
216
|
}
|
|
@@ -222,27 +226,25 @@
|
|
|
222
226
|
* @returns {CodeMirror.MatchingTagPair}
|
|
223
227
|
*/
|
|
224
228
|
function(pos) {
|
|
225
|
-
|
|
229
|
+
const iter = new Iter(this, pos);
|
|
226
230
|
if (!iter.isTag()) {
|
|
227
231
|
return undefined;
|
|
228
232
|
}
|
|
229
233
|
const end = iter.toTagEnd(),
|
|
230
|
-
to = end &&
|
|
231
|
-
|
|
234
|
+
to = end && iter.pos,
|
|
235
|
+
start = end && iter.toTagStart();
|
|
232
236
|
if (!start || cmpPos(iter, pos) > 0) {
|
|
233
237
|
return undefined;
|
|
234
238
|
}
|
|
235
239
|
const tag = start[2].toLowerCase(),
|
|
236
|
-
here = {from:
|
|
240
|
+
here = {from: iter.pos, to, tag};
|
|
237
241
|
if (end === 'selfClose' || voidTags.has(tag)) {
|
|
238
|
-
return {open: here,
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
if (start[1]) { // closing tag
|
|
242
|
+
return {open: here, loc: 'self'};
|
|
243
|
+
} else if (start[1]) { // closing tag
|
|
242
244
|
return {open: iter.findMatchingOpen(tag), close: here, loc: 'close'};
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
return {open: here, close:
|
|
245
|
+
}
|
|
246
|
+
// opening tag
|
|
247
|
+
return {open: here, close: new Iter(this, to).findMatchingClose(tag), loc: 'open'};
|
|
246
248
|
},
|
|
247
249
|
);
|
|
248
250
|
|
|
@@ -256,22 +258,17 @@
|
|
|
256
258
|
* @returns {CodeMirror.MatchingTagPair}
|
|
257
259
|
*/
|
|
258
260
|
function(pos, tag) {
|
|
259
|
-
const
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return
|
|
261
|
+
const open = new Iter(this, pos).findMatchingOpen(tag);
|
|
262
|
+
if (open) {
|
|
263
|
+
const close = new Iter(this, pos).findMatchingClose(open.tag);
|
|
264
|
+
return close && {open, close};
|
|
263
265
|
}
|
|
264
|
-
|
|
265
|
-
close = forward.findMatchingClose(open.tag);
|
|
266
|
-
return close ? {open, close} : undefined;
|
|
266
|
+
return undefined;
|
|
267
267
|
},
|
|
268
268
|
);
|
|
269
269
|
|
|
270
270
|
/** Used by addon/edit/closetag.js */
|
|
271
|
-
CodeMirror.scanForClosingTag = (cm, pos, tagName) =>
|
|
272
|
-
const iter = new Iter(cm, pos);
|
|
273
|
-
return iter.findMatchingClose(tagName);
|
|
274
|
-
};
|
|
271
|
+
CodeMirror.scanForClosingTag = (cm, pos, tagName) => new Iter(cm, pos).findMatchingClose(tagName);
|
|
275
272
|
|
|
276
273
|
CodeMirror.defineOption('matchTags', false, (cm, val, old) => {
|
|
277
274
|
if (old && old !== Init) {
|
|
@@ -291,12 +288,12 @@
|
|
|
291
288
|
const clear = cm => {
|
|
292
289
|
if (cm.state.tagHit) {
|
|
293
290
|
cm.state.tagHit.clear();
|
|
291
|
+
cm.state.tagHit = undefined;
|
|
294
292
|
}
|
|
295
293
|
if (cm.state.tagOther) {
|
|
296
294
|
cm.state.tagOther.clear();
|
|
295
|
+
cm.state.tagOther = undefined;
|
|
297
296
|
}
|
|
298
|
-
cm.state.tagHit = null;
|
|
299
|
-
cm.state.tagOther = null;
|
|
300
297
|
};
|
|
301
298
|
|
|
302
299
|
/**
|
|
@@ -320,9 +317,9 @@
|
|
|
320
317
|
other = match.loc === 'close' ? match.open : match.close;
|
|
321
318
|
if (hit) {
|
|
322
319
|
cm.state.tagHit = cm.markText(hit.from, hit.to, {className: `cm-${other ? '' : 'non'}matchingtag`});
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
320
|
+
if (other) {
|
|
321
|
+
cm.state.tagOther = cm.markText(other.from, other.to, {className: 'cm-matchingtag'});
|
|
322
|
+
}
|
|
326
323
|
}
|
|
327
324
|
});
|
|
328
325
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "wikiplus-highlight",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.48.7",
|
|
4
4
|
"description": "A plugin for the MediaWiki front-end add-on \"Wikiplus\"",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"mediawiki",
|
|
@@ -24,8 +24,7 @@
|
|
|
24
24
|
"url": "git+https://github.com/bhsd-harry/Wikiplus-highlight.git"
|
|
25
25
|
},
|
|
26
26
|
"scripts": {
|
|
27
|
-
"test": "eslint . && http-server -c-1 --cors"
|
|
28
|
-
"ssl": "eslint . && http-server -c-1 -S -C cert.pem"
|
|
27
|
+
"test": "eslint . && http-server -c-1 --cors"
|
|
29
28
|
},
|
|
30
29
|
"devDependencies": {
|
|
31
30
|
"eslint": "^8.8.0",
|
package/search.js
CHANGED
|
@@ -5,28 +5,26 @@
|
|
|
5
5
|
/* eslint-disable require-unicode-regexp */
|
|
6
6
|
(() => {
|
|
7
7
|
'use strict';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
* I18N消息
|
|
11
|
-
* @param {string} key 消息键
|
|
12
|
-
*/
|
|
13
|
-
const msg = key => mw.msg(`wphl-${key}`);
|
|
8
|
+
const {Pos} = CodeMirror,
|
|
9
|
+
{libs: {wphl: {msg, isPc, addons}}} = mw;
|
|
14
10
|
|
|
15
11
|
// Prepare elements
|
|
16
12
|
const $search = $('<input>', {class: 'Wikiplus-Quickedit-Search', placeholder: msg('search-placeholder')}),
|
|
17
|
-
$searchClose = $('<span>', {text: '×',
|
|
18
|
-
$searchNext = $('<span>', {text: '▼',
|
|
19
|
-
$searchPrev = $('<span>', {text: '▲',
|
|
13
|
+
$searchClose = $('<span>', {text: '×', class: 'Wikiplus-Symbol-Btn'}),
|
|
14
|
+
$searchNext = $('<span>', {text: '▼', class: 'Wikiplus-Symbol-Btn'}),
|
|
15
|
+
$searchPrev = $('<span>', {text: '▲', class: 'Wikiplus-Symbol-Btn'}),
|
|
20
16
|
$searchContainer = $('<div>', {
|
|
21
17
|
class: 'Wikiplus-Quickedit-Search-Div',
|
|
22
18
|
html: [$search, $searchNext, $searchPrev, $searchClose],
|
|
23
19
|
}),
|
|
24
20
|
$searchBtn = $('<span>', {class: 'Wikiplus-Btn', html: msg('addon-search')}),
|
|
25
21
|
$replace = $('<input>', {class: 'Wikiplus-Quickedit-Search', placeholder: msg('replace-placeholder')}),
|
|
26
|
-
$replaceClose = $('<span>', {text: '×',
|
|
22
|
+
$replaceClose = $('<span>', {text: '×', class: 'Wikiplus-Symbol-Btn'}),
|
|
23
|
+
$replaceNext = $('<span>', {text: '▼', class: 'Wikiplus-Symbol-Btn'}),
|
|
24
|
+
$replacePrev = $('<span>', {text: '▲', class: 'Wikiplus-Symbol-Btn'}),
|
|
27
25
|
$replaceContainer = $('<div>', {
|
|
28
26
|
class: 'Wikiplus-Quickedit-Search-Div',
|
|
29
|
-
html: [$replace, $replaceClose],
|
|
27
|
+
html: [$replace, $replaceNext, $replacePrev, $replaceClose],
|
|
30
28
|
}),
|
|
31
29
|
$replaceBtn = $('<span>', {class: 'Wikiplus-Btn', html: msg('search-replace')});
|
|
32
30
|
|
|
@@ -38,7 +36,7 @@
|
|
|
38
36
|
* @param {string|RegExp} str 搜索字符串
|
|
39
37
|
*/
|
|
40
38
|
const token = str => {
|
|
41
|
-
const initial = typeof str === 'string'
|
|
39
|
+
const initial = typeof str === 'string' && new RegExp(`[^${escapeRegExp(str[0])}]`, 'i');
|
|
42
40
|
|
|
43
41
|
/**
|
|
44
42
|
* @override
|
|
@@ -61,36 +59,55 @@
|
|
|
61
59
|
$search.css('background-color', '').off('input', onInput);
|
|
62
60
|
};
|
|
63
61
|
|
|
64
|
-
let /** @type {string
|
|
62
|
+
let /** @type {string} */ lastSource,
|
|
63
|
+
/** @type {string|RegExp} */ lastPtn,
|
|
65
64
|
/** @type {CodeMirror.SearchCursor} */ cursor;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* 更新搜索字符串
|
|
68
|
+
* @param {CodeMirror.Editor} cm
|
|
69
|
+
*/
|
|
70
|
+
const updatePtn = cm => {
|
|
71
|
+
const /** @type {string} */ source = $search.val();
|
|
72
|
+
if (!source) {
|
|
73
|
+
return undefined;
|
|
74
|
+
} else if (source === lastSource) {
|
|
75
|
+
return lastPtn;
|
|
76
|
+
}
|
|
77
|
+
const caseFold = source.endsWith('i'),
|
|
78
|
+
ptn = /^\/.+\/i?$/u.test(source)
|
|
79
|
+
? new RegExp(source.slice(1, caseFold ? -2 : -1), caseFold ? 'im' : 'm')
|
|
80
|
+
: source;
|
|
81
|
+
cm.removeOverlay(overlay);
|
|
82
|
+
overlay.token = token(ptn);
|
|
83
|
+
cm.addOverlay(overlay);
|
|
84
|
+
lastSource = source;
|
|
85
|
+
lastPtn = ptn;
|
|
86
|
+
cursor = cm.getSearchCursor(ptn, cm.getCursor(), {caseFold: true});
|
|
87
|
+
return ptn;
|
|
88
|
+
};
|
|
89
|
+
|
|
66
90
|
/**
|
|
67
91
|
* keyboard event handler of `$search`
|
|
68
92
|
* @param {CodeMirror.Editor} cm
|
|
69
93
|
* @param {boolean} dir 搜索方向
|
|
94
|
+
* @param {boolean} update 是否先更新搜索字符串
|
|
70
95
|
*/
|
|
71
|
-
const findNext = (cm, dir) => {
|
|
72
|
-
|
|
73
|
-
if (!ptn) {
|
|
96
|
+
const findNext = (cm, dir, update = true) => {
|
|
97
|
+
if (update && !updatePtn(cm)) {
|
|
74
98
|
return;
|
|
75
|
-
} else if (typeof ptn === 'string' && /^\/.+\/i?$/u.test(ptn)) {
|
|
76
|
-
ptn = new RegExp(ptn.slice(1, -2), ptn.endsWith('i') ? 'im' : 'm');
|
|
77
|
-
}
|
|
78
|
-
if (ptn !== lastPtn) {
|
|
79
|
-
cm.removeOverlay(overlay);
|
|
80
|
-
overlay.token = token(ptn);
|
|
81
|
-
cm.addOverlay(overlay);
|
|
82
|
-
lastPtn = ptn;
|
|
83
|
-
cursor = cm.getSearchCursor(ptn, cm.getCursor(), {caseFold: true});
|
|
84
99
|
}
|
|
85
100
|
let result = dir ? cursor.findNext() : cursor.findPrevious();
|
|
86
101
|
if (!result) {
|
|
102
|
+
let pos;
|
|
87
103
|
if (dir) {
|
|
88
|
-
|
|
104
|
+
pos = Pos(0, 0);
|
|
89
105
|
} else {
|
|
90
|
-
const lastLine = cm.lastLine()
|
|
91
|
-
|
|
92
|
-
cursor = cm.getSearchCursor(ptn, {line: lastLine, ch: lastCh}, {caseFold: true});
|
|
106
|
+
const lastLine = cm.lastLine();
|
|
107
|
+
pos = Pos(lastLine, cm.getLine(lastLine).length);
|
|
93
108
|
}
|
|
109
|
+
cursor.pos = {from: pos, to: pos};
|
|
110
|
+
cursor.atOccurrence = false;
|
|
94
111
|
result = dir ? cursor.findNext() : cursor.findPrevious();
|
|
95
112
|
}
|
|
96
113
|
if (result) {
|
|
@@ -104,35 +121,39 @@
|
|
|
104
121
|
}
|
|
105
122
|
};
|
|
106
123
|
|
|
124
|
+
/**
|
|
125
|
+
* replace one by one
|
|
126
|
+
* @param {CodeMirror.Editor} cm
|
|
127
|
+
* @param {boolean} dir 搜索方向
|
|
128
|
+
*/
|
|
129
|
+
const replaceNext = (cm, dir) => {
|
|
130
|
+
const ptn = updatePtn(cm);
|
|
131
|
+
if (!ptn) {
|
|
132
|
+
return;
|
|
133
|
+
} else if (cursor.atOccurrence) {
|
|
134
|
+
const replace = $replace.val();
|
|
135
|
+
cursor.replace(typeof ptn === 'string' ? replace : cursor.pos.match[0].replace(ptn, replace));
|
|
136
|
+
}
|
|
137
|
+
findNext(cm, dir, false);
|
|
138
|
+
};
|
|
139
|
+
|
|
107
140
|
/**
|
|
108
141
|
* keyboard event handler of `$replace`
|
|
109
142
|
* @param {CodeMirror.Editor} cm
|
|
110
143
|
*/
|
|
111
144
|
const replace = async cm => {
|
|
112
|
-
|
|
145
|
+
const ptn = updatePtn(cm);
|
|
113
146
|
if (!ptn) {
|
|
114
147
|
return;
|
|
115
|
-
} else if (typeof ptn === 'string' && /^\/.+\/i?$/u.test(ptn)) {
|
|
116
|
-
ptn = new RegExp(ptn.slice(1, -2), ptn.endsWith('i') ? 'im' : 'm');
|
|
117
|
-
}
|
|
118
|
-
if (ptn !== lastPtn) {
|
|
119
|
-
cm.removeOverlay(overlay);
|
|
120
|
-
overlay.token = token(ptn);
|
|
121
|
-
cm.addOverlay(overlay);
|
|
122
|
-
lastPtn = ptn;
|
|
123
|
-
cursor = cm.getSearchCursor(ptn, cm.getCursor(), {caseFold: true});
|
|
124
148
|
}
|
|
125
149
|
const replacePtn = typeof ptn === 'string'
|
|
126
150
|
? new RegExp(escapeRegExp(ptn), 'gim')
|
|
127
151
|
: new RegExp(ptn, `g${ptn.flags}`),
|
|
128
152
|
val = cm.getValue(),
|
|
129
153
|
mt = val.match(replacePtn);
|
|
130
|
-
if (mt) {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
cm.setValue(val.replace(replacePtn, $replace.val()));
|
|
134
|
-
$replaceContainer.hide();
|
|
135
|
-
}
|
|
154
|
+
if (mt && await OO.ui.confirm(msg('replace-count', mt.length))) {
|
|
155
|
+
cm.setValue(val.replace(replacePtn, $replace.val()));
|
|
156
|
+
$replaceContainer.hide();
|
|
136
157
|
}
|
|
137
158
|
};
|
|
138
159
|
|
|
@@ -159,21 +180,26 @@
|
|
|
159
180
|
cm.removeOverlay(overlay);
|
|
160
181
|
$searchContainer.hide();
|
|
161
182
|
$replaceContainer.hide();
|
|
162
|
-
|
|
183
|
+
lastSource = '';
|
|
163
184
|
};
|
|
164
185
|
|
|
165
|
-
CodeMirror.commands.
|
|
186
|
+
CodeMirror.commands.find = findNew;
|
|
187
|
+
CodeMirror.commands.findNext = /** 向后搜索 */ doc => {
|
|
166
188
|
findNext(doc, true);
|
|
167
189
|
};
|
|
168
|
-
CodeMirror.commands.
|
|
190
|
+
CodeMirror.commands.findPrev = /** 向前搜索 */ doc => {
|
|
169
191
|
findNext(doc, false);
|
|
170
192
|
};
|
|
171
|
-
CodeMirror.commands.replace =
|
|
193
|
+
CodeMirror.commands.replace = replaceNew;
|
|
194
|
+
CodeMirror.commands.replaceNext = /** 向后替换 */ doc => {
|
|
195
|
+
replaceNext(doc, true);
|
|
196
|
+
};
|
|
197
|
+
CodeMirror.commands.replaceAll = /** 全文替换 */ doc => { // eslint-disable-line es-x/no-string-prototype-replaceall
|
|
172
198
|
replace(doc);
|
|
173
199
|
};
|
|
174
200
|
|
|
175
201
|
mw.hook('wiki-codemirror').add(/** @param {CodeMirror.Editor} cm */ cm => {
|
|
176
|
-
if (!cm.getOption('styleSelectedText') ||
|
|
202
|
+
if (!cm.getOption('styleSelectedText') || addons.has('wikiEditor')) {
|
|
177
203
|
return;
|
|
178
204
|
}
|
|
179
205
|
const $textarea = $(cm.getWrapperElement()).prev('#Wikiplus-Quickedit');
|
|
@@ -205,6 +231,12 @@
|
|
|
205
231
|
$replaceClose.click(() => {
|
|
206
232
|
$replaceContainer.hide();
|
|
207
233
|
});
|
|
234
|
+
$replaceNext.click(() => {
|
|
235
|
+
replaceNext(cm, true);
|
|
236
|
+
});
|
|
237
|
+
$replacePrev.click(() => {
|
|
238
|
+
replaceNext(cm, false);
|
|
239
|
+
});
|
|
208
240
|
$replace.val('').keydown(e => {
|
|
209
241
|
if (e.key === 'Enter') {
|
|
210
242
|
e.preventDefault();
|
|
@@ -214,23 +246,12 @@
|
|
|
214
246
|
$replaceContainer.hide();
|
|
215
247
|
}
|
|
216
248
|
});
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
'Shift-Ctrl-F': replaceNew,
|
|
224
|
-
'Shift-Ctrl-R': 'replace',
|
|
225
|
-
}
|
|
226
|
-
: {
|
|
227
|
-
'Cmd-F': findNew,
|
|
228
|
-
'Cmd-G': 'findForward',
|
|
229
|
-
'Shift-Cmd-G': 'findBackward',
|
|
230
|
-
'Cmd-Alt-F': replaceNew,
|
|
231
|
-
'Shift-Cmd-Alt-F': 'replace',
|
|
232
|
-
},
|
|
233
|
-
);
|
|
249
|
+
const ctrl = isPc(CodeMirror) ? 'Ctrl' : 'Cmd';
|
|
250
|
+
cm.addKeyMap({
|
|
251
|
+
[`${ctrl}-H`]: 'replace',
|
|
252
|
+
[`Shift-${ctrl}-H`]: 'replaceNext',
|
|
253
|
+
[`${ctrl}-Alt-Enter`]: 'replaceAll',
|
|
254
|
+
});
|
|
234
255
|
});
|
|
235
256
|
|
|
236
257
|
mw.loader.addStyleTag(
|