Jump to content

User:L10nM4st3r/wToolCore/editor/wikitextAutocomplete.js

From Meta, a Wikimedia project coordination wiki

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
// <nowiki>

var autocompletions = {
	"__TOC__": {meta: "magic words"},
	"__NOTOC__": {meta: "magic words"},
	"__FORCETOC__": {meta: "magic words"},
	"__NOEDITSECTION__": {meta: "magic words"},
	"__NEWSECTIONLINK__": {meta: "magic words"},
	"__NONEWSECTIONLINK__": {meta: "magic words"},
	"__NOGALLERY__": {meta: "magic words"},
	"__HIDDENCAT__": {meta: "magic words"},
	"__EXPECTUNUSEDCATEGORY__": {meta: "magic words"},
	"__NOCONTENTCONVERT__": {meta: "magic words"},
	"__NOCC__": {meta: "magic words"},
	"__NOTITLECONVERT__": {meta: "magic words"},
	"__NOTC__": {meta: "magic words"},
	"__INDEX__": {meta: "magic words"},
	"__NOINDEX__": {meta: "magic words"},
	"__STATICREDIRECT__": {meta: "magic words"},
	"__EXPECTUNUSEDTEMPLATE__": {meta: "magic words"},
	"__NOTITLECONVERT__": {meta: "magic words"},
	"<hr>": {meta: "style tag"},
	"<br/>": {meta: "style tag"},
	"<strong>": {insert: "<strong>$cursor</strong>", meta: "style tag"},
	"<span>": {insert: "<span style=\"\">$cursor</span>", meta: "style tag"},
	"<div>": {insert: "<div style=\"\">$cursor</div>", meta: "style tag"},
	"<nowiki\>": {insert: "<nowiki\>$cursor</nowiki\>", meta: "parser tag"},
	"<nowiki\/>": {meta: "parser tag"},
	"<noinclude\>": {insert: "<noinclude\>$cursor</noinclude\>", meta: "parser tag"},
	"<noinclude\/>": {meta: "parser tag"},
	"<onlyinclude\>": {insert: "<onlyinclude\>$cursor</onlyinclude\>", meta: "parser tag"},
	"<onlyinclude\/>": {meta: "parser tag"},
	"<includeonly\>": {insert: "<includeonly\>$cursor</includeonly\>", meta: "parser tag"},
	"<includeonly\/>": {meta: "parser tag"},
	"{{SITENAME}}": {meta: "variable"},
	"{{SERVER}}": {meta: "variable"},
	"{{SERVERNAME}}": {meta: "variable"},
	"{{DIRECTIONMARK}}": {meta: "variable"},
	"{{ARTICLEPATH}}": {meta: "variable"},
	"{{SCRIPTPATH}}": {meta: "variable"},
	"{{STYLEPATH}}": {meta: "variable"},
	"{{CURRENTVERSION}}": {meta: "variable"},
	"{{CONTENTLANG}}": {meta: "variable"},
	"{{PAGEID}}": {meta: "variable"},
	"{{PAGELANGUAGE}}": {meta: "variable"},
	"{{TRANSLATABLEPAGE}}": {insert: "{{TRANSLATABLEPAGE}}", meta: "variable"},
	"{{PROTECTIONLEVEL}}": {insert: "{{PROTECTIONLEVEL: <move/edit> }}", meta: "variable"},
	"{{PROTECTIONEXPIRY}}": {insert: "{{PROTECTIONEXPIRY: <move/edit> }}", meta: "variable"},
	"{{REVISIONID}}": {meta: "variable"},
	"{{REVISIONDAY}} (unpadded)": {insert: "{{REVISIONDAY}}", meta: "variable"},
	"{{REVISIONDAY2}} (padded)": {insert: "{{REVISIONDAY2}}", meta: "variable"},
	"{{REVISIONMONTH}} (padded)": {insert: "{{REVISIONMONTH}}", meta: "variable"},
	"{{REVISIONMONTH1}} (unpadded)": {insert: "{{REVISIONMONTH1}}", meta: "variable"},
	"{{REVISIONYEAR}}": {insert: "{{REVISIONYEAR}}", meta: "variable"},
	"{{REVISIONTIMESTAMP}}": {insert: "{{REVISIONTIMESTAMP}}", meta: "variable"},
	"{{REVISIONUSER}}": {insert: "{{REVISIONUSER}}", meta: "variable"},
	"{{REVISIONSIZE}}": {insert: "{{REVISIONSIZE}}", meta: "variable"},
	"{{DISPLAYTITLE}}": {insert: "{{DISPLAYTITLE: $cursor }}", meta: "variable"},
	"{{DEFAULTSORT}} (category sort)": {insert: "{{DEFAULTSORT: $cursor }}", meta: "variable"},
	"{{USERLANGUAGE}}": {meta: "variable"},
	"{{NUMBEROFPAGES}}": {meta: "variable"},
	"{{NUMBEROFARTICLES}}": {meta: "variable"},
	"{{NUMBEROFFILES}}": {meta: "variable"},
	"{{NUMBEROFEDITS}}": {meta: "variable"},
	"{{NUMBEROFUSERS}}": {meta: "variable"},
	"{{NUMBEROFADMINS}}": {meta: "variable"},
	"{{NUMBEROFACTIVEUSERS}}": {meta: "variable"},
	"{{PAGESINCAT}}": {insert: "{{PAGESINCAT: <cat>$cursor }}", meta: "variable"},
	"{{PAGESINCAT}} (parameter)": {insert: "{{PAGESINCAT: <cat>$cursor | <all / pages / subcats / files> }}", meta: "variable"},
	"{{NUMINGROUP}}": {insert: "{{NUMINGROUP: <user group>$cursor }}", meta: "variable"},
	"{{FULLPAGENAME}}": {meta: "variable"},
	"{{PAGENAME}}": {meta: "variable"},
	"{{BASEPAGENAME}}": {meta: "variable"},
	"{{ROOTPAGENAME}}": {meta: "variable"},
	"{{SUBPAGENAME}}": {meta: "variable"},
	"{{ARTICLEPAGENAME}}": {meta: "variable"},
	"{{TALKPAGENAME}}": {meta: "variable"},
	"{{NAMESPACE}}": {meta: "variable"},
	"{{NAMESPACENUMBER}}": {meta: "variable"},
	"{{ARTICLESPACE}}": {meta: "variable"},
	"{{TALKSPACE}}": {meta: "variable"},
	"{{!}}": {meta: "character escape"},
	"{{=}}": {meta: "character escape"},
	"{{fullurl:}}": {insert: "{{fullurl: $cursor }}", meta: "parser function"},
	"{{fullurl:}} (with query)": {insert: "{{fullurl: $cursor | <query> }}", meta: "parser function"},
	"{{localurl:}}": {insert: "{{localurl: $cursor }}", meta: "parser function"},
	"{{localurl:}} (with query)": {insert: "{{localurl: $cursor | <query> }}", meta: "parser function"},
	"{{canonicalurl:}}": {insert: "{{canonicalurl: $cursor }}", meta: "parser function"},
	"{{canonicalurl:}} (with query)": {insert: "{{canonicalurl: $cursor | <query> }}", meta: "parser function"},
	"{{filepath:}}": {insert: "{{filepath: $cursor }}", meta: "parser function"},
	"{{anchorencode:}}": {insert: "{{anchorencode: $cursor }}", meta: "parser function"},
	"{{dateformat:}}": {insert: "{{dateformat: $cursor }}", meta: "parser function"},
	"{{formatdate:}}": {insert: "{{formatdate: $cursor }}", meta: "parser function"},
	"{{bidi:}}": {insert: "{{bidi: $cursor }}", meta: "parser function"},
	"{{PLURAL:}}": {insert: "{{PLURAL: $cursor }}", meta: "parser function"},
	"{{GENDER:}}": {insert: "{{GENDER: <username>$cursor | <he> | <she> | <unspecified> }}", meta: "parser function"},
	"{{int:}}": {insert: "{{int: $cursor }}", meta: "parser function"},
	"{{#interwikilink:}}": {insert: "{{#interwikilink: $cursor }}", meta: "parser function"},
	"{{#interlanguagelink:}}": {insert: "{{#interlanguagelink: $cursor }}", meta: "parser function"},
	"{{#special:}}": {insert: "{{#special: $cursor }}", meta: "parser function"},
	"{{#speciale:}}": {insert: "{{#speciale: $cursor }}", meta: "parser function"},
	"{{#tag:}}": {insert: "{{#tag:<tagname>\n$indent | content\n$indent | attribute1 = value1\n$indent | attribute2 = value2\n$indent}}", meta: "parser function"},
	"{{ns:}} (id to name)": {insert: "{{ns: <namespace id>$cursor }}", meta: "parser function"},
	"{{CURRENTYEAR}}": {meta: "variable"},
	"{{CURRENTMONTH}} (padded)": {insert: "{{CURRENTMONTH}}", meta: "variable"},
	"{{CURRENTMONTH1}} (unpadded)": {insert: "{{CURRENTMONTH1}}", meta: "variable"},
	"{{CURRENTMONTHNAME}}": {meta: "variable"},
	"{{CURRENTMONTHNAMEGEN}}": {meta: "variable"},
	"{{CURRENTMONTHABBREV}}": {meta: "variable"},
	"{{CURRENTDAY}} (unpadded)": {insert: "{{CURRENTDAY}}", meta: "variable"},
	"{{CURRENTDAY2}} (padded)": {insert: "{{CURRENTDAY2}}", meta: "variable"},
	"{{CURRENTDOW}} (day of week)": {insert: "{{CURRENTDOW}}", meta: "variable"},
	"{{CURRENTDAYNAME}}": {meta: "variable"},
	"{{CURRENTTIME}}": {meta: "variable"},
	"{{CURRENTHOUR}}": {meta: "variable"},
	"{{CURRENTWEEK}}": {meta: "variable"},
	"{{CURRENTTIMESTAMP}}": {meta: "variable"},
	"{{LOCALYEAR}}": {meta: "variable"},
	"{{LOCALMONTH}} (padding)": {insert: "{{LOCALMONTH}}", meta: "variable"},
	"{{LOCALMONTH1}} (unpadded)": {insert: "{{LOCALMONTH1}}", meta: "variable"},
	"{{LOCALMONTHNAME}}": {meta: "variable"},
	"{{LOCALMONTHNAMEGEN}}": {meta: "variable"},
	"{{LOCALMONTHABBREV}}": {meta: "variable"},
	"{{LOCALDAY}} (unpadded)": {insert: "{{LOCALDAY}}", meta: "variable"},
	"{{LOCALDAY2}} (padded)": {insert: "{{LOCALDAY2}}", meta: "variable"},
	"{{LOCALDOW}} (day of week)": {insert: "{{LOCALDOW}}", meta: "variable"},
	"{{LOCALDAYNAME}}": {meta: "variable"},
	"{{LOCALTIME}}": {meta: "variable"},
	"{{LOCALHOUR}}": {meta: "variable"},
	"{{LOCALWEEK}}": {meta: "variable"},
	"{{LOCALTIMESTAMP}}": {meta: "variable"},
	"{{#if:}}": {insert: "{{#if: $cursor\n$indent | \n$indent | \n$indent}}", meta: "parser function"},
	"{{#ifeq:}}": {insert: "{{#ifeq: $cursor\n$indent | \n$indent | \n$indent | \n$indent}}", meta: "parser function"},
	"{{#switch:}}": {insert: "{{#switch: $cursor\n$indent | val1 = \n$indent | val2 = \n$indent | #default = \n$indent}}", meta: "parser function"},
	"{{#ifexpr:}}": {insert: "{{#ifexpr: {{#expr: $cursor}}\n$indent | \n$indent | \n$indent}}", meta: "parser function"},
	"{{#iferr:}}": {insert: "{{#iferr: {{#expr: $cursor}}\n$indent | \n$indent | \n$indent}}", meta: "parser function"},
	"{{#ifexist:}}": {insert: "{{#ifexist: $cursor\n$indent | \n$indent | \n$indent}}", meta: "parser function"},
	"{{#rel2abs:}}": {insert: "{{#rel2abs: <../subpage>$cursor | <optional - base> }}", meta: "parser function"},
	"{{#time:}}": {insert: "{{#time: d m y$cursor }}", meta: "parser function"},
	"{{#timel:}}": {insert: "{{#timel: d m y$cursor }}", meta: "parser function"},
	"{{#timef:}}": {insert: "{{#timef: <now/+1 hour> | date$cursor }}", meta: "parser function"},
	"{{#timefl:}}": {insert: "{{#timefl: <now/+1 hour> | date$cursor }}", meta: "parser function"},
	"{{#titleparts:}}": {insert: "{{#titleparts: <Page/Subpage/Sub-subpage> | 2$cursor }}", meta: "parser function"},
	"{{#language:}} (short to long)": {insert: "{{#language: $cursor }}", meta: "parser function"},
	"{{PAGESINCAT:}}": {insert: "{{PAGESINCAT: <Category name>$cursor }}", meta: "parser function"},
	"{{PAGESINCAT:{{PAGENAME}}}}": {insert: "{{PAGESINCAT: {{#titleparts: {{PAGENAME}} }} }}", meta: "snippet"},
	"{{lc:}}": {insert: "{{lc: $cursor }}", meta: "parser function"},
	"{{lcfirst:}}": {insert: "{{lcfirst: $cursor }}", meta: "parser function"},
	"{{uc:}}": {insert: "{{uc: $cursor }}", meta: "parser function"},
	"{{ucfirst:}}": {insert: "{{ucfirst: $cursor }}", meta: "parser function"},
	"{{urlencode:}}": {insert: "{{urlencode: $cursor }}", meta: "parser function"},
	"{{anchorencode:}}": {insert: "{{anchorencode: $cursor }}", meta: "parser function"},
	"{{padleft:}}": {insert: "{{padleft: <text>$cursor | 5 | <padding> }}", meta: "parser function"},
	"{{padright:}}": {insert: "{{padright: <text>$cursor | 5 | <padding> }}", meta: "parser function"},
	"{{formatnum:}}": {insert: "{{formatnum: <num>$cursor }}", meta: "parser function"},
	"#REDIRECT": {insert: "#REDIRECT [[$cursor]]", meta: "keyword"},
};


var weditorPrefixRegex = /[\#\{\[a-zA-Z_0-9\.\$\-\u00A2-\uFFFF]/;