This script is for PERSONAL use only!

You are free to install this script for yourself, but it is not allowed to be used wiki-wide (e.g., in MediaWiki:Common.js or MediaWiki:Wikia.js), as it would violate FANDOM's Terms of Use. (See the customization policy)    

CodeEditorSwitch is a script that allows the user to use the VisualEditor for regular pages and the Classic editor for code pages. It modifies the "Edit" button on pages ending in .js and .css to use the Classic editor and redirects .js and .css VisualEditor links to the Classic editor.


Add this JavaScript on your wiki:

Global Personal
w:Special:Mypage/global.js Special:Mypage/common.js
    type: 'script',
    articles: [
importArticles — Best Practices for installing JavaScript on FANDOM
The importArticles statement is designed to combine multiple HTTP requests into a single data transfer, allowing multiple scripts to load and execute faster. If you've been installing several different scripts, your JavaScript file has probably accumulated unnecessary import statements. Click "Expand" to learn how to efficiently batch import scripts to speed up performance and make your code look cleaner. One other approach is by using the MediaWiki:ImportJS.
If your JavaScript file has several lines of code that say importScript, importScriptPage, or importArticles, you may be able to combine them! By batch importing a collection of scripts with a single import, your JavaScript code will load faster and look cleaner. Consider the example below. On the left is an example of what your JavaScript file might currently look like. On the right is how you could improve that code.
Multiple imports — messy and slow One import — clean and efficient
  type: 'script',
  article: 'u:dev:FloatingToc/code.js'
importScriptPage('page1.js', 'wikiname');
importScriptPage('page2.js', 'wikiname');
    type: 'script',
    articles: [
Note: In this example, pay close attention to the placement of commas and other punctuation. For people who aren't familiar with programming (and even those who are!), a common mistake when writing code is to accidentally delete, forget, or misplace critical symbols like commas or quotation marks. This can cause a syntax error that breaks the code. Carefully follow the convention shown here when using importArticles.
But there's much more to importArticles than just this! For more examples and advanced usage, see the help page at Help:Including additional JavaScript and CSS.


Option List & Defaults

The following tables lists all the options that can be configured, a description of each, their accepted values, and their default values.

Option Description Accepted Values Default
changeEditBtn Whether or not to change the "Edit" button on .js and .css pages to use the Classic editor. true, false true
redirectToClassic Whether or not to redirect .js and .css VisualEditor links to the Classic editor. true, false true
lang Defines which language the script should use to display the "VisualEditor" text in the edit menu. Two letter language codes as a string (i.e. surrounded in quotes) Language set in the user's preferences or "en" if that language is not supported

How to Configure

To configure CodeEditorSwitch properties, use the window.codeEditorSwitch object and place it before the importArticles call in your personal JavaScript. Be sure to separate each the properties with a comma. An example configuration follows:

window.codeEditorSwitch = {
// importArticles call
    type: 'script',
    articles: [
        // ...
Using configuration options with Fandom Open Source Library scripts
The instructions on this page describe how to use configuration options with a script. Here on the Fandom Open Source Library, many scripts provide optional configuration settings as a mean to alter or enhance the default behavior of the script. When installing configuration options in your JavaScript file, please note that they need to go above the import statement in order to work — unless the directions say otherwise. In case MediaWiki:ImportJS is used to load the scripts, it will be executed last.
Configuration options load too late, don't work
Proper placement of configuration options
// 1. AjaxRC import statement
// 2. AjaxRC configuration option
var ajaxRefresh = 30000;
// 1. AjaxRC configuration option
var ajaxRefresh = 30000;
// 2. AjaxRC import statement


  • When redirectToClassic is set to true, the VisualEditor link in the "Edit" menu is not redirected. This is done with the cesredirect=false URL parameter.
    • You can force users with CodeEditorSwitch installed to use the VisualEditor for a .js or .css link by adding &cesredirect=false after ?veaction=edit. However, this is not recommended because those users prefer the Classic editor for code, unless you are trying to demonstrate a bug with the VisualEditor.

Submitting Translations

If you would like to submit a translation for CodeEditorSwitch, you can do so on the code.js page in the i18n object. Please place translations in alphabetical order according to the language's two-letter code (e.g. "en" is "English"), and use the translation FANDOM uses for the "VisualEditor" button in the "Edit" menu. Using a different translation can be inconsistent and confusing for a user, as they may be used to seeing certain text. If FANDOM uses the text "VisualEditor" for the VE button for a language, please do not submit that translation as the script labels the button "VisualEditor" by default.

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.