From 4e71ba9d3ea40cd2d817965e5eed4a2fe1b876b3 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Fri, 24 Jul 2015 22:44:39 +0200 Subject: Remove core plugins from core repository --- plugins/LocalFilesEditor/admin.php | 151 -- .../LocalFilesEditor/codemirror/lib/codemirror.css | 53 - .../LocalFilesEditor/codemirror/lib/codemirror.js | 1915 -------------------- plugins/LocalFilesEditor/codemirror/lib/overlay.js | 51 - .../codemirror/mode/clike/clike.css | 6 - .../codemirror/mode/clike/clike.js | 181 -- .../codemirror/mode/clike/index.html | 101 -- .../LocalFilesEditor/codemirror/mode/css/css.css | 9 - .../LocalFilesEditor/codemirror/mode/css/css.js | 124 -- .../codemirror/mode/css/index.html | 56 - .../LocalFilesEditor/codemirror/mode/diff/diff.css | 3 - .../LocalFilesEditor/codemirror/mode/diff/diff.js | 13 - .../codemirror/mode/diff/index.html | 99 - .../codemirror/mode/haskell/haskell.css | 25 - .../codemirror/mode/haskell/haskell.js | 242 --- .../codemirror/mode/haskell/index.html | 59 - .../codemirror/mode/htmlmixed/htmlmixed.js | 66 - .../codemirror/mode/htmlmixed/index.html | 54 - .../codemirror/mode/javascript/index.html | 78 - .../codemirror/mode/javascript/javascript.css | 6 - .../codemirror/mode/javascript/javascript.js | 348 ---- .../codemirror/mode/php/index.html | 52 - .../LocalFilesEditor/codemirror/mode/php/php.js | 83 - .../codemirror/mode/stex/index.html | 96 - .../LocalFilesEditor/codemirror/mode/stex/stex.css | 20 - .../LocalFilesEditor/codemirror/mode/stex/stex.js | 167 -- .../codemirror/mode/xml/index.html | 42 - .../LocalFilesEditor/codemirror/mode/xml/xml.css | 7 - .../LocalFilesEditor/codemirror/mode/xml/xml.js | 206 --- plugins/LocalFilesEditor/include/css.inc.php | 150 -- plugins/LocalFilesEditor/include/functions.inc.php | 114 -- plugins/LocalFilesEditor/include/lang.inc.php | 69 - plugins/LocalFilesEditor/include/localconf.inc.php | 26 - plugins/LocalFilesEditor/include/plug.inc.php | 25 - plugins/LocalFilesEditor/include/tpl.inc.php | 157 -- plugins/LocalFilesEditor/index.php | 30 - .../language/af_ZA/description.txt | 1 - plugins/LocalFilesEditor/language/af_ZA/index.php | 7 - .../language/af_ZA/plugin.lang.php | 52 - .../language/ar_SA/description.txt | 1 - plugins/LocalFilesEditor/language/ar_SA/index.php | 30 - .../language/ar_SA/plugin.lang.php | 53 - .../language/bg_BG/description.txt | 2 - plugins/LocalFilesEditor/language/bg_BG/index.php | 7 - .../language/bg_BG/plugin.lang.php | 52 - .../language/br_FR/description.txt | 1 - plugins/LocalFilesEditor/language/br_FR/index.php | 7 - .../language/br_FR/plugin.lang.php | 53 - .../language/ca_ES/description.txt | 1 - .../language/ca_ES/plugin.lang.php | 53 - .../language/cs_CZ/description.txt | 1 - plugins/LocalFilesEditor/language/cs_CZ/index.php | 30 - .../language/cs_CZ/plugin.lang.php | 54 - .../language/da_DK/description.txt | 1 - .../language/da_DK/plugin.lang.php | 53 - .../language/de_DE/description.txt | 1 - plugins/LocalFilesEditor/language/de_DE/index.php | 30 - .../language/de_DE/plugin.lang.php | 53 - .../language/el_GR/description.txt | 1 - .../language/el_GR/plugin.lang.php | 53 - .../language/en_UK/description.txt | 1 - plugins/LocalFilesEditor/language/en_UK/index.php | 30 - .../language/en_UK/plugin.lang.php | 55 - .../language/eo_EO/description.txt | 1 - .../language/eo_EO/plugin.lang.php | 53 - .../language/es_ES/description.txt | 1 - plugins/LocalFilesEditor/language/es_ES/index.php | 30 - .../language/es_ES/plugin.lang.php | 54 - .../language/et_EE/description.txt | 1 - plugins/LocalFilesEditor/language/et_EE/index.php | 7 - .../language/et_EE/plugin.lang.php | 53 - .../language/fa_IR/description.txt | 1 - plugins/LocalFilesEditor/language/fa_IR/index.php | 7 - .../language/fa_IR/plugin.lang.php | 54 - .../language/fi_FI/description.txt | 1 - .../language/fi_FI/plugin.lang.php | 53 - .../language/fr_CA/description.txt | 1 - plugins/LocalFilesEditor/language/fr_CA/index.php | 30 - .../language/fr_CA/plugin.lang.php | 55 - .../language/fr_FR/description.txt | 1 - plugins/LocalFilesEditor/language/fr_FR/index.php | 30 - .../language/fr_FR/plugin.lang.php | 54 - .../language/gl_ES/description.txt | 1 - .../language/gl_ES/plugin.lang.php | 53 - .../language/he_IL/description.txt | 1 - plugins/LocalFilesEditor/language/he_IL/index.php | 30 - .../language/he_IL/plugin.lang.php | 54 - .../language/hr_HR/description.txt | 1 - plugins/LocalFilesEditor/language/hr_HR/index.php | 30 - .../language/hr_HR/plugin.lang.php | 52 - .../language/hu_HU/description.txt | 1 - plugins/LocalFilesEditor/language/hu_HU/index.php | 30 - .../language/hu_HU/plugin.lang.php | 54 - plugins/LocalFilesEditor/language/index.php | 30 - .../language/it_IT/description.txt | 1 - plugins/LocalFilesEditor/language/it_IT/index.php | 30 - .../language/it_IT/plugin.lang.php | 53 - .../language/ja_JP/description.txt | 1 - plugins/LocalFilesEditor/language/ja_JP/index.php | 30 - .../language/ja_JP/plugin.lang.php | 54 - .../language/ka_GE/description.txt | 1 - plugins/LocalFilesEditor/language/ka_GE/index.php | 30 - .../language/ka_GE/plugin.lang.php | 54 - .../language/kn_IN/description.txt | 1 - .../language/kn_IN/plugin.lang.php | 52 - .../language/lt_LT/description.txt | 1 - .../language/lt_LT/plugin.lang.php | 53 - .../language/lv_LV/description.txt | 1 - plugins/LocalFilesEditor/language/lv_LV/index.php | 30 - .../language/lv_LV/plugin.lang.php | 54 - .../language/mn_MN/description.txt | 1 - plugins/LocalFilesEditor/language/mn_MN/index.php | 7 - .../language/mn_MN/plugin.lang.php | 52 - .../language/nb_NO/description.txt | 1 - plugins/LocalFilesEditor/language/nb_NO/index.php | 30 - .../language/nb_NO/plugin.lang.php | 51 - .../language/nl_NL/description.txt | 1 - plugins/LocalFilesEditor/language/nl_NL/index.php | 30 - .../language/nl_NL/plugin.lang.php | 54 - .../language/nn_NO/description.txt | 1 - .../language/nn_NO/plugin.lang.php | 53 - .../language/pl_PL/description.txt | 1 - plugins/LocalFilesEditor/language/pl_PL/index.php | 30 - .../language/pl_PL/plugin.lang.php | 55 - .../language/pt_BR/description.txt | 1 - plugins/LocalFilesEditor/language/pt_BR/index.php | 7 - .../language/pt_BR/plugin.lang.php | 52 - .../language/pt_PT/description.txt | 1 - plugins/LocalFilesEditor/language/pt_PT/index.php | 30 - .../language/pt_PT/plugin.lang.php | 54 - .../language/ro_RO/description.txt | 1 - .../language/ro_RO/plugin.lang.php | 53 - .../language/ru_RU/description.txt | 1 - plugins/LocalFilesEditor/language/ru_RU/index.php | 30 - .../language/ru_RU/plugin.lang.php | 53 - .../language/sh_RS/description.txt | 1 - .../language/sh_RS/plugin.lang.php | 52 - .../language/sk_SK/description.txt | 1 - plugins/LocalFilesEditor/language/sk_SK/index.php | 30 - .../language/sk_SK/plugin.lang.php | 54 - .../language/sl_SI/description.txt | 1 - .../language/sl_SI/plugin.lang.php | 53 - .../language/sr_RS/description.txt | 1 - plugins/LocalFilesEditor/language/sr_RS/index.php | 30 - .../language/sr_RS/plugin.lang.php | 53 - .../language/sv_SE/description.txt | 1 - plugins/LocalFilesEditor/language/sv_SE/index.php | 30 - .../language/sv_SE/plugin.lang.php | 53 - .../language/ta_IN/description.txt | 3 - .../language/ta_IN/plugin.lang.php | 55 - .../language/th_TH/description.txt | 1 - plugins/LocalFilesEditor/language/th_TH/index.php | 30 - .../language/th_TH/plugin.lang.php | 54 - .../language/tr_TR/description.txt | 1 - plugins/LocalFilesEditor/language/tr_TR/index.php | 30 - .../language/tr_TR/plugin.lang.php | 55 - .../language/uk_UA/description.txt | 1 - .../language/uk_UA/plugin.lang.php | 53 - .../language/vi_VN/description.txt | 1 - plugins/LocalFilesEditor/language/vi_VN/index.php | 30 - .../language/vi_VN/plugin.lang.php | 53 - .../language/zh_CN/description.txt | 1 - plugins/LocalFilesEditor/language/zh_CN/index.php | 30 - .../language/zh_CN/plugin.lang.php | 53 - .../language/zh_HK/description.txt | 1 - .../language/zh_HK/plugin.lang.php | 53 - .../language/zh_TW/description.txt | 1 - plugins/LocalFilesEditor/language/zh_TW/index.php | 30 - .../language/zh_TW/plugin.lang.php | 53 - plugins/LocalFilesEditor/main.inc.php | 70 - plugins/LocalFilesEditor/maintain.inc.php | 32 - plugins/LocalFilesEditor/show_default.php | 59 - plugins/LocalFilesEditor/template/admin.tpl | 113 -- plugins/LocalFilesEditor/template/locfiledit.css | 32 - plugins/LocalFilesEditor/template/show_default.tpl | 37 - 175 files changed, 8779 deletions(-) delete mode 100644 plugins/LocalFilesEditor/admin.php delete mode 100644 plugins/LocalFilesEditor/codemirror/lib/codemirror.css delete mode 100644 plugins/LocalFilesEditor/codemirror/lib/codemirror.js delete mode 100644 plugins/LocalFilesEditor/codemirror/lib/overlay.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/clike/clike.css delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/clike/clike.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/clike/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/css/css.css delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/css/css.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/css/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/diff/diff.css delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/diff/diff.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/diff/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/haskell/haskell.css delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/haskell/haskell.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/haskell/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/htmlmixed/htmlmixed.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/htmlmixed/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/javascript/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.css delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/php/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/php/php.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/stex/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/stex/stex.css delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/stex/stex.js delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/xml/index.html delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/xml/xml.css delete mode 100644 plugins/LocalFilesEditor/codemirror/mode/xml/xml.js delete mode 100644 plugins/LocalFilesEditor/include/css.inc.php delete mode 100644 plugins/LocalFilesEditor/include/functions.inc.php delete mode 100644 plugins/LocalFilesEditor/include/lang.inc.php delete mode 100644 plugins/LocalFilesEditor/include/localconf.inc.php delete mode 100644 plugins/LocalFilesEditor/include/plug.inc.php delete mode 100644 plugins/LocalFilesEditor/include/tpl.inc.php delete mode 100644 plugins/LocalFilesEditor/index.php delete mode 100755 plugins/LocalFilesEditor/language/af_ZA/description.txt delete mode 100644 plugins/LocalFilesEditor/language/af_ZA/index.php delete mode 100755 plugins/LocalFilesEditor/language/af_ZA/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/ar_SA/description.txt delete mode 100644 plugins/LocalFilesEditor/language/ar_SA/index.php delete mode 100644 plugins/LocalFilesEditor/language/ar_SA/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/bg_BG/description.txt delete mode 100644 plugins/LocalFilesEditor/language/bg_BG/index.php delete mode 100755 plugins/LocalFilesEditor/language/bg_BG/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/br_FR/description.txt delete mode 100644 plugins/LocalFilesEditor/language/br_FR/index.php delete mode 100755 plugins/LocalFilesEditor/language/br_FR/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/ca_ES/description.txt delete mode 100755 plugins/LocalFilesEditor/language/ca_ES/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/cs_CZ/description.txt delete mode 100644 plugins/LocalFilesEditor/language/cs_CZ/index.php delete mode 100644 plugins/LocalFilesEditor/language/cs_CZ/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/da_DK/description.txt delete mode 100755 plugins/LocalFilesEditor/language/da_DK/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/de_DE/description.txt delete mode 100644 plugins/LocalFilesEditor/language/de_DE/index.php delete mode 100644 plugins/LocalFilesEditor/language/de_DE/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/el_GR/description.txt delete mode 100755 plugins/LocalFilesEditor/language/el_GR/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/en_UK/description.txt delete mode 100644 plugins/LocalFilesEditor/language/en_UK/index.php delete mode 100644 plugins/LocalFilesEditor/language/en_UK/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/eo_EO/description.txt delete mode 100755 plugins/LocalFilesEditor/language/eo_EO/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/es_ES/description.txt delete mode 100644 plugins/LocalFilesEditor/language/es_ES/index.php delete mode 100644 plugins/LocalFilesEditor/language/es_ES/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/et_EE/description.txt delete mode 100644 plugins/LocalFilesEditor/language/et_EE/index.php delete mode 100755 plugins/LocalFilesEditor/language/et_EE/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/fa_IR/description.txt delete mode 100644 plugins/LocalFilesEditor/language/fa_IR/index.php delete mode 100755 plugins/LocalFilesEditor/language/fa_IR/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/fi_FI/description.txt delete mode 100755 plugins/LocalFilesEditor/language/fi_FI/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/fr_CA/description.txt delete mode 100644 plugins/LocalFilesEditor/language/fr_CA/index.php delete mode 100644 plugins/LocalFilesEditor/language/fr_CA/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/fr_FR/description.txt delete mode 100644 plugins/LocalFilesEditor/language/fr_FR/index.php delete mode 100644 plugins/LocalFilesEditor/language/fr_FR/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/gl_ES/description.txt delete mode 100755 plugins/LocalFilesEditor/language/gl_ES/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/he_IL/description.txt delete mode 100644 plugins/LocalFilesEditor/language/he_IL/index.php delete mode 100644 plugins/LocalFilesEditor/language/he_IL/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/hr_HR/description.txt delete mode 100644 plugins/LocalFilesEditor/language/hr_HR/index.php delete mode 100644 plugins/LocalFilesEditor/language/hr_HR/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/hu_HU/description.txt delete mode 100644 plugins/LocalFilesEditor/language/hu_HU/index.php delete mode 100644 plugins/LocalFilesEditor/language/hu_HU/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/index.php delete mode 100644 plugins/LocalFilesEditor/language/it_IT/description.txt delete mode 100644 plugins/LocalFilesEditor/language/it_IT/index.php delete mode 100644 plugins/LocalFilesEditor/language/it_IT/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/ja_JP/description.txt delete mode 100644 plugins/LocalFilesEditor/language/ja_JP/index.php delete mode 100644 plugins/LocalFilesEditor/language/ja_JP/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/ka_GE/description.txt delete mode 100644 plugins/LocalFilesEditor/language/ka_GE/index.php delete mode 100644 plugins/LocalFilesEditor/language/ka_GE/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/kn_IN/description.txt delete mode 100755 plugins/LocalFilesEditor/language/kn_IN/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/lt_LT/description.txt delete mode 100755 plugins/LocalFilesEditor/language/lt_LT/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/lv_LV/description.txt delete mode 100644 plugins/LocalFilesEditor/language/lv_LV/index.php delete mode 100644 plugins/LocalFilesEditor/language/lv_LV/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/mn_MN/description.txt delete mode 100644 plugins/LocalFilesEditor/language/mn_MN/index.php delete mode 100755 plugins/LocalFilesEditor/language/mn_MN/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/nb_NO/description.txt delete mode 100644 plugins/LocalFilesEditor/language/nb_NO/index.php delete mode 100644 plugins/LocalFilesEditor/language/nb_NO/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/nl_NL/description.txt delete mode 100644 plugins/LocalFilesEditor/language/nl_NL/index.php delete mode 100644 plugins/LocalFilesEditor/language/nl_NL/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/nn_NO/description.txt delete mode 100755 plugins/LocalFilesEditor/language/nn_NO/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/pl_PL/description.txt delete mode 100644 plugins/LocalFilesEditor/language/pl_PL/index.php delete mode 100644 plugins/LocalFilesEditor/language/pl_PL/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/pt_BR/description.txt delete mode 100644 plugins/LocalFilesEditor/language/pt_BR/index.php delete mode 100755 plugins/LocalFilesEditor/language/pt_BR/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/pt_PT/description.txt delete mode 100644 plugins/LocalFilesEditor/language/pt_PT/index.php delete mode 100644 plugins/LocalFilesEditor/language/pt_PT/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/ro_RO/description.txt delete mode 100755 plugins/LocalFilesEditor/language/ro_RO/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/ru_RU/description.txt delete mode 100644 plugins/LocalFilesEditor/language/ru_RU/index.php delete mode 100644 plugins/LocalFilesEditor/language/ru_RU/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/sh_RS/description.txt delete mode 100755 plugins/LocalFilesEditor/language/sh_RS/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/sk_SK/description.txt delete mode 100644 plugins/LocalFilesEditor/language/sk_SK/index.php delete mode 100644 plugins/LocalFilesEditor/language/sk_SK/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/sl_SI/description.txt delete mode 100755 plugins/LocalFilesEditor/language/sl_SI/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/sr_RS/description.txt delete mode 100644 plugins/LocalFilesEditor/language/sr_RS/index.php delete mode 100644 plugins/LocalFilesEditor/language/sr_RS/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/sv_SE/description.txt delete mode 100644 plugins/LocalFilesEditor/language/sv_SE/index.php delete mode 100644 plugins/LocalFilesEditor/language/sv_SE/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/ta_IN/description.txt delete mode 100755 plugins/LocalFilesEditor/language/ta_IN/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/th_TH/description.txt delete mode 100644 plugins/LocalFilesEditor/language/th_TH/index.php delete mode 100644 plugins/LocalFilesEditor/language/th_TH/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/tr_TR/description.txt delete mode 100644 plugins/LocalFilesEditor/language/tr_TR/index.php delete mode 100644 plugins/LocalFilesEditor/language/tr_TR/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/uk_UA/description.txt delete mode 100644 plugins/LocalFilesEditor/language/uk_UA/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/vi_VN/description.txt delete mode 100644 plugins/LocalFilesEditor/language/vi_VN/index.php delete mode 100644 plugins/LocalFilesEditor/language/vi_VN/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/zh_CN/description.txt delete mode 100644 plugins/LocalFilesEditor/language/zh_CN/index.php delete mode 100644 plugins/LocalFilesEditor/language/zh_CN/plugin.lang.php delete mode 100755 plugins/LocalFilesEditor/language/zh_HK/description.txt delete mode 100755 plugins/LocalFilesEditor/language/zh_HK/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/language/zh_TW/description.txt delete mode 100644 plugins/LocalFilesEditor/language/zh_TW/index.php delete mode 100644 plugins/LocalFilesEditor/language/zh_TW/plugin.lang.php delete mode 100644 plugins/LocalFilesEditor/main.inc.php delete mode 100644 plugins/LocalFilesEditor/maintain.inc.php delete mode 100644 plugins/LocalFilesEditor/show_default.php delete mode 100644 plugins/LocalFilesEditor/template/admin.tpl delete mode 100644 plugins/LocalFilesEditor/template/locfiledit.css delete mode 100644 plugins/LocalFilesEditor/template/show_default.tpl (limited to 'plugins/LocalFilesEditor') diff --git a/plugins/LocalFilesEditor/admin.php b/plugins/LocalFilesEditor/admin.php deleted file mode 100644 index f9f297bd5..000000000 --- a/plugins/LocalFilesEditor/admin.php +++ /dev/null @@ -1,151 +0,0 @@ -add($tab, l10n('locfiledit_onglet_'.$tab), $my_base_url.'-'.$tab); -} -$tabsheet->select($page['tab']); -$tabsheet->assign(); - -include_once(LOCALEDIT_PATH.'include/'.$page['tab'].'.inc.php'); - -// +-----------------------------------------------------------------------+ -// | Load backup file -// +-----------------------------------------------------------------------+ -if (isset($_POST['restore'])) -{ - $content_file = file_get_contents(get_bak_file($edited_file)); - $page['infos'][] = l10n('locfiledit_bak_loaded1'); - $page['infos'][] = l10n('locfiledit_bak_loaded2'); -} - -// +-----------------------------------------------------------------------+ -// | Save file -// +-----------------------------------------------------------------------+ -if (isset($_POST['submit'])) -{ - check_pwg_token(); - - if (!is_webmaster()) - { - $page['errors'][] = l10n('locfiledit_webmaster_only'); - } - else - { - $content_file = stripslashes($_POST['text']); - if (get_extension($edited_file) == 'php') - { - $content_file = eval_syntax($content_file); - } - if ($content_file === false) - { - $page['errors'][] = l10n('locfiledit_syntax_error'); - } - else - { - if ($page['tab'] == 'plug' and !is_dir(PHPWG_PLUGINS_PATH . 'PersonalPlugin')) - { - @mkdir(PHPWG_PLUGINS_PATH . "PersonalPlugin"); - } - if (file_exists($edited_file)) - { - @copy($edited_file, get_bak_file($edited_file)); - $page['infos'][] = l10n('locfiledit_saved_bak', substr(get_bak_file($edited_file), 2)); - } - - if ($file = @fopen($edited_file , "w")) - { - @fwrite($file , $content_file); - @fclose($file); - array_unshift($page['infos'], l10n('locfiledit_save_config')); - $template->delete_compiled_templates(); - } - else - { - $page['errors'][] = l10n('locfiledit_cant_save'); - } - } - } -} - -// +-----------------------------------------------------------------------+ -// | template initialization -// +-----------------------------------------------------------------------+ -$template->set_filenames(array( - 'plugin_admin_content' => dirname(__FILE__) . '/template/admin.tpl')); - -if (!empty($edited_file)) -{ - if (!empty($page['errors'])) - { - $content_file = stripslashes($_POST['text']); - } - $template->assign('zone_edit', - array( - 'EDITED_FILE' => $edited_file, - 'CONTENT_FILE' => htmlspecialchars($content_file), - 'FILE_NAME' => trim($edited_file, './\\') - ) - ); - if (file_exists(get_bak_file($edited_file))) - { - $template->assign('restore', true); - } - if (file_exists($edited_file)) - { - $template->assign('restore_infos', true); - } -} - -$template->assign(array( - 'F_ACTION' => PHPWG_ROOT_PATH.'admin.php?page=plugin-LocalFilesEditor-'.$page['tab'], - 'LOCALEDIT_PATH' => LOCALEDIT_PATH, - 'PWG_TOKEN' => get_pwg_token(), - 'CODEMIRROR_MODE' => @$codemirror_mode - ) -); - -$template->assign_var_from_handle('ADMIN_CONTENT', 'plugin_admin_content'); - -?> diff --git a/plugins/LocalFilesEditor/codemirror/lib/codemirror.css b/plugins/LocalFilesEditor/codemirror/lib/codemirror.css deleted file mode 100644 index 578af41ae..000000000 --- a/plugins/LocalFilesEditor/codemirror/lib/codemirror.css +++ /dev/null @@ -1,53 +0,0 @@ -.CodeMirror { - overflow: auto; - height: 300px; - line-height: 1em; - font-family: monospace; - _position: relative; /* IE6 hack */ -} - -.CodeMirror-gutter { - position: absolute; left: 0; top: 0; - background-color: #f7f7f7; - border-right: 1px solid #eee; - min-width: 2em; - height: 100%; -} -.CodeMirror-gutter-text { - color: #aaa; - text-align: right; - padding: .4em .2em .4em .4em; -} -.CodeMirror-lines { - padding: .4em; -} - -.CodeMirror pre { - -moz-border-radius: 0; - -webkit-border-radius: 0; - -o-border-radius: 0; - border-radius: 0; - border-width: 0; margin: 0; padding: 0; background: transparent; - font-family: inherit; -} - -.CodeMirror-cursor { - z-index: 10; - position: absolute; - visibility: hidden; - border-left: 1px solid black !important; -} -.CodeMirror-focused .CodeMirror-cursor { - visibility: visible; -} - -span.CodeMirror-selected { - background: #ccc !important; - color: HighlightText !important; -} -.CodeMirror-focused span.CodeMirror-selected { - background: Highlight !important; -} - -.CodeMirror-matchingbracket {color: #0f0 !important;} -.CodeMirror-nonmatchingbracket {color: #f22 !important;} diff --git a/plugins/LocalFilesEditor/codemirror/lib/codemirror.js b/plugins/LocalFilesEditor/codemirror/lib/codemirror.js deleted file mode 100644 index 390e68c1f..000000000 --- a/plugins/LocalFilesEditor/codemirror/lib/codemirror.js +++ /dev/null @@ -1,1915 +0,0 @@ -// All functions that need access to the editor's state live inside -// the CodeMirror function. Below that, at the bottom of the file, -// some utilities are defined. - -// CodeMirror is the only global var we claim -var CodeMirror = (function() { - // This is the function that produces an editor instance. It's - // closure is used to store the editor state. - function CodeMirror(place, givenOptions) { - // Determine effective options based on given values and defaults. - var options = {}, defaults = CodeMirror.defaults; - for (var opt in defaults) - if (defaults.hasOwnProperty(opt)) - options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt]; - - // The element in which the editor lives. Takes care of scrolling - // (if enabled). - var wrapper = document.createElement("div"); - wrapper.className = "CodeMirror"; - // This mess creates the base DOM structure for the editor. - wrapper.innerHTML = - '
' + // Set to the height of the text, causes scrolling - '
' + // To measure line/char size
-           'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
' + - '
' + // Moved around its parent to cover visible view - '
' + - '
' + // Wraps and hides input textarea - '
' + - // Provides positioning relative to (visible) text origin - '
' + - '
 
' + // Absolutely positioned blinky cursor - '
'; // This DIV contains the actual code - if (place.appendChild) place.appendChild(wrapper); else place(wrapper); - // I've never seen more elegant code in my life. - var code = wrapper.firstChild, measure = code.firstChild, mover = measure.nextSibling, - gutter = mover.firstChild, gutterText = gutter.firstChild, - inputDiv = gutter.nextSibling, input = inputDiv.firstChild, - lineSpace = inputDiv.nextSibling.firstChild, cursor = lineSpace.firstChild, lineDiv = cursor.nextSibling; - if (options.tabindex != null) input.tabindex = options.tabindex; - if (!options.gutter && !options.lineNumbers) gutter.style.display = "none"; - - // Delayed object wrap timeouts, making sure only one is active. blinker holds an interval. - var poll = new Delayed(), highlight = new Delayed(), blinker; - - // mode holds a mode API object. lines an array of Line objects - // (see Line constructor), work an array of lines that should be - // parsed, and history the undo history (instance of History - // constructor). - var mode, lines = [new Line("")], work, history = new History(), focused; - loadMode(); - // The selection. These are always maintained to point at valid - // positions. Inverted is used to remember that the user is - // selecting bottom-to-top. - var sel = {from: {line: 0, ch: 0}, to: {line: 0, ch: 0}, inverted: false}; - // Selection-related flags. shiftSelecting obviously tracks - // whether the user is holding shift. reducedSelection is a hack - // to get around the fact that we can't create inverted - // selections. See below. - var shiftSelecting, reducedSelection; - // Variables used by startOperation/endOperation to track what - // happened during the operation. - var updateInput, changes, textChanged, selectionChanged, leaveInputAlone; - // Current visible range (may be bigger than the view window). - var showingFrom = 0, showingTo = 0, lastHeight = 0, curKeyId = null; - // editing will hold an object describing the things we put in the - // textarea, to help figure out whether something changed. - // bracketHighlighted is used to remember that a backet has been - // marked. - var editing, bracketHighlighted; - - // Initialize the content. Somewhat hacky (delayed prepareInput) - // to work around browser issues. - operation(function(){setValue(options.value || ""); updateInput = false;})(); - setTimeout(prepareInput, 20); - - // Register our event handlers. - connect(wrapper, "mousedown", operation(onMouseDown)); - // Gecko browsers fire contextmenu *after* opening the menu, at - // which point we can't mess with it anymore. Context menu is - // handled in onMouseDown for Gecko. - if (!gecko) connect(wrapper, "contextmenu", operation(onContextMenu)); - connect(code, "dblclick", operation(onDblClick)); - connect(wrapper, "scroll", function() {updateDisplay([]); if (options.onScroll) options.onScroll(instance);}); - connect(window, "resize", function() {updateDisplay(true);}); - connect(input, "keyup", operation(onKeyUp)); - connect(input, "keydown", operation(onKeyDown)); - connect(input, "keypress", operation(onKeyPress)); - connect(input, "focus", onFocus); - connect(input, "blur", onBlur); - - connect(wrapper, "dragenter", function(e){e.stop();}); - connect(wrapper, "dragover", function(e){e.stop();}); - connect(wrapper, "drop", operation(onDrop)); - connect(wrapper, "paste", function(){input.focus(); fastPoll();}); - connect(input, "paste", function(){fastPoll();}); - connect(input, "cut", function(){fastPoll();}); - - if (document.activeElement == input) onFocus(); - else onBlur(); - - function isLine(l) {return l >= 0 && l < lines.length;} - // The instance object that we'll return. Mostly calls out to - // local functions in the CodeMirror function. Some do some extra - // range checking and/or clipping. operation is used to wrap the - // call so that changes it makes are tracked, and the display is - // updated afterwards. - var instance = { - getValue: getValue, - setValue: operation(setValue), - getSelection: getSelection, - replaceSelection: operation(replaceSelection), - focus: function(){input.focus(); onFocus(); fastPoll();}, - setOption: function(option, value) { - options[option] = value; - if (option == "lineNumbers" || option == "gutter") gutterChanged(); - else if (option == "mode" || option == "indentUnit") loadMode(); - }, - getOption: function(option) {return options[option];}, - undo: operation(undo), - redo: operation(redo), - indentLine: operation(function(n) {if (isLine(n)) indentLine(n, "smart");}), - historySize: function() {return {undo: history.done.length, redo: history.undone.length};}, - matchBrackets: operation(function(){matchBrackets(true);}), - getTokenAt: function(pos) { - pos = clipPos(pos); - return lines[pos.line].getTokenAt(mode, getStateBefore(pos.line), pos.ch); - }, - cursorCoords: function(start){ - if (start == null) start = sel.inverted; - return pageCoords(start ? sel.from : sel.to); - }, - charCoords: function(pos){return pageCoords(clipPos(pos));}, - coordsChar: function(coords) { - var off = eltOffset(lineSpace); - var line = Math.min(showingTo - 1, showingFrom + Math.floor(coords.y / lineHeight())); - return clipPos({line: line, ch: charFromX(clipLine(line), coords.x)}); - }, - getSearchCursor: function(query, pos, caseFold) {return new SearchCursor(query, pos, caseFold);}, - markText: operation(function(a, b, c){return operation(markText(a, b, c));}), - setMarker: addGutterMarker, - clearMarker: removeGutterMarker, - setLineClass: operation(setLineClass), - lineInfo: lineInfo, - addWidget: function(pos, node, scroll) { - var pos = localCoords(clipPos(pos), true); - node.style.top = (showingFrom * lineHeight() + pos.yBot + paddingTop()) + "px"; - node.style.left = (pos.x + paddingLeft()) + "px"; - code.appendChild(node); - if (scroll) - scrollIntoView(pos.x, pos.yBot, pos.x + node.offsetWidth, pos.yBot + node.offsetHeight); - }, - - lineCount: function() {return lines.length;}, - getCursor: function(start) { - if (start == null) start = sel.inverted; - return copyPos(start ? sel.from : sel.to); - }, - somethingSelected: function() {return !posEq(sel.from, sel.to);}, - setCursor: operation(function(line, ch) { - if (ch == null && typeof line.line == "number") setCursor(line.line, line.ch); - else setCursor(line, ch); - }), - setSelection: operation(function(from, to) {setSelection(clipPos(from), clipPos(to || from));}), - getLine: function(line) {if (isLine(line)) return lines[line].text;}, - setLine: operation(function(line, text) { - if (isLine(line)) replaceRange(text, {line: line, ch: 0}, {line: line, ch: lines[line].text.length}); - }), - removeLine: operation(function(line) { - if (isLine(line)) replaceRange("", {line: line, ch: 0}, clipPos({line: line+1, ch: 0})); - }), - replaceRange: operation(replaceRange), - getRange: function(from, to) {return getRange(clipPos(from), clipPos(to));}, - - operation: function(f){return operation(f)();}, - refresh: function(){updateDisplay(true);}, - getInputField: function(){return input;}, - getWrapperElement: function(){return wrapper;} - }; - - function setValue(code) { - history = null; - var top = {line: 0, ch: 0}; - updateLines(top, {line: lines.length - 1, ch: lines[lines.length-1].text.length}, - splitLines(code), top, top); - history = new History(); - } - function getValue(code) { - var text = []; - for (var i = 0, l = lines.length; i < l; ++i) - text.push(lines[i].text); - return text.join("\n"); - } - - function onMouseDown(e) { - // First, see if this is a click in the gutter - for (var n = e.target(); n != wrapper; n = n.parentNode) - if (n.parentNode == gutterText) { - if (options.onGutterClick) - options.onGutterClick(instance, indexOf(gutterText.childNodes, n) + showingFrom); - return e.stop(); - } - - if (gecko && e.button() == 3) onContextMenu(e); - if (e.button() != 1) return; - // For button 1, if it was clicked inside the editor - // (posFromMouse returning non-null), we have to adjust the - // selection. - var start = posFromMouse(e), last = start, going; - if (!start) {if (e.target() == wrapper) e.stop(); return;} - setCursor(start.line, start.ch, false); - - if (!focused) onFocus(); - e.stop(); - // And then we have to see if it's a drag event, in which case - // the dragged-over text must be selected. - function end() { - input.focus(); - updateInput = true; - move(); up(); - } - function extend(e) { - var cur = posFromMouse(e, true); - if (cur && !posEq(cur, last)) { - if (!focused) onFocus(); - last = cur; - setSelection(start, cur); - updateInput = false; - var visible = visibleLines(); - if (cur.line >= visible.to || cur.line < visible.from) - going = setTimeout(operation(function(){extend(e);}), 150); - } - } - - var move = connect(document, "mousemove", operation(function(e) { - clearTimeout(going); - e.stop(); - extend(e); - }), true); - var up = connect(document, "mouseup", operation(function(e) { - clearTimeout(going); - var cur = posFromMouse(e); - if (cur) setSelection(start, cur); - e.stop(); - end(); - }), true); - } - function onDblClick(e) { - var pos = posFromMouse(e); - if (!pos) return; - selectWordAt(pos); - e.stop(); - } - function onDrop(e) { - var pos = posFromMouse(e, true), files = e.e.dataTransfer.files; - if (!pos || options.readOnly) return; - if (files && files.length && window.FileReader && window.File) { - var n = files.length, text = Array(n), read = 0; - for (var i = 0; i < n; ++i) loadFile(files[i], i); - function loadFile(file, i) { - var reader = new FileReader; - reader.onload = function() { - text[i] = reader.result; - if (++read == n) replaceRange(text.join(""), clipPos(pos), clipPos(pos)); - }; - reader.readAsText(file); - } - } - else { - try { - var text = e.e.dataTransfer.getData("Text"); - if (text) replaceRange(text, pos, pos); - } - catch(e){} - } - } - function onKeyDown(e) { - if (!focused) onFocus(); - - var code = e.e.keyCode; - // Tries to detect ctrl on non-mac, cmd on mac. - var mod = (mac ? e.e.metaKey : e.e.ctrlKey) && !e.e.altKey, anyMod = e.e.ctrlKey || e.e.altKey || e.e.metaKey; - if (code == 16 || e.e.shiftKey) shiftSelecting = shiftSelecting || (sel.inverted ? sel.to : sel.from); - else shiftSelecting = null; - // First give onKeyEvent option a chance to handle this. - if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e.e))) return; - - if (code == 33 || code == 34) {scrollPage(code == 34); return e.stop();} // page up/down - if (mod && (code == 36 || code == 35)) {scrollEnd(code == 36); return e.stop();} // ctrl-home/end - if (mod && code == 65) {selectAll(); return e.stop();} // ctrl-a - if (!options.readOnly) { - if (!anyMod && code == 13) {return;} // enter - if (!anyMod && code == 9 && handleTab(e.e.shiftKey)) return e.stop(); // tab - if (mod && code == 90) {undo(); return e.stop();} // ctrl-z - if (mod && ((e.e.shiftKey && code == 90) || code == 89)) {redo(); return e.stop();} // ctrl-shift-z, ctrl-y - } - - // Key id to use in the movementKeys map. We also pass it to - // fastPoll in order to 'self learn'. We need this because - // reducedSelection, the hack where we collapse the selection to - // its start when it is inverted and a movement key is pressed - // (and later restore it again), shouldn't be used for - // non-movement keys. - curKeyId = (mod ? "c" : "") + code; - if (sel.inverted && movementKeys.hasOwnProperty(curKeyId)) { - var range = selRange(input); - if (range) { - reducedSelection = {anchor: range.start}; - setSelRange(input, range.start, range.start); - } - } - fastPoll(curKeyId); - } - function onKeyUp(e) { - if (reducedSelection) { - reducedSelection = null; - updateInput = true; - } - if (e.e.keyCode == 16) shiftSelecting = null; - } - function onKeyPress(e) { - if (options.onKeyEvent && options.onKeyEvent(instance, addStop(e.e))) return; - if (options.electricChars && mode.electricChars) { - var ch = String.fromCharCode(e.e.charCode == null ? e.e.keyCode : e.e.charCode); - if (mode.electricChars.indexOf(ch) > -1) - setTimeout(operation(function() {indentLine(sel.to.line, "smart");}), 50); - } - var code = e.e.keyCode; - // Re-stop tab and enter. Necessary on some browsers. - if (code == 13) {handleEnter(); e.stop();} - else if (code == 9 && options.tabMode != "default") e.stop(); - else fastPoll(curKeyId); - } - - function onFocus() { - if (!focused && options.onFocus) options.onFocus(instance); - focused = true; - slowPoll(); - if (wrapper.className.search(/\bCodeMirror-focused\b/) == -1) - wrapper.className += " CodeMirror-focused"; - restartBlink(); - } - function onBlur() { - if (focused && options.onBlur) options.onBlur(instance); - clearInterval(blinker); - shiftSelecting = null; - focused = false; - wrapper.className = wrapper.className.replace(" CodeMirror-focused", ""); - } - - // Replace the range from from to to by the strings in newText. - // Afterwards, set the selection to selFrom, selTo. - function updateLines(from, to, newText, selFrom, selTo) { - if (history) { - var old = []; - for (var i = from.line, e = to.line + 1; i < e; ++i) old.push(lines[i].text); - history.addChange(from.line, newText.length, old); - while (history.done.length > options.undoDepth) history.done.shift(); - } - updateLinesNoUndo(from, to, newText, selFrom, selTo); - } - function unredoHelper(from, to) { - var change = from.pop(); - if (change) { - var replaced = [], end = change.start + change.added; - for (var i = change.start; i < end; ++i) replaced.push(lines[i].text); - to.push({start: change.start, added: change.old.length, old: replaced}); - var pos = clipPos({line: change.start + change.old.length - 1, - ch: editEnd(replaced[replaced.length-1], change.old[change.old.length-1])}); - updateLinesNoUndo({line: change.start, ch: 0}, {line: end - 1, ch: lines[end-1].text.length}, change.old, pos, pos); - } - } - function undo() {unredoHelper(history.done, history.undone);} - function redo() {unredoHelper(history.undone, history.done);} - - function updateLinesNoUndo(from, to, newText, selFrom, selTo) { - var nlines = to.line - from.line, firstLine = lines[from.line], lastLine = lines[to.line]; - // First adjust the line structure, taking some care to leave highlighting intact. - if (firstLine == lastLine) { - if (newText.length == 1) - firstLine.replace(from.ch, to.ch, newText[0]); - else { - lastLine = firstLine.split(to.ch, newText[newText.length-1]); - var spliceargs = [from.line + 1, nlines]; - firstLine.replace(from.ch, firstLine.text.length, newText[0]); - for (var i = 1, e = newText.length - 1; i < e; ++i) spliceargs.push(new Line(newText[i])); - spliceargs.push(lastLine); - lines.splice.apply(lines, spliceargs); - } - } - else if (newText.length == 1) { - firstLine.replace(from.ch, firstLine.text.length, newText[0] + lastLine.text.slice(to.ch)); - lines.splice(from.line + 1, nlines); - } - else { - var spliceargs = [from.line + 1, nlines - 1]; - firstLine.replace(from.ch, firstLine.text.length, newText[0]); - lastLine.replace(0, to.ch, newText[newText.length-1]); - for (var i = 1, e = newText.length - 1; i < e; ++i) spliceargs.push(new Line(newText[i])); - lines.splice.apply(lines, spliceargs); - } - - // Add these lines to the work array, so that they will be - // highlighted. Adjust work lines if lines were added/removed. - var newWork = [], lendiff = newText.length - nlines - 1; - for (var i = 0, l = work.length; i < l; ++i) { - var task = work[i]; - if (task < from.line) newWork.push(task); - else if (task > to.line) newWork.push(task + lendiff); - } - if (newText.length) newWork.push(from.line); - work = newWork; - startWorker(100); - // Remember that these lines changed, for updating the display - changes.push({from: from.line, to: to.line + 1, diff: lendiff}); - textChanged = true; - - // Update the selection - function updateLine(n) {return n <= Math.min(to.line, to.line + lendiff) ? n : n + lendiff;} - setSelection(selFrom, selTo, updateLine(sel.from.line), updateLine(sel.to.line)); - - // Make sure the scroll-size div has the correct height. - code.style.height = (lines.length * lineHeight() + 2 * paddingTop()) + "px"; - } - - function replaceRange(code, from, to) { - from = clipPos(from); - if (!to) to = from; else to = clipPos(to); - code = splitLines(code); - function adjustPos(pos) { - if (posLess(pos, from)) return pos; - if (!posLess(to, pos)) return end; - var line = pos.line + code.length - (to.line - from.line) - 1; - var ch = pos.ch; - if (pos.line == to.line) - ch += code[code.length-1].length - (to.ch - (to.line == from.line ? from.ch : 0)); - return {line: line, ch: ch}; - } - var end; - replaceRange1(code, from, to, function(end1) { - end = end1; - return {from: adjustPos(sel.from), to: adjustPos(sel.to)}; - }); - return end; - } - function replaceSelection(code, collapse) { - replaceRange1(splitLines(code), sel.from, sel.to, function(end) { - if (collapse == "end") return {from: end, to: end}; - else if (collapse == "start") return {from: sel.from, to: sel.from}; - else return {from: sel.from, to: end}; - }); - } - function replaceRange1(code, from, to, computeSel) { - var endch = code.length == 1 ? code[0].length + from.ch : code[code.length-1].length; - var newSel = computeSel({line: from.line + code.length - 1, ch: endch}); - updateLines(from, to, code, newSel.from, newSel.to); - } - - function getRange(from, to) { - var l1 = from.line, l2 = to.line; - if (l1 == l2) return lines[l1].text.slice(from.ch, to.ch); - var code = [lines[l1].text.slice(from.ch)]; - for (var i = l1 + 1; i < l2; ++i) code.push(lines[i].text); - code.push(lines[l2].text.slice(0, to.ch)); - return code.join("\n"); - } - function getSelection() { - return getRange(sel.from, sel.to); - } - - var pollingFast = false; // Ensures slowPoll doesn't cancel fastPoll - function slowPoll() { - if (pollingFast) return; - poll.set(2000, function() { - startOperation(); - readInput(); - if (focused) slowPoll(); - endOperation(); - }); - } - function fastPoll(keyId) { - var missed = false; - pollingFast = true; - function p() { - startOperation(); - var changed = readInput(); - if (changed == "moved" && keyId) movementKeys[keyId] = true; - if (!changed && !missed) {missed = true; poll.set(80, p);} - else {pollingFast = false; slowPoll();} - endOperation(); - } - poll.set(20, p); - } - - // Inspects the textarea, compares its state (content, selection) - // to the data in the editing variable, and updates the editor - // content or cursor if something changed. - function readInput() { - var changed = false, text = input.value, sr = selRange(input); - if (!sr) return false; - var changed = editing.text != text, rs = reducedSelection; - var moved = changed || sr.start != editing.start || sr.end != (rs ? editing.start : editing.end); - if (reducedSelection && !moved && sel.from.line == 0 && sel.from.ch == 0) - reducedSelection = null; - else if (!moved) return false; - if (changed) { - shiftSelecting = reducedSelection = null; - if (options.readOnly) {updateInput = true; return "changed";} - } - - // Compute selection start and end based on start/end offsets in textarea - function computeOffset(n, startLine) { - var pos = 0; - for (;;) { - var found = text.indexOf("\n", pos); - if (found == -1 || (text.charAt(found-1) == "\r" ? found - 1 : found) >= n) - return {line: startLine, ch: n - pos}; - ++startLine; - pos = found + 1; - } - } - var from = computeOffset(sr.start, editing.from), - to = computeOffset(sr.end, editing.from); - // Here we have to take the reducedSelection hack into account, - // so that you can, for example, press shift-up at the start of - // your selection and have the right thing happen. - if (rs) { - from = sr.start == rs.anchor ? to : from; - to = shiftSelecting ? sel.to : sr.start == rs.anchor ? from : to; - if (!posLess(from, to)) { - reducedSelection = null; - sel.inverted = false; - var tmp = from; from = to; to = tmp; - } - } - - // In some cases (cursor on same line as before), we don't have - // to update the textarea content at all. - if (from.line == to.line && from.line == sel.from.line && from.line == sel.to.line && !shiftSelecting) - updateInput = false; - - // Magic mess to extract precise edited range from the changed - // string. - if (changed) { - var start = 0, end = text.length, len = Math.min(end, editing.text.length); - var c, line = editing.from, nl = -1; - while (start < len && (c = text.charAt(start)) == editing.text.charAt(start)) { - ++start; - if (c == "\n") {line++; nl = start;} - } - var ch = nl > -1 ? start - nl : start, endline = editing.to - 1, edend = editing.text.length; - for (;;) { - c = editing.text.charAt(edend); - if (c == "\n") endline--; - if (text.charAt(end) != c) {++end; ++edend; break;} - if (edend <= start || end <= start) break; - --end; --edend; - } - var nl = editing.text.lastIndexOf("\n", edend - 1), endch = nl == -1 ? edend : edend - nl - 1; - updateLines({line: line, ch: ch}, {line: endline, ch: endch}, splitLines(text.slice(start, end)), from, to); - if (line != endline || from.line != line) updateInput = true; - } - else setSelection(from, to); - - editing.text = text; editing.start = sr.start; editing.end = sr.end; - return changed ? "changed" : moved ? "moved" : false; - } - - // Set the textarea content and selection range to match the - // editor state. - function prepareInput() { - var text = []; - var from = Math.max(0, sel.from.line - 1), to = Math.min(lines.length, sel.to.line + 2); - for (var i = from; i < to; ++i) text.push(lines[i].text); - text = input.value = text.join(lineSep); - var startch = sel.from.ch, endch = sel.to.ch; - for (var i = from; i < sel.from.line; ++i) - startch += lineSep.length + lines[i].text.length; - for (var i = from; i < sel.to.line; ++i) - endch += lineSep.length + lines[i].text.length; - editing = {text: text, from: from, to: to, start: startch, end: endch}; - setSelRange(input, startch, reducedSelection ? startch : endch); - } - - function scrollCursorIntoView() { - var cursor = localCoords(sel.inverted ? sel.from : sel.to); - return scrollIntoView(cursor.x, cursor.y, cursor.x, cursor.yBot); - } - function scrollIntoView(x1, y1, x2, y2) { - var pl = paddingLeft(), pt = paddingTop(); - y1 += pt; y2 += pt; x1 += pl; x2 += pl; - var screen = wrapper.clientHeight, screentop = wrapper.scrollTop, scrolled = false, result = true; - if (y1 < screentop) {wrapper.scrollTop = Math.max(0, y1 - 10); scrolled = true;} - else if (y2 > screentop + screen) {wrapper.scrollTop = y2 + 10 - screen; scrolled = true;} - - var screenw = wrapper.clientWidth, screenleft = wrapper.scrollLeft; - if (x1 < screenleft) {wrapper.scrollLeft = Math.max(0, x1 - 10); scrolled = true;} - else if (x2 > screenw + screenleft) { - wrapper.scrollLeft = x2 + 10 - screenw; - scrolled = true; - if (x2 > code.clientWidth) result = false; - } - if (scrolled && options.onScroll) options.onScroll(instance); - return result; - } - - function visibleLines() { - var lh = lineHeight(), top = wrapper.scrollTop - paddingTop(); - return {from: Math.min(lines.length, Math.max(0, Math.floor(top / lh))), - to: Math.min(lines.length, Math.ceil((top + wrapper.clientHeight) / lh))}; - } - // Uses a set of changes plus the current scroll position to - // determine which DOM updates have to be made, and makes the - // updates. - function updateDisplay(changes) { - if (!wrapper.clientWidth) { - showingFrom = showingTo = 0; - return; - } - // First create a range of theoretically intact lines, and punch - // holes in that using the change info. - var intact = changes === true ? [] : [{from: showingFrom, to: showingTo, domStart: 0}]; - for (var i = 0, l = changes.length || 0; i < l; ++i) { - var change = changes[i], intact2 = [], diff = change.diff || 0; - for (var j = 0, l2 = intact.length; j < l2; ++j) { - var range = intact[j]; - if (change.to <= range.from) - intact2.push({from: range.from + diff, to: range.to + diff, domStart: range.domStart}); - else if (range.to <= change.from) - intact2.push(range); - else { - if (change.from > range.from) - intact2.push({from: range.from, to: change.from, domStart: range.domStart}) - if (change.to < range.to) - intact2.push({from: change.to + diff, to: range.to + diff, - domStart: range.domStart + (change.to - range.from)}); - } - } - intact = intact2; - } - - // Then, determine which lines we'd want to see, and which - // updates have to be made to get there. - var visible = visibleLines(); - var from = Math.min(showingFrom, Math.max(visible.from - 3, 0)), - to = Math.min(lines.length, Math.max(showingTo, visible.to + 3)), - updates = [], domPos = 0, domEnd = showingTo - showingFrom, pos = from, changedLines = 0; - - for (var i = 0, l = intact.length; i < l; ++i) { - var range = intact[i]; - if (range.to <= from) continue; - if (range.from >= to) break; - if (range.domStart > domPos || range.from > pos) { - updates.push({from: pos, to: range.from, domSize: range.domStart - domPos, domStart: domPos}); - changedLines += range.from - pos; - } - pos = range.to; - domPos = range.domStart + (range.to - range.from); - } - if (domPos != domEnd || pos != to) { - changedLines += Math.abs(to - pos); - updates.push({from: pos, to: to, domSize: domEnd - domPos, domStart: domPos}); - } - - if (!updates.length) return; - lineDiv.style.display = "none"; - // If more than 30% of the screen needs update, just do a full - // redraw (which is quicker than patching) - if (changedLines > (visible.to - visible.from) * .3) - refreshDisplay(from = Math.max(visible.from - 10, 0), to = Math.min(visible.to + 7, lines.length)); - // Otherwise, only update the stuff that needs updating. - else - patchDisplay(updates); - lineDiv.style.display = ""; - - // Position the mover div to align with the lines it's supposed - // to be showing (which will cover the visible display) - var different = from != showingFrom || to != showingTo || lastHeight != wrapper.clientHeight; - showingFrom = from; showingTo = to; - mover.style.top = (from * lineHeight()) + "px"; - if (different) { - lastHeight = wrapper.clientHeight; - code.style.height = (lines.length * lineHeight() + 2 * paddingTop()) + "px"; - updateGutter(); - } - - // Since this is all rather error prone, it is honoured with the - // only assertion in the whole file. - if (lineDiv.childNodes.length != showingTo - showingFrom) - throw new Error("BAD PATCH! " + JSON.stringify(updates) + " size=" + (showingTo - showingFrom) + - " nodes=" + lineDiv.childNodes.length); - updateCursor(); - } - - function refreshDisplay(from, to) { - var html = [], start = {line: from, ch: 0}, inSel = posLess(sel.from, start) && !posLess(sel.to, start); - for (var i = from; i < to; ++i) { - var ch1 = null, ch2 = null; - if (inSel) { - ch1 = 0; - if (sel.to.line == i) {inSel = false; ch2 = sel.to.ch;} - } - else if (sel.from.line == i) { - if (sel.to.line == i) {ch1 = sel.from.ch; ch2 = sel.to.ch;} - else {inSel = true; ch1 = sel.from.ch;} - } - html.push(lines[i].getHTML(ch1, ch2, true)); - } - lineDiv.innerHTML = html.join(""); - } - function patchDisplay(updates) { - // Slightly different algorithm for IE (badInnerHTML), since - // there .innerHTML on PRE nodes is dumb, and discards - // whitespace. - var sfrom = sel.from.line, sto = sel.to.line, off = 0, - scratch = badInnerHTML && document.createElement("div"); - for (var i = 0, e = updates.length; i < e; ++i) { - var rec = updates[i]; - var extra = (rec.to - rec.from) - rec.domSize; - var nodeAfter = lineDiv.childNodes[rec.domStart + rec.domSize + off] || null; - if (badInnerHTML) - for (var j = Math.max(-extra, rec.domSize); j > 0; --j) - lineDiv.removeChild(nodeAfter ? nodeAfter.previousSibling : lineDiv.lastChild); - else if (extra) { - for (var j = Math.max(0, extra); j > 0; --j) - lineDiv.insertBefore(document.createElement("pre"), nodeAfter); - for (var j = Math.max(0, -extra); j > 0; --j) - lineDiv.removeChild(nodeAfter ? nodeAfter.previousSibling : lineDiv.lastChild); - } - var node = lineDiv.childNodes[rec.domStart + off], inSel = sfrom < rec.from && sto >= rec.from; - for (var j = rec.from; j < rec.to; ++j) { - var ch1 = null, ch2 = null; - if (inSel) { - ch1 = 0; - if (sto == j) {inSel = false; ch2 = sel.to.ch;} - } - else if (sfrom == j) { - if (sto == j) {ch1 = sel.from.ch; ch2 = sel.to.ch;} - else {inSel = true; ch1 = sel.from.ch;} - } - if (badInnerHTML) { - scratch.innerHTML = lines[j].getHTML(ch1, ch2, true); - lineDiv.insertBefore(scratch.firstChild, nodeAfter); - } - else { - node.innerHTML = lines[j].getHTML(ch1, ch2, false); - node.className = lines[j].className || ""; - node = node.nextSibling; - } - } - off += extra; - } - } - - function updateGutter() { - if (!options.gutter && !options.lineNumbers) return; - var hText = mover.offsetHeight, hEditor = wrapper.clientHeight; - gutter.style.height = (hText - hEditor < 2 ? hEditor : hText) + "px"; - var html = []; - for (var i = showingFrom; i < showingTo; ++i) { - var marker = lines[i].gutterMarker; - var text = options.lineNumbers ? i + options.firstLineNumber : null; - if (marker && marker.text) - text = marker.text.replace("%N%", text != null ? text : ""); - else if (text == null) - text = "\u00a0"; - html.push((marker && marker.style ? '
' : "
"), text, "
"); - } - gutter.style.display = "none"; - gutterText.innerHTML = html.join(""); - var minwidth = String(lines.length).length, firstNode = gutterText.firstChild, val = eltText(firstNode), pad = ""; - while (val.length + pad.length < minwidth) pad += "\u00a0"; - if (pad) firstNode.insertBefore(document.createTextNode(pad), firstNode.firstChild); - gutter.style.display = ""; - lineSpace.style.marginLeft = gutter.offsetWidth + "px"; - } - function updateCursor() { - var head = sel.inverted ? sel.from : sel.to; - var x = charX(head.line, head.ch) + "px", y = (head.line - showingFrom) * lineHeight() + "px"; - inputDiv.style.top = y; inputDiv.style.left = x; - if (posEq(sel.from, sel.to)) { - cursor.style.top = y; cursor.style.left = x; - cursor.style.display = ""; - } - else cursor.style.display = "none"; - } - - // Update the selection. Last two args are only used by - // updateLines, since they have to be expressed in the line - // numbers before the update. - function setSelection(from, to, oldFrom, oldTo) { - if (posEq(sel.from, from) && posEq(sel.to, to)) return; - var sh = shiftSelecting && clipPos(shiftSelecting); - if (posLess(to, from)) {var tmp = to; to = from; from = tmp;} - if (sh) { - if (posLess(sh, from)) from = sh; - else if (posLess(to, sh)) to = sh; - } - - var startEq = posEq(sel.to, to), endEq = posEq(sel.from, from); - if (posEq(from, to)) sel.inverted = false; - else if (startEq && !endEq) sel.inverted = true; - else if (endEq && !startEq) sel.inverted = false; - - // Some ugly logic used to only mark the lines that actually did - // see a change in selection as changed, rather than the whole - // selected range. - if (oldFrom == null) {oldFrom = sel.from.line; oldTo = sel.to.line;} - if (posEq(from, to)) { - if (!posEq(sel.from, sel.to)) - changes.push({from: oldFrom, to: oldTo + 1}); - } - else if (posEq(sel.from, sel.to)) { - changes.push({from: from.line, to: to.line + 1}); - } - else { - if (!posEq(from, sel.from)) { - if (from.line < oldFrom) - changes.push({from: from.line, to: Math.min(to.line, oldFrom) + 1}); - else - changes.push({from: oldFrom, to: Math.min(oldTo, from.line) + 1}); - } - if (!posEq(to, sel.to)) { - if (to.line < oldTo) - changes.push({from: Math.max(oldFrom, from.line), to: oldTo + 1}); - else - changes.push({from: Math.max(from.line, oldTo), to: to.line + 1}); - } - } - sel.from = from; sel.to = to; - selectionChanged = true; - } - function setCursor(line, ch) { - var pos = clipPos({line: line, ch: ch || 0}); - setSelection(pos, pos); - } - - function clipLine(n) {return Math.max(0, Math.min(n, lines.length-1));} - function clipPos(pos) { - if (pos.line < 0) return {line: 0, ch: 0}; - if (pos.line >= lines.length) return {line: lines.length-1, ch: lines[lines.length-1].text.length}; - var ch = pos.ch, linelen = lines[pos.line].text.length; - if (ch == null || ch > linelen) return {line: pos.line, ch: linelen}; - else if (ch < 0) return {line: pos.line, ch: 0}; - else return pos; - } - - function scrollPage(down) { - var linesPerPage = Math.floor(wrapper.clientHeight / lineHeight()), head = sel.inverted ? sel.from : sel.to; - setCursor(head.line + (Math.max(linesPerPage - 1, 1) * (down ? 1 : -1)), head.ch); - } - function scrollEnd(top) { - setCursor(top ? 0 : lines.length - 1); - } - function selectAll() { - var endLine = lines.length - 1; - setSelection({line: 0, ch: 0}, {line: endLine, ch: lines[endLine].text.length}); - } - function selectWordAt(pos) { - var line = lines[pos.line].text; - var start = pos.ch, end = pos.ch; - while (start > 0 && /\w/.test(line.charAt(start - 1))) --start; - while (end < line.length - 1 && /\w/.test(line.charAt(end))) ++end; - setSelection({line: pos.line, ch: start}, {line: pos.line, ch: end}); - } - function handleEnter() { - replaceSelection("\n", "end"); - if (options.enterMode != "flat") - indentLine(sel.from.line, options.enterMode == "keep" ? "prev" : "smart"); - } - function handleTab(shift) { - shiftSelecting = null; - switch (options.tabMode) { - case "default": - return false; - case "indent": - for (var i = sel.from.line, e = sel.to.line; i <= e; ++i) indentLine(i, "smart"); - break; - case "classic": - if (posEq(sel.from, sel.to)) { - if (shift) indentLine(sel.from.line, "smart"); - else replaceSelection("\t", "end"); - break; - } - case "shift": - for (var i = sel.from.line, e = sel.to.line; i <= e; ++i) indentLine(i, shift ? "subtract" : "add"); - break; - } - return true; - } - - function indentLine(n, how) { - if (how == "smart") { - if (!mode.indent) how = "prev"; - else var state = getStateBefore(n); - } - - var line = lines[n], curSpace = line.indentation(), curSpaceString = line.text.match(/^\s*/)[0], indentation; - if (how == "prev") { - if (n) indentation = lines[n-1].indentation(); - else indentation = 0; - } - else if (how == "smart") indentation = mode.indent(state, line.text.slice(curSpaceString.length)); - else if (how == "add") indentation = curSpace + options.indentUnit; - else if (how == "subtract") indentation = curSpace - options.indentUnit; - indentation = Math.max(0, indentation); - var diff = indentation - curSpace; - - if (!diff) { - if (sel.from.line != n && sel.to.line != n) return; - var indentString = curSpaceString; - } - else { - var indentString = "", pos = 0; - if (options.indentWithTabs) - for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} - while (pos < indentation) {++pos; indentString += " ";} - } - - replaceRange(indentString, {line: n, ch: 0}, {line: n, ch: curSpaceString.length}); - } - - function loadMode() { - mode = CodeMirror.getMode(options, options.mode); - for (var i = 0, l = lines.length; i < l; ++i) - lines[i].stateAfter = null; - work = [0]; - } - function gutterChanged() { - var visible = options.gutter || options.lineNumbers; - gutter.style.display = visible ? "" : "none"; - if (visible) updateGutter(); - else lineDiv.parentNode.style.marginLeft = 0; - } - - function markText(from, to, className) { - from = clipPos(from); to = clipPos(to); - var accum = []; - function add(line, from, to, className) { - var line = lines[line], mark = line.addMark(from, to, className); - mark.line = line; - accum.push(mark); - } - if (from.line == to.line) add(from.line, from.ch, to.ch, className); - else { - add(from.line, from.ch, null, className); - for (var i = from.line + 1, e = to.line; i < e; ++i) - add(i, 0, null, className); - add(to.line, 0, to.ch, className); - } - changes.push({from: from.line, to: to.line + 1}); - return function() { - var start, end; - for (var i = 0; i < accum.length; ++i) { - var mark = accum[i], found = indexOf(lines, mark.line); - mark.line.removeMark(mark); - if (found > -1) { - if (start == null) start = found; - end = found; - } - } - if (start != null) changes.push({from: start, to: end + 1}); - }; - } - - function addGutterMarker(line, text, className) { - if (typeof line == "number") line = lines[clipLine(line)]; - line.gutterMarker = {text: text, style: className}; - updateGutter(); - return line; - } - function removeGutterMarker(line) { - if (typeof line == "number") line = lines[clipLine(line)]; - line.gutterMarker = null; - updateGutter(); - } - function setLineClass(line, className) { - if (typeof line == "number") { - var no = line; - line = lines[clipLine(line)]; - } - else { - var no = indexOf(lines, line); - if (no == -1) return null; - } - line.className = className; - changes.push({from: no, to: no + 1}); - return line; - } - - function lineInfo(line) { - if (typeof line == "number") { - var n = line; - line = lines[line]; - if (!line) return null; - } - else { - var n = indexOf(lines, line); - if (n == -1) return null; - } - var marker = line.gutterMarker; - return {line: n, text: line.text, markerText: marker && marker.text, markerClass: marker && marker.style}; - } - - // These are used to go from pixel positions to character - // positions, taking tabs into account. - function charX(line, pos) { - var text = lines[line].text, span = measure.firstChild; - if (text.lastIndexOf("\t", pos) == -1) return pos * charWidth(); - var old = span.firstChild.nodeValue; - try { - span.firstChild.nodeValue = text.slice(0, pos); - return span.offsetWidth; - } finally {span.firstChild.nodeValue = old;} - } - function charFromX(line, x) { - var text = lines[line].text, cw = charWidth(); - if (x <= 0) return 0; - if (text.indexOf("\t") == -1) return Math.min(text.length, Math.round(x / cw)); - var mspan = measure.firstChild, mtext = mspan.firstChild, old = mtext.nodeValue; - try { - mtext.nodeValue = text; - var from = 0, fromX = 0, to = text.length, toX = mspan.offsetWidth; - if (x > toX) return to; - for (;;) { - if (to - from <= 1) return (toX - x > x - fromX) ? from : to; - var middle = Math.ceil((from + to) / 2); - mtext.nodeValue = text.slice(0, middle); - var curX = mspan.offsetWidth; - if (curX > x) {to = middle; toX = curX;} - else {from = middle; fromX = curX;} - } - } finally {mtext.nodeValue = old;} - } - - function localCoords(pos, inLineWrap) { - var lh = lineHeight(), line = pos.line - (inLineWrap ? showingFrom : 0); - return {x: charX(pos.line, pos.ch), y: line * lh, yBot: (line + 1) * lh}; - } - function pageCoords(pos) { - var local = localCoords(pos, true), off = eltOffset(lineSpace); - return {x: off.left + local.x, y: off.top + local.y, yBot: off.top + local.yBot}; - } - - function lineHeight() { - var nlines = lineDiv.childNodes.length; - if (nlines) return lineDiv.offsetHeight / nlines; - else return measure.firstChild.offsetHeight || 1; - } - function charWidth() {return (measure.firstChild.offsetWidth || 320) / 40;} - function paddingTop() {return lineSpace.offsetTop;} - function paddingLeft() {return lineSpace.offsetLeft;} - - function posFromMouse(e, liberal) { - var off = eltOffset(lineSpace), - x = e.pageX() - off.left, - y = e.pageY() - off.top; - if (!liberal && e.target() != lineSpace.parentNode && !(e.target() == wrapper && y > (lines.length * lineHeight()))) - for (var n = e.target(); n != lineDiv && n != cursor; n = n.parentNode) - if (!n || n == wrapper) return null; - var line = showingFrom + Math.floor(y / lineHeight()); - return clipPos({line: line, ch: charFromX(clipLine(line), x)}); - } - function onContextMenu(e) { - var pos = posFromMouse(e); - if (!pos || window.opera) return; // Opera is difficult. - if (posEq(sel.from, sel.to) || posLess(pos, sel.from) || !posLess(pos, sel.to)) - setCursor(pos.line, pos.ch); - - var oldCSS = input.style.cssText; - input.style.cssText = "position: fixed; width: 30px; height: 30px; top: " + (e.pageY() - 1) + - "px; left: " + (e.pageX() - 1) + "px; z-index: 1000; background: white; " + - "border-width: 0; outline: none; overflow: hidden;"; - var val = input.value = getSelection(); - input.focus(); - setSelRange(input, 0, val.length); - if (gecko) e.stop(); - leaveInputAlone = true; - setTimeout(function() { - if (input.value != val) operation(replaceSelection)(input.value, "end"); - input.style.cssText = oldCSS; - leaveInputAlone = false; - prepareInput(); - slowPoll(); - }, 50); - } - - // Cursor-blinking - function restartBlink() { - clearInterval(blinker); - var on = true; - cursor.style.visibility = ""; - blinker = setInterval(function() { - cursor.style.visibility = (on = !on) ? "" : "hidden"; - }, 650); - } - - var matching = {"(": ")>", ")": "(<", "[": "]>", "]": "[<", "{": "}>", "}": "{<"}; - function matchBrackets(autoclear) { - var head = sel.inverted ? sel.from : sel.to, line = lines[head.line], pos = head.ch - 1; - var match = (pos >= 0 && matching[line.text.charAt(pos)]) || matching[line.text.charAt(++pos)]; - if (!match) return; - var ch = match.charAt(0), forward = match.charAt(1) == ">", d = forward ? 1 : -1, st = line.styles; - for (var off = pos + 1, i = 0, e = st.length; i < e; i+=2) - if ((off -= st[i].length) <= 0) {var style = st[i+1]; break;} - - var stack = [line.text.charAt(pos)], re = /[(){}[\]]/; - function scan(line, from, to) { - if (!line.text) return; - var st = line.styles, pos = forward ? 0 : line.text.length - 1, cur; - for (var i = forward ? 0 : st.length - 2, e = forward ? st.length : -2; i != e; i += 2*d) { - var text = st[i]; - if (st[i+1] != null && st[i+1] != style) {pos += d * text.length; continue;} - for (var j = forward ? 0 : text.length - 1, te = forward ? text.length : -1; j != te; j += d, pos+=d) { - if (pos >= from && pos < to && re.test(cur = text.charAt(j))) { - var match = matching[cur]; - if (match.charAt(1) == ">" == forward) stack.push(cur); - else if (stack.pop() != match.charAt(0)) return {pos: pos, match: false}; - else if (!stack.length) return {pos: pos, match: true}; - } - } - } - } - for (var i = head.line, e = forward ? Math.min(i + 50, lines.length) : Math.max(0, i - 50); i != e; i+=d) { - var line = lines[i], first = i == head.line; - var found = scan(line, first && forward ? pos + 1 : 0, first && !forward ? pos : line.text.length); - if (found) { - var style = found.match ? "CodeMirror-matchingbracket" : "CodeMirror-nonmatchingbracket"; - var one = markText({line: head.line, ch: pos}, {line: head.line, ch: pos+1}, style), - two = markText({line: i, ch: found.pos}, {line: i, ch: found.pos + 1}, style); - var clear = operation(function(){one(); two();}); - if (autoclear) setTimeout(clear, 800); - else bracketHighlighted = clear; - break; - } - } - } - - // Finds the line to start with when starting a parse. Tries to - // find a line with a stateAfter, so that it can start with a - // valid state. If that fails, it returns the line with the - // smallest indentation, which tends to need the least context to - // parse correctly. - function findStartLine(n) { - var minindent, minline; - for (var search = n, lim = n - 40; search > lim; --search) { - if (search == 0) return 0; - var line = lines[search-1]; - if (line.stateAfter) return search; - var indented = line.indentation(); - if (minline == null || minindent > indented) { - minline = search; - minindent = indented; - } - } - return minline; - } - function getStateBefore(n) { - var start = findStartLine(n), state = start && lines[start-1].stateAfter; - if (!state) state = startState(mode); - else state = copyState(mode, state); - for (var i = start; i < n; ++i) { - var line = lines[i]; - line.highlight(mode, state); - line.stateAfter = copyState(mode, state); - } - if (!lines[n].stateAfter) work.push(n); - return state; - } - function highlightWorker() { - var end = +new Date + options.workTime; - while (work.length) { - if (!lines[showingFrom].stateAfter) var task = showingFrom; - else var task = work.pop(); - if (task >= lines.length) continue; - var start = findStartLine(task), state = start && lines[start-1].stateAfter; - if (state) state = copyState(mode, state); - else state = startState(mode); - - for (var i = start, l = lines.length; i < l; ++i) { - var line = lines[i], hadState = line.stateAfter; - if (+new Date > end) { - work.push(i); - startWorker(options.workDelay); - changes.push({from: task, to: i}); - return; - } - var changed = line.highlight(mode, state); - line.stateAfter = copyState(mode, state); - if (hadState && !changed && line.text) break; - } - changes.push({from: task, to: i}); - } - } - function startWorker(time) { - if (!work.length) return; - highlight.set(time, operation(highlightWorker)); - } - - // Operations are used to wrap changes in such a way that each - // change won't have to update the cursor and display (which would - // be awkward, slow, and error-prone), but instead updates are - // batched and then all combined and executed at once. - function startOperation() { - updateInput = null; changes = []; textChanged = selectionChanged = false; - } - function endOperation() { - var reScroll = false; - if (selectionChanged) reScroll = !scrollCursorIntoView(); - if (changes.length) updateDisplay(changes); - else if (selectionChanged) updateCursor(); - if (reScroll) scrollCursorIntoView(); - if (selectionChanged) restartBlink(); - - // updateInput can be set to a boolean value to force/prevent an - // update. - if (!leaveInputAlone && (updateInput === true || (updateInput !== false && selectionChanged))) - prepareInput(); - - if (selectionChanged && options.onCursorActivity) - options.onCursorActivity(instance); - if (textChanged && options.onChange) - options.onChange(instance); - if (selectionChanged && options.matchBrackets) - setTimeout(operation(function() { - if (bracketHighlighted) {bracketHighlighted(); bracketHighlighted = null;} - matchBrackets(false); - }), 20); - } - var nestedOperation = 0; - function operation(f) { - return function() { - if (!nestedOperation++) startOperation(); - try {var result = f.apply(this, arguments);} - finally {if (!--nestedOperation) endOperation();} - return result; - }; - } - - function SearchCursor(query, pos, caseFold) { - this.atOccurrence = false; - if (caseFold == null) caseFold = typeof query == "string" && query == query.toLowerCase(); - - if (pos && typeof pos == "object") pos = clipPos(pos); - else pos = {line: 0, ch: 0}; - this.pos = {from: pos, to: pos}; - - // The matches method is filled in based on the type of query. - // It takes a position and a direction, and returns an object - // describing the next occurrence of the query, or null if no - // more matches were found. - if (typeof query != "string") // Regexp match - this.matches = function(reverse, pos) { - if (reverse) { - var line = lines[pos.line].text.slice(0, pos.ch), match = line.match(query), start = 0; - while (match) { - var ind = line.indexOf(match[0]); - start += ind; - line = line.slice(ind + 1); - var newmatch = line.match(query); - if (newmatch) match = newmatch; - else break; - } - } - else { - var line = lines[pos.line].text.slice(pos.ch), match = line.match(query), - start = match && pos.ch + line.indexOf(match[0]); - } - if (match) - return {from: {line: pos.line, ch: start}, - to: {line: pos.line, ch: start + match[0].length}, - match: match}; - }; - else { // String query - if (caseFold) query = query.toLowerCase(); - var fold = caseFold ? function(str){return str.toLowerCase();} : function(str){return str;}; - var target = query.split("\n"); - // Different methods for single-line and multi-line queries - if (target.length == 1) - this.matches = function(reverse, pos) { - var line = fold(lines[pos.line].text), len = query.length, match; - if (reverse ? (pos.ch >= len && (match = line.lastIndexOf(query, pos.ch - len)) != -1) - : (match = line.indexOf(query, pos.ch)) != -1) - return {from: {line: pos.line, ch: match}, - to: {line: pos.line, ch: match + len}}; - }; - else - this.matches = function(reverse, pos) { - var ln = pos.line, idx = (reverse ? target.length - 1 : 0), match = target[idx], line = fold(lines[ln].text); - var offsetA = (reverse ? line.indexOf(match) + match.length : line.lastIndexOf(match)); - if (reverse ? offsetA >= pos.ch || offsetA != match.length - : offsetA <= pos.ch || offsetA != line.length - match.length) - return; - for (;;) { - if (reverse ? !ln : ln == lines.length - 1) return; - line = fold(lines[ln += reverse ? -1 : 1].text); - match = target[reverse ? --idx : ++idx]; - if (idx > 0 && idx < target.length - 1) { - if (line != match) return; - else continue; - } - var offsetB = (reverse ? line.lastIndexOf(match) : line.indexOf(match) + match.length); - if (reverse ? offsetB != line.length - match.length : offsetB != match.length) - return; - var start = {line: pos.line, ch: offsetA}, end = {line: ln, ch: offsetB}; - return {from: reverse ? end : start, to: reverse ? start : end}; - } - }; - } - } - - SearchCursor.prototype = { - findNext: function() {return this.find(false);}, - findPrevious: function() {return this.find(true);}, - - find: function(reverse) { - var self = this, pos = clipPos(reverse ? this.pos.from : this.pos.to); - function savePosAndFail(line) { - var pos = {line: line, ch: 0}; - self.pos = {from: pos, to: pos}; - self.atOccurrence = false; - return false; - } - - for (;;) { - if (this.pos = this.matches(reverse, pos)) { - this.atOccurrence = true; - return this.pos.match || true; - } - if (reverse) { - if (!pos.line) return savePosAndFail(0); - pos = {line: pos.line-1, ch: lines[pos.line-1].text.length}; - } - else { - if (pos.line == lines.length - 1) return savePosAndFail(lines.length); - pos = {line: pos.line+1, ch: 0}; - } - } - }, - - from: function() {if (this.atOccurrence) return copyPos(this.pos.from);}, - to: function() {if (this.atOccurrence) return copyPos(this.pos.to);} - }; - - return instance; - } // (end of function CodeMirror) - - // The default configuration options. - CodeMirror.defaults = { - value: "", - mode: null, - indentUnit: 2, - indentWithTabs: false, - tabMode: "classic", - enterMode: "indent", - electricChars: true, - onKeyEvent: null, - lineNumbers: false, - gutter: false, - firstLineNumber: 1, - readOnly: false, - onChange: null, - onCursorActivity: null, - onGutterClick: null, - onFocus: null, onBlur: null, onScroll: null, - matchBrackets: false, - workTime: 100, - workDelay: 200, - undoDepth: 40, - tabindex: null - }; - - // Known modes, by name and by MIME - var modes = {}, mimeModes = {}; - CodeMirror.defineMode = function(name, mode) { - if (!CodeMirror.defaults.mode && name != "null") CodeMirror.defaults.mode = name; - modes[name] = mode; - }; - CodeMirror.defineMIME = function(mime, spec) { - mimeModes[mime] = spec; - }; - CodeMirror.getMode = function(options, spec) { - if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) - spec = mimeModes[spec]; - if (typeof spec == "string") - var mname = spec, config = {}; - else - var mname = spec.name, config = spec; - var mfactory = modes[mname]; - if (!mfactory) { - if (window.console) console.warn("No mode " + mname + " found, falling back to plain text."); - return CodeMirror.getMode(options, "text/plain"); - } - return mfactory(options, config); - } - CodeMirror.listModes = function() { - var list = []; - for (var m in modes) - if (modes.propertyIsEnumerable(m)) list.push(m); - return list; - }; - CodeMirror.listMIMEs = function() { - var list = []; - for (var m in mimeModes) - if (mimeModes.propertyIsEnumerable(m)) list.push(m); - return list; - }; - - CodeMirror.fromTextArea = function(textarea, options) { - if (!options) options = {}; - options.value = textarea.value; - if (!options.tabindex && textarea.tabindex) - options.tabindex = textarea.tabindex; - - function save() {textarea.value = instance.getValue();} - if (textarea.form) { - // Deplorable hack to make the submit method do the right thing. - var rmSubmit = connect(textarea.form, "submit", save, true); - if (typeof textarea.form.submit == "function") { - var realSubmit = textarea.form.submit; - function wrappedSubmit() { - save(); - textarea.form.submit = realSubmit; - textarea.form.submit(); - textarea.form.submit = wrappedSubmit; - } - textarea.form.submit = wrappedSubmit; - } - } - - textarea.style.display = "none"; - var instance = CodeMirror(function(node) { - textarea.parentNode.insertBefore(node, textarea.nextSibling); - }, options); - instance.save = save; - instance.toTextArea = function() { - save(); - textarea.parentNode.removeChild(instance.getWrapperElement()); - textarea.style.display = ""; - if (textarea.form) { - rmSubmit(); - if (typeof textarea.form.submit == "function") - textarea.form.submit = realSubmit; - } - }; - return instance; - }; - - // Utility functions for working with state. Exported because modes - // sometimes need to do this. - function copyState(mode, state) { - if (state === true) return state; - if (mode.copyState) return mode.copyState(state); - var nstate = {}; - for (var n in state) { - var val = state[n]; - if (val instanceof Array) val = val.concat([]); - nstate[n] = val; - } - return nstate; - } - CodeMirror.startState = startState; - function startState(mode, a1, a2) { - return mode.startState ? mode.startState(a1, a2) : true; - } - CodeMirror.copyState = copyState; - - // The character stream used by a mode's parser. - function StringStream(string) { - this.pos = this.start = 0; - this.string = string; - } - StringStream.prototype = { - eol: function() {return this.pos >= this.string.length;}, - sol: function() {return this.pos == 0;}, - peek: function() {return this.string.charAt(this.pos);}, - next: function() { - if (this.pos < this.string.length) - return this.string.charAt(this.pos++); - }, - eat: function(match) { - var ch = this.string.charAt(this.pos); - if (typeof match == "string") var ok = ch == match; - else var ok = ch && (match.test ? match.test(ch) : match(ch)); - if (ok) {++this.pos; return ch;} - }, - eatWhile: function(match) { - var start = this.start; - while (this.eat(match)){} - return this.pos > start; - }, - eatSpace: function() { - var start = this.pos; - while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) ++this.pos; - return this.pos > start; - }, - skipToEnd: function() {this.pos = this.string.length;}, - skipTo: function(ch) { - var found = this.string.indexOf(ch, this.pos); - if (found > -1) {this.pos = found; return true;} - }, - backUp: function(n) {this.pos -= n;}, - column: function() {return countColumn(this.string, this.start);}, - indentation: function() {return countColumn(this.string);}, - match: function(pattern, consume, caseInsensitive) { - if (typeof pattern == "string") { - function cased(str) {return caseInsensitive ? str.toLowerCase() : str;} - if (cased(this.string).indexOf(cased(pattern), this.pos) == this.pos) { - if (consume !== false) this.pos += pattern.length; - return true; - } - } - else { - var match = this.string.slice(this.pos).match(pattern); - if (match && consume !== false) this.pos += match[0].length; - return match; - } - }, - current: function(){return this.string.slice(this.start, this.pos);} - }; - - // Line objects. These hold state related to a line, including - // highlighting info (the styles array). - function Line(text, styles) { - this.styles = styles || [text, null]; - this.stateAfter = null; - this.text = text; - this.marked = this.gutterMarker = this.className = null; - } - Line.prototype = { - // Replace a piece of a line, keeping the styles around it intact. - replace: function(from, to, text) { - var st = [], mk = this.marked; - copyStyles(0, from, this.styles, st); - if (text) st.push(text, null); - copyStyles(to, this.text.length, this.styles, st); - this.styles = st; - this.text = this.text.slice(0, from) + text + this.text.slice(to); - this.stateAfter = null; - if (mk) { - var diff = text.length - (to - from), end = this.text.length; - function fix(n) {return n <= Math.min(to, to + diff) ? n : n + diff;} - for (var i = 0; i < mk.length; ++i) { - var mark = mk[i], del = false; - if (mark.from >= end) del = true; - else {mark.from = fix(mark.from); if (mark.to != null) mark.to = fix(mark.to);} - if (del || mark.from >= mark.to) {mk.splice(i, 1); i--;} - } - } - }, - // Split a line in two, again keeping styles intact. - split: function(pos, textBefore) { - var st = [textBefore, null]; - copyStyles(pos, this.text.length, this.styles, st); - return new Line(textBefore + this.text.slice(pos), st); - }, - addMark: function(from, to, style) { - var mk = this.marked, mark = {from: from, to: to, style: style}; - if (this.marked == null) this.marked = []; - this.marked.push(mark); - this.marked.sort(function(a, b){return a.from - b.from;}); - return mark; - }, - removeMark: function(mark) { - var mk = this.marked; - if (!mk) return; - for (var i = 0; i < mk.length; ++i) - if (mk[i] == mark) {mk.splice(i, 1); break;} - }, - // Run the given mode's parser over a line, update the styles - // array, which contains alternating fragments of text and CSS - // classes. - highlight: function(mode, state) { - var stream = new StringStream(this.text), st = this.styles, pos = 0, changed = false; - while (!stream.eol()) { - var style = mode.token(stream, state); - var substr = this.text.slice(stream.start, stream.pos); - stream.start = stream.pos; - if (pos && st[pos-1] == style) - st[pos-2] += substr; - else if (substr) { - if (!changed && st[pos] != substr || st[pos+1] != style) changed = true; - st[pos++] = substr; st[pos++] = style; - } - // Give up when line is ridiculously long - if (stream.pos > 5000) { - st[pos++] = this.text.slice(stream.pos); st[pos++] = null; - break; - } - } - if (st.length != pos) {st.length = pos; changed = true;} - return changed; - }, - // Fetch the parser token for a given character. Useful for hacks - // that want to inspect the mode state (say, for completion). - getTokenAt: function(mode, state, ch) { - var txt = this.text, stream = new StringStream(txt); - while (stream.pos < ch && !stream.eol()) { - stream.start = stream.pos; - var style = mode.token(stream, state); - } - return {start: stream.start, - end: stream.pos, - string: stream.current(), - className: style || null, - state: state}; - }, - indentation: function() {return countColumn(this.text);}, - // Produces an HTML fragment for the line, taking selection, - // marking, and highlighting into account. - getHTML: function(sfrom, sto, includePre) { - var html = []; - if (includePre) - html.push(this.className ? '
': "
");
-      function span(text, style) {
-        if (!text) return;
-        if (style) html.push('', htmlEscape(text), "");
-        else html.push(htmlEscape(text));
-      }
-      var st = this.styles, allText = this.text, marked = this.marked;
-      if (sfrom == sto) sfrom = null;
-
-      if (!allText)
-        span(" ", sfrom != null && sto == null ? "CodeMirror-selected" : null);
-      else if (!marked && sfrom == null)
-        for (var i = 0, e = st.length; i < e; i+=2) span(st[i], st[i+1]);
-      else {
-        var pos = 0, i = 0, text = "", style, sg = 0;
-        var markpos = -1, mark = null;
-        function nextMark() {
-          if (marked) {
-            markpos += 1;
-            mark = (markpos < marked.length) ? marked[markpos] : null;
-          }
-        }
-        nextMark();        
-        while (pos < allText.length) {
-          var upto = allText.length;
-          var extraStyle = "";
-          if (sfrom != null) {
-            if (sfrom > pos) upto = sfrom;
-            else if (sto == null || sto > pos) {
-              extraStyle = " CodeMirror-selected";
-              if (sto != null) upto = Math.min(upto, sto);
-            }
-          }
-          while (mark && mark.to != null && mark.to <= pos) nextMark();
-          if (mark) {
-            if (mark.from > pos) upto = Math.min(upto, mark.from);
-            else {
-              extraStyle += " " + mark.style;
-              if (mark.to != null) upto = Math.min(upto, mark.to);
-            }
-          }
-          for (;;) {
-            var end = pos + text.length;
-            var apliedStyle = style;
-            if (extraStyle) apliedStyle = style ? style + extraStyle : extraStyle;
-            span(end > upto ? text.slice(0, upto - pos) : text, apliedStyle);
-            if (end >= upto) {text = text.slice(upto - pos); pos = upto; break;}
-            pos = end;
-            text = st[i++]; style = st[i++];
-          }
-        }
-        if (sfrom != null && sto == null) span(" ", "CodeMirror-selected");
-      }
-      if (includePre) html.push("
"); - return html.join(""); - } - }; - // Utility used by replace and split above - function copyStyles(from, to, source, dest) { - for (var i = 0, pos = 0, state = 0; pos < to; i+=2) { - var part = source[i], end = pos + part.length; - if (state == 0) { - if (end > from) dest.push(part.slice(from - pos, Math.min(part.length, to - pos)), source[i+1]); - if (end >= from) state = 1; - } - else if (state == 1) { - if (end > to) dest.push(part.slice(0, to - pos), source[i+1]); - else dest.push(part, source[i+1]); - } - pos = end; - } - } - - // The history object 'chunks' changes that are made close together - // and at almost the same time into bigger undoable units. - function History() { - this.time = 0; - this.done = []; this.undone = []; - } - History.prototype = { - addChange: function(start, added, old) { - this.undone.length = 0; - var time = +new Date, last = this.done[this.done.length - 1]; - if (time - this.time > 400 || !last || - last.start > start + added || last.start + last.added < start - last.added + last.old.length) - this.done.push({start: start, added: added, old: old}); - else { - var oldoff = 0; - if (start < last.start) { - for (var i = last.start - start - 1; i >= 0; --i) - last.old.unshift(old[i]); - last.added += last.start - start; - last.start = start; - } - else if (last.start < start) { - oldoff = start - last.start; - added += oldoff; - } - for (var i = last.added - oldoff, e = old.length; i < e; ++i) - last.old.push(old[i]); - if (last.added < added) last.added = added; - } - this.time = time; - } - }; - - // Event stopping compatibility wrapper. - function stopEvent() { - if (this.preventDefault) {this.preventDefault(); this.stopPropagation();} - else {this.returnValue = false; this.cancelBubble = true;} - } - // Ensure an event has a stop method. - function addStop(event) { - if (!event.stop) event.stop = stopEvent; - return event; - } - - // Event wrapper, exposing the few operations we need. - function Event(orig) {this.e = orig;} - Event.prototype = { - stop: function() {stopEvent.call(this.e);}, - target: function() {return this.e.target || this.e.srcElement;}, - button: function() { - if (this.e.which) return this.e.which; - else if (this.e.button & 1) return 1; - else if (this.e.button & 2) return 3; - else if (this.e.button & 4) return 2; - }, - pageX: function() { - if (this.e.pageX != null) return this.e.pageX; - else return this.e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; - }, - pageY: function() { - if (this.e.pageY != null) return this.e.pageY; - else return this.e.clientY + document.body.scrollTop + document.documentElement.scrollTop; - } - }; - - // Event handler registration. If disconnect is true, it'll return a - // function that unregisters the handler. - function connect(node, type, handler, disconnect) { - function wrapHandler(event) {handler(new Event(event || window.event));} - if (typeof node.addEventListener == "function") { - node.addEventListener(type, wrapHandler, false); - if (disconnect) return function() {node.removeEventListener(type, wrapHandler, false);}; - } - else { - node.attachEvent("on" + type, wrapHandler); - if (disconnect) return function() {node.detachEvent("on" + type, wrapHandler);}; - } - } - - function Delayed() {this.id = null;} - Delayed.prototype = {set: function(ms, f) {clearTimeout(this.id); this.id = setTimeout(f, ms);}}; - - // Some IE versions don't preserve whitespace when setting the - // innerHTML of a PRE tag. - var badInnerHTML = (function() { - var pre = document.createElement("pre"); - pre.innerHTML = " "; return !pre.innerHTML; - })(); - - var gecko = /gecko\/\d{7}/i.test(navigator.userAgent); - - var lineSep = "\n"; - // Feature-detect whether newlines in textareas are converted to \r\n - (function () { - var te = document.createElement("textarea"); - te.value = "foo\nbar"; - if (te.value.indexOf("\r") > -1) lineSep = "\r\n"; - }()); - - var tabSize = 8; - var mac = /Mac/.test(navigator.platform); - var movementKeys = {}; - for (var i = 35; i <= 40; ++i) - movementKeys[i] = movementKeys["c" + i] = true; - - // Counts the column offset in a string, taking tabs into account. - // Used mostly to find indentation. - function countColumn(string, end) { - if (end == null) { - end = string.search(/[^\s\u00a0]/); - if (end == -1) end = string.length; - } - for (var i = 0, n = 0; i < end; ++i) { - if (string.charAt(i) == "\t") n += tabSize - (n % tabSize); - else ++n; - } - return n; - } - - // Find the position of an element by following the offsetParent chain. - function eltOffset(node) { - var x = 0, y = 0, n2 = node; - for (var n = node; n; n = n.offsetParent) {x += n.offsetLeft; y += n.offsetTop;} - for (var n = node; n != document.body; n = n.parentNode) {x -= n.scrollLeft; y -= n.scrollTop;} - return {left: x, top: y}; - } - // Get a node's text content. - function eltText(node) { - return node.textContent || node.innerText || node.nodeValue || ""; - } - - // Operations on {line, ch} objects. - function posEq(a, b) {return a.line == b.line && a.ch == b.ch;} - function posLess(a, b) {return a.line < b.line || (a.line == b.line && a.ch < b.ch);} - function copyPos(x) {return {line: x.line, ch: x.ch};} - - function htmlEscape(str) { - return str.replace(/[<&]/g, function(str) {return str == "&" ? "&" : "<";}); - } - - // Used to position the cursor after an undo/redo by finding the - // last edited character. - function editEnd(from, to) { - if (!to) return from ? from.length : 0; - if (!from) return to.length; - for (var i = from.length, j = to.length; i >= 0 && j >= 0; --i, --j) - if (from.charAt(i) != to.charAt(j)) break; - return j + 1; - } - - function indexOf(collection, elt) { - if (collection.indexOf) return collection.indexOf(elt); - for (var i = 0, e = collection.length; i < e; ++i) - if (collection[i] == elt) return i; - return -1; - } - - // See if "".split is the broken IE version, if so, provide an - // alternative way to split lines. - if ("\n\nb".split(/\n/).length != 3) - var splitLines = function(string) { - var pos = 0, nl, result = []; - while ((nl = string.indexOf("\n", pos)) > -1) { - result.push(string.slice(pos, string.charAt(nl-1) == "\r" ? nl - 1 : nl)); - pos = nl + 1; - } - result.push(string.slice(pos)); - return result; - }; - else - var splitLines = function(string){return string.split(/\r?\n/);}; - - // Sane model of finding and setting the selection in a textarea - if (window.getSelection) { - var selRange = function(te) { - try {return {start: te.selectionStart, end: te.selectionEnd};} - catch(e) {return null;} - }; - var setSelRange = function(te, start, end) { - try {te.setSelectionRange(start, end);} - catch(e) {} // Fails on Firefox when textarea isn't part of the document - }; - } - // IE model. Don't ask. - else { - var selRange = function(te) { - try {var range = document.selection.createRange();} - catch(e) {return null;} - if (!range || range.parentElement() != te) return null; - var val = te.value, len = val.length, localRange = te.createTextRange(); - localRange.moveToBookmark(range.getBookmark()); - var endRange = te.createTextRange(); - endRange.collapse(false); - - if (localRange.compareEndPoints("StartToEnd", endRange) > -1) - return {start: len, end: len}; - - var start = -localRange.moveStart("character", -len); - for (var i = val.indexOf("\r"); i > -1 && i < start; i = val.indexOf("\r", i+1), start++) {} - - if (localRange.compareEndPoints("EndToEnd", endRange) > -1) - return {start: start, end: len}; - - var end = -localRange.moveEnd("character", -len); - for (var i = val.indexOf("\r"); i > -1 && i < end; i = val.indexOf("\r", i+1), end++) {} - return {start: start, end: end}; - }; - var setSelRange = function(te, start, end) { - var range = te.createTextRange(); - range.collapse(true); - var endrange = range.duplicate(); - var newlines = 0, txt = te.value; - for (var pos = txt.indexOf("\n"); pos > -1 && pos < start; pos = txt.indexOf("\n", pos + 1)) - ++newlines; - range.move("character", start - newlines); - for (; pos > -1 && pos < end; pos = txt.indexOf("\n", pos + 1)) - ++newlines; - endrange.move("character", end - newlines); - range.setEndPoint("EndToEnd", endrange); - range.select(); - }; - } - - CodeMirror.defineMode("null", function() { - return {token: function(stream) {stream.skipToEnd();}}; - }); - CodeMirror.defineMIME("text/plain", "null"); - - return CodeMirror; -})(); diff --git a/plugins/LocalFilesEditor/codemirror/lib/overlay.js b/plugins/LocalFilesEditor/codemirror/lib/overlay.js deleted file mode 100644 index c4cdf9fc8..000000000 --- a/plugins/LocalFilesEditor/codemirror/lib/overlay.js +++ /dev/null @@ -1,51 +0,0 @@ -// Utility function that allows modes to be combined. The mode given -// as the base argument takes care of most of the normal mode -// functionality, but a second (typically simple) mode is used, which -// can override the style of text. Both modes get to parse all of the -// text, but when both assign a non-null style to a piece of code, the -// overlay wins, unless the combine argument was true, in which case -// the styles are combined. - -CodeMirror.overlayParser = function(base, overlay, combine) { - return { - startState: function() { - return { - base: CodeMirror.startState(base), - overlay: CodeMirror.startState(overlay), - basePos: 0, baseCur: null, - overlayPos: 0, overlayCur: null - }; - }, - copyState: function(state) { - return { - base: CodeMirror.copyState(base, state.base), - overlay: CodeMirror.copyState(overlay, state.overlay), - basePos: state.basePos, baseCur: null, - overlayPos: state.overlayPos, overlayCur: null - }; - }, - - token: function(stream, state) { - if (stream.start == state.basePos) { - state.baseCur = base.token(stream, state.base); - state.basePos = stream.pos; - } - if (stream.start == state.overlayPos) { - stream.pos = stream.start; - state.overlayCur = overlay.token(stream, state.overlay); - state.overlayPos = stream.pos; - } - stream.pos = Math.min(state.basePos, state.overlayPos); - if (stream.eol()) state.basePos = state.overlayPos = 0; - - if (state.overlayCur == null) return state.baseCur; - if (state.baseCur != null && combine) return state.baseCur + " " + state.overlayCur; - else return state.overlayCur; - }, - - indent: function(state, textAfter) { - return base.indent(state.base, textAfter); - }, - electricChars: base.electricChars - }; -}; diff --git a/plugins/LocalFilesEditor/codemirror/mode/clike/clike.css b/plugins/LocalFilesEditor/codemirror/mode/clike/clike.css deleted file mode 100644 index 21016d7b1..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/clike/clike.css +++ /dev/null @@ -1,6 +0,0 @@ -span.c-like-keyword {color: #90b;} -span.c-like-number {color: #291;} -span.c-like-comment {color: #a70;} -span.c-like-string {color: #a22;} -span.c-like-preprocessor {color: #049;} -span.c-like-var {color: #22b;} diff --git a/plugins/LocalFilesEditor/codemirror/mode/clike/clike.js b/plugins/LocalFilesEditor/codemirror/mode/clike/clike.js deleted file mode 100644 index 25bd79144..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/clike/clike.js +++ /dev/null @@ -1,181 +0,0 @@ -CodeMirror.defineMode("clike", function(config, parserConfig) { - var indentUnit = config.indentUnit, keywords = parserConfig.keywords, - cpp = parserConfig.useCPP, multiLineStrings = parserConfig.multiLineStrings, $vars = parserConfig.$vars; - var isOperatorChar = /[+\-*&%=<>!?|]/; - - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - - var type; - function ret(tp, style) { - type = tp; - return style; - } - - function tokenBase(stream, state) { - var ch = stream.next(); - if (ch == '"' || ch == "'") - return chain(stream, state, tokenString(ch)); - else if (/[\[\]{}\(\),;\:\.]/.test(ch)) - return ret(ch); - else if (ch == "#" && cpp && state.startOfLine) { - stream.skipToEnd(); - return ret("directive", "c-like-preprocessor"); - } - else if (/\d/.test(ch)) { - stream.eatWhile(/[\w\.]/) - return ret("number", "c-like-number"); - } - else if (ch == "/") { - if (stream.eat("*")) { - return chain(stream, state, tokenComment); - } - else if (stream.eat("/")) { - stream.skipToEnd(); - return ret("comment", "c-like-comment"); - } - else { - stream.eatWhile(isOperatorChar); - return ret("operator"); - } - } - else if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return ret("operator"); - } - else if ($vars && ch == "$") { - stream.eatWhile(/[\w\$_]/); - return ret("word", "c-like-var"); - } - else { - stream.eatWhile(/[\w\$_]/); - if (keywords && keywords.propertyIsEnumerable(stream.current())) return ret("keyword", "c-like-keyword"); - return ret("word", "c-like-word"); - } - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, next, end = false; - while ((next = stream.next()) != null) { - if (next == quote && !escaped) {end = true; break;} - escaped = !escaped && next == "\\"; - } - if (end || !(escaped || multiLineStrings)) - state.tokenize = tokenBase; - return ret("string", "c-like-string"); - }; - } - - function tokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return ret("comment", "c-like-comment"); - } - - function Context(indented, column, type, align, prev) { - this.indented = indented; - this.column = column; - this.type = type; - this.align = align; - this.prev = prev; - } - - function pushContext(state, col, type) { - return state.context = new Context(state.indented, col, type, null, state.context); - } - function popContext(state) { - return state.context = state.context.prev; - } - - // Interface - - return { - startState: function(basecolumn) { - return { - tokenize: tokenBase, - context: new Context((basecolumn || 0) - indentUnit, 0, "top", false), - indented: 0, - startOfLine: true - }; - }, - - token: function(stream, state) { - var ctx = state.context; - if (stream.sol()) { - if (ctx.align == null) ctx.align = false; - state.indented = stream.indentation(); - state.startOfLine = true; - } - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - if (type == "comment") return style; - if (ctx.align == null) ctx.align = true; - - if ((type == ";" || type == ":") && ctx.type == "statement") popContext(state); - else if (type == "{") pushContext(state, stream.column(), "}"); - else if (type == "[") pushContext(state, stream.column(), "]"); - else if (type == "(") pushContext(state, stream.column(), ")"); - else if (type == "}") { - if (ctx.type == "statement") ctx = popContext(state); - if (ctx.type == "}") ctx = popContext(state); - if (ctx.type == "statement") ctx = popContext(state); - } - else if (type == ctx.type) popContext(state); - else if (ctx.type == "}") pushContext(state, stream.column(), "statement"); - state.startOfLine = false; - return style; - }, - - indent: function(state, textAfter) { - if (state.tokenize != tokenBase) return 0; - var firstChar = textAfter && textAfter.charAt(0), ctx = state.context, closing = firstChar == ctx.type; - if (ctx.type == "statement") return ctx.indented + (firstChar == "{" ? 0 : indentUnit); - else if (ctx.align) return ctx.column + (closing ? 0 : 1); - else return ctx.indented + (closing ? 0 : indentUnit); - }, - - electricChars: "{}" - }; -}); - -(function() { - function keywords(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - var cKeywords = "auto if break int case long char register continue return default short do sizeof " + - "double static else struct entry switch extern typedef float union for unsigned " + - "goto while enum void const signed volatile"; - - CodeMirror.defineMIME("text/x-csrc", { - name: "clike", - useCPP: true, - keywords: keywords(cKeywords) - }); - CodeMirror.defineMIME("text/x-c++src", { - name: "clike", - useCPP: true, - keywords: keywords(cKeywords + " asm dynamic_cast namespace reinterpret_cast try bool explicit new " + - "static_cast typeid catch false operator template typename class friend private " + - "this using const_cast inline public throw virtual delete mutable protected true " + - "wchar_t") - }); - CodeMirror.defineMIME("text/x-java", { - name: "clike", - keywords: keywords("abstract assert boolean break byte case catch char class const continue default " + - "do double else enum extends false final finally float for goto if implements import " + - "instanceof int interface long native new null package private protected public " + - "return short static strictfp super switch synchronized this throw throws transient " + - "true try void volatile while") - }); -}()); diff --git a/plugins/LocalFilesEditor/codemirror/mode/clike/index.html b/plugins/LocalFilesEditor/codemirror/mode/clike/index.html deleted file mode 100644 index 0836535d2..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/clike/index.html +++ /dev/null @@ -1,101 +0,0 @@ - - - - CodeMirror 2: C-like mode - - - - - - - - -

CodeMirror 2: C-like mode

- -
- - - -

Simple mode that tries to handle C-like languages as well as it - can. Takes two configuration parameters: keywords, an - object whose property names are the keywords in the language, - and useCPP, which determines whether C preprocessor - directives are recognized.

- -

MIME types defined: text/x-csrc - (C code), text/x-c++src (C++ - code), text/x-java (Java code).

- - diff --git a/plugins/LocalFilesEditor/codemirror/mode/css/css.css b/plugins/LocalFilesEditor/codemirror/mode/css/css.css deleted file mode 100644 index 02d40ecb2..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/css/css.css +++ /dev/null @@ -1,9 +0,0 @@ -span.css-at {color: #708;} -span.css-unit {color: #281;} -span.css-value {color: #708;} -span.css-identifier {color: black;} -span.css-selector {color: #11B;} -span.css-important {color: #00F;} -span.css-colorcode {color: #299;} -span.css-comment {color: #A70;} -span.css-string {color: #A22;} diff --git a/plugins/LocalFilesEditor/codemirror/mode/css/css.js b/plugins/LocalFilesEditor/codemirror/mode/css/css.js deleted file mode 100644 index 5faad7b2f..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/css/css.js +++ /dev/null @@ -1,124 +0,0 @@ -CodeMirror.defineMode("css", function(config) { - var indentUnit = config.indentUnit, type; - function ret(style, tp) {type = tp; return style;} - - function tokenBase(stream, state) { - var ch = stream.next(); - if (ch == "@") {stream.eatWhile(/\w/); return ret("css-at", stream.current());} - else if (ch == "/" && stream.eat("*")) { - state.tokenize = tokenCComment; - return tokenCComment(stream, state); - } - else if (ch == "<" && stream.eat("!")) { - state.tokenize = tokenSGMLComment; - return tokenSGMLComment(stream, state); - } - else if (ch == "=") ret(null, "compare"); - else if ((ch == "~" || ch == "|") && stream.eat("=")) return ret(null, "compare"); - else if (ch == "\"" || ch == "'") { - state.tokenize = tokenString(ch); - return state.tokenize(stream, state); - } - else if (ch == "#") { - stream.eatWhile(/\w/); - return ret("css-selector", "hash"); - } - else if (ch == "!") { - stream.match(/^\s*\w*/); - return ret("css-important", "important"); - } - else if (/\d/.test(ch)) { - stream.eatWhile(/[\w.%]/); - return ret("css-unit", "unit"); - } - else if (/[,.+>*\/]/.test(ch)) { - return ret(null, "select-op"); - } - else if (/[;{}:\[\]]/.test(ch)) { - return ret(null, ch); - } - else { - stream.eatWhile(/[\w\\\-_]/); - return ret("css-identifier", "identifier"); - } - } - - function tokenCComment(stream, state) { - var maybeEnd = false, ch; - while ((ch = stream.next()) != null) { - if (maybeEnd && ch == "/") { - state.tokenize = tokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return ret("css-comment", "comment"); - } - - function tokenSGMLComment(stream, state) { - var dashes = 0, ch; - while ((ch = stream.next()) != null) { - if (dashes >= 2 && ch == ">") { - state.tokenize = tokenBase; - break; - } - dashes = (ch == "-") ? dashes + 1 : 0; - } - return ret("css-comment", "comment"); - } - - function tokenString(quote) { - return function(stream, state) { - var escaped = false, ch; - while ((ch = stream.next()) != null) { - if (ch == quote && !escaped) - break; - escaped = !escaped && ch == "\\"; - } - if (!escaped) state.tokenize = tokenBase; - return ret("css-string", "string"); - }; - } - - return { - startState: function(base) { - return {tokenize: tokenBase, - baseIndent: base || 0, - stack: []}; - }, - - token: function(stream, state) { - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - - var context = state.stack[state.stack.length-1]; - if (type == "hash" && context == "rule") style = "css-colorcode"; - else if (style == "css-identifier") { - if (context == "rule") style = "css-value"; - else if (!context || context == "@media{") style = "css-selector"; - } - - if (context == "rule" && /^[\{\};]$/.test(type)) - state.stack.pop(); - if (type == "{") { - if (context == "@media") state.stack[state.stack.length-1] = "@media{"; - else state.stack.push("{"); - } - else if (type == "}") state.stack.pop(); - else if (type == "@media") state.stack.push("@media"); - else if (context != "rule" && context != "@media" && type != "comment") state.stack.push("rule"); - return style; - }, - - indent: function(state, textAfter) { - var n = state.stack.length; - if (/^\}/.test(textAfter)) - n -= state.stack[state.stack.length-1] == "rule" ? 2 : 1; - return state.baseIndent + n * indentUnit; - }, - - electricChars: "}" - }; -}); - -CodeMirror.defineMIME("text/css", "css"); diff --git a/plugins/LocalFilesEditor/codemirror/mode/css/index.html b/plugins/LocalFilesEditor/codemirror/mode/css/index.html deleted file mode 100644 index ad895610f..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/css/index.html +++ /dev/null @@ -1,56 +0,0 @@ - - - - CodeMirror 2: CSS mode - - - - - - - - -

CodeMirror 2: CSS mode

-
- - -

MIME types defined: text/css.

- - - diff --git a/plugins/LocalFilesEditor/codemirror/mode/diff/diff.css b/plugins/LocalFilesEditor/codemirror/mode/diff/diff.css deleted file mode 100644 index 60c1379ed..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/diff/diff.css +++ /dev/null @@ -1,3 +0,0 @@ -span.diff-rangeinfo {color: #a0b;} -span.diff-minus {color: #a22;} -span.diff-plus {color: #2b2;} diff --git a/plugins/LocalFilesEditor/codemirror/mode/diff/diff.js b/plugins/LocalFilesEditor/codemirror/mode/diff/diff.js deleted file mode 100644 index 619d74e2a..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/diff/diff.js +++ /dev/null @@ -1,13 +0,0 @@ -CodeMirror.defineMode("diff", function() { - return { - token: function(stream) { - var ch = stream.next(); - stream.skipToEnd(); - if (ch == "+") return "diff-plus"; - if (ch == "-") return "diff-minus"; - if (ch == "@") return "diff-rangeinfo"; - } - }; -}); - -CodeMirror.defineMIME("text/x-diff", "diff"); diff --git a/plugins/LocalFilesEditor/codemirror/mode/diff/index.html b/plugins/LocalFilesEditor/codemirror/mode/diff/index.html deleted file mode 100644 index 2748f2fa8..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/diff/index.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - CodeMirror 2: Diff mode - - - - - - - - -

CodeMirror 2: Diff mode

-
- - -

MIME types defined: text/x-diff.

- - - diff --git a/plugins/LocalFilesEditor/codemirror/mode/haskell/haskell.css b/plugins/LocalFilesEditor/codemirror/mode/haskell/haskell.css deleted file mode 100644 index 41f915556..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/haskell/haskell.css +++ /dev/null @@ -1,25 +0,0 @@ -span.hs-char, -span.hs-float, -span.hs-integer, -span.hs-string {color: #762;} - -span.hs-comment {color: #262;font-style: italic;} -span.hs-pragma {color: #555;font-style: italic;} - -span.hs-special, -span.hs-varid, -span.hs-varsym {color: #000;} - -span.hs-conid, -span.hs-consym {color: #b11;} - -span.hs-qualifier {color: #555;} - -span.hs-reservedid, -span.hs-reservedop {color: #730;} - -span.hs-prelude-varid, -span.hs-prelude-varsym {color: #30a;} -span.hs-prelude-conid {color: #b11;} - -span.hs-error {background-color: #fdd;} diff --git a/plugins/LocalFilesEditor/codemirror/mode/haskell/haskell.js b/plugins/LocalFilesEditor/codemirror/mode/haskell/haskell.js deleted file mode 100644 index 107885c20..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/haskell/haskell.js +++ /dev/null @@ -1,242 +0,0 @@ -CodeMirror.defineMode("haskell", function(cmCfg, modeCfg) { - - function switchState(source, setState, f) { - setState(f); - return f(source, setState); - } - - // These should all be Unicode extended, as per the Haskell 2010 report - var smallRE = /[a-z_]/; - var largeRE = /[A-Z]/; - var digitRE = /[0-9]/; - var hexitRE = /[0-9A-Fa-f]/; - var octitRE = /[0-7]/; - var idRE = /[a-z_A-Z0-9']/; - var symbolRE = /[-!#$%&*+.\/<=>?@\\^|~:]/; - var specialRE = /[(),;[\]`{}]/; - var whiteCharRE = /[ \t\v\f]/; // newlines are handled in tokenizer - - function normal(source, setState) { - if (source.eatWhile(whiteCharRE)) { - return null; - } - - var ch = source.next(); - if (specialRE.test(ch)) { - if (ch == '{' && source.eat('-')) { - var t = "hs-comment"; - if (source.eat('#')) { - t = "hs-pragma"; - } - return switchState(source, setState, ncomment(t, 1)); - } - return "hs-special"; - } - - if (ch == '\'') { - if (source.eat('\\')) { - source.next(); // should handle other escapes here - } - else { - source.next(); - } - if (source.eat('\'')) { - return "hs-char"; - } - return "hs-error"; - } - - if (ch == '"') { - return switchState(source, setState, stringLiteral); - } - - if (largeRE.test(ch)) { - source.eatWhile(idRE); - if (source.eat('.')) { - return "hs-qualifier"; - } - return "hs-conid"; - } - - if (smallRE.test(ch)) { - source.eatWhile(idRE); - return "hs-varid"; - } - - if (digitRE.test(ch)) { - if (ch == '0') { - if (source.eat(/[xX]/)) { - source.eatWhile(hexitRE); // should require at least 1 - return "hs-integer"; - } - if (source.eat(/[oO]/)) { - source.eatWhile(octitRE); // should require at least 1 - return "hs-integer"; - } - } - source.eatWhile(digitRE); - var t = "hs-integer"; - if (source.eat('.')) { - t = "hs-float"; - source.eatWhile(digitRE); // should require at least 1 - } - if (source.eat(/[eE]/)) { - t = "hs-float"; - source.eat(/[-+]/); - source.eatWhile(digitRE); // should require at least 1 - } - return t; - } - - if (symbolRE.test(ch)) { - if (ch == '-' && source.eat(/-/)) { - source.eatWhile(/-/); - if (!source.eat(symbolRE)) { - source.skipToEnd(); - return "hs-comment"; - } - } - var t = "hs-varsym"; - if (ch == ':') { - t = "hs-consym"; - } - source.eatWhile(symbolRE); - return t; - } - - return "hs-error"; - } - - function ncomment(type, nest) { - if (nest == 0) { - return normal; - } - return function(source, setState) { - var currNest = nest; - while (!source.eol()) { - ch = source.next(); - if (ch == '{' && source.eat('-')) { - ++currNest; - } - else if (ch == '-' && source.eat('}')) { - --currNest; - if (currNest == 0) { - setState(normal); - return type; - } - } - } - setState(ncomment(type, currNest)); - return type; - } - } - - function stringLiteral(source, setState) { - while (!source.eol()) { - var ch = source.next(); - if (ch == '"') { - setState(normal); - return "hs-string"; - } - if (ch == '\\') { - if (source.eol() || source.eat(whiteCharRE)) { - setState(stringGap); - return "hs-string"; - } - if (source.eat('&')) { - } - else { - source.next(); // should handle other escapes here - } - } - } - setState(normal); - return "hs-error"; - } - - function stringGap(source, setState) { - if (source.eat('\\')) { - return switchState(source, setState, stringLiteral); - } - source.next(); - setState(normal); - return "hs-error"; - } - - - var wellKnownWords = (function() { - var wkw = {}; - function setType(t) { - return function () { - for (var i = 0; i < arguments.length; i++) - wkw[arguments[i]] = t; - } - } - - setType("hs-reservedid")( - "case", "class", "data", "default", "deriving", "do", "else", "foreign", - "if", "import", "in", "infix", "infixl", "infixr", "instance", "let", - "module", "newtype", "of", "then", "type", "where", "_"); - - setType("hs-reservedop")( - "\.\.", ":", "::", "=", "\\", "\"", "<-", "->", "@", "~", "=>"); - - setType("hs-prelude-varsym")( - "!!", "$!", "$", "&&", "+", "++", "-", ".", "/", "/=", "<", "<=", "=<<", - "==", ">", ">=", ">>", ">>=", "^", "^^", "||", "*", "**"); - - setType("hs-prelude-conid")( - "Bool", "Bounded", "Char", "Double", "EQ", "Either", "Enum", "Eq", - "False", "FilePath", "Float", "Floating", "Fractional", "Functor", "GT", - "IO", "IOError", "Int", "Integer", "Integral", "Just", "LT", "Left", - "Maybe", "Monad", "Nothing", "Num", "Ord", "Ordering", "Rational", "Read", - "ReadS", "Real", "RealFloat", "RealFrac", "Right", "Show", "ShowS", - "String", "True"); - - setType("hs-prelude-varid")( - "abs", "acos", "acosh", "all", "and", "any", "appendFile", "asTypeOf", - "asin", "asinh", "atan", "atan2", "atanh", "break", "catch", "ceiling", - "compare", "concat", "concatMap", "const", "cos", "cosh", "curry", - "cycle", "decodeFloat", "div", "divMod", "drop", "dropWhile", "either", - "elem", "encodeFloat", "enumFrom", "enumFromThen", "enumFromThenTo", - "enumFromTo", "error", "even", "exp", "exponent", "fail", "filter", - "flip", "floatDigits", "floatRadix", "floatRange", "floor", "fmap", - "foldl", "foldl1", "foldr", "foldr1", "fromEnum", "fromInteger", - "fromIntegral", "fromRational", "fst", "gcd", "getChar", "getContents", - "getLine", "head", "id", "init", "interact", "ioError", "isDenormalized", - "isIEEE", "isInfinite", "isNaN", "isNegativeZero", "iterate", "last", - "lcm", "length", "lex", "lines", "log", "logBase", "lookup", "map", - "mapM", "mapM_", "max", "maxBound", "maximum", "maybe", "min", "minBound", - "minimum", "mod", "negate", "not", "notElem", "null", "odd", "or", - "otherwise", "pi", "pred", "print", "product", "properFraction", - "putChar", "putStr", "putStrLn", "quot", "quotRem", "read", "readFile", - "readIO", "readList", "readLn", "readParen", "reads", "readsPrec", - "realToFrac", "recip", "rem", "repeat", "replicate", "return", "reverse", - "round", "scaleFloat", "scanl", "scanl1", "scanr", "scanr1", "seq", - "sequence", "sequence_", "show", "showChar", "showList", "showParen", - "showString", "shows", "showsPrec", "significand", "signum", "sin", - "sinh", "snd", "span", "splitAt", "sqrt", "subtract", "succ", "sum", - "tail", "take", "takeWhile", "tan", "tanh", "toEnum", "toInteger", - "toRational", "truncate", "uncurry", "undefined", "unlines", "until", - "unwords", "unzip", "unzip3", "userError", "words", "writeFile", "zip", - "zip3", "zipWith", "zipWith3"); - - return wkw; - })(); - - - - return { - startState: function () { return { f: normal }; }, - copyState: function (s) { return { f: s.f }; }, - - token: function(stream, state) { - var t = state.f(stream, function(s) { state.f = s; }); - var w = stream.current(); - return (w in wellKnownWords) ? wellKnownWords[w] : t; - } - }; - -}); - -CodeMirror.defineMIME("text/x-haskell", "haskell"); diff --git a/plugins/LocalFilesEditor/codemirror/mode/haskell/index.html b/plugins/LocalFilesEditor/codemirror/mode/haskell/index.html deleted file mode 100644 index 0bf34d570..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/haskell/index.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - CodeMirror 2: Haskell mode - - - - - - - - -

CodeMirror 2: Haskell mode

- -
- - - -

MIME types defined: text/x-haskell.

- - diff --git a/plugins/LocalFilesEditor/codemirror/mode/htmlmixed/htmlmixed.js b/plugins/LocalFilesEditor/codemirror/mode/htmlmixed/htmlmixed.js deleted file mode 100644 index 8d7165201..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/htmlmixed/htmlmixed.js +++ /dev/null @@ -1,66 +0,0 @@ -CodeMirror.defineMode("htmlmixed", function(config, parserConfig) { - var htmlMode = CodeMirror.getMode(config, {name: "xml", htmlMode: true}); - var jsMode = CodeMirror.getMode(config, "javascript"); - var cssMode = CodeMirror.getMode(config, "css"); - - function html(stream, state) { - var style = htmlMode.token(stream, state.htmlState); - if (style == "xml-tag" && stream.current() == ">" && state.htmlState.context) { - if (/^script$/i.test(state.htmlState.context.tagName)) { - state.token = javascript; - state.localState = jsMode.startState(htmlMode.indent(state.htmlState, "")); - } - else if (/^style$/i.test(state.htmlState.context.tagName)) { - state.token = css; - state.localState = cssMode.startState(htmlMode.indent(state.htmlState, "")); - } - } - return style; - } - function javascript(stream, state) { - if (stream.match(/^<\/\s*script\s*>/i, false)) { - state.token = html; - state.curState = null; - return html(stream, state); - } - return jsMode.token(stream, state.localState); - } - function css(stream, state) { - if (stream.match(/^<\/\s*style\s*>/i, false)) { - state.token = html; - state.localState = null; - return html(stream, state); - } - return cssMode.token(stream, state.localState); - } - - return { - startState: function() { - var state = htmlMode.startState(); - return {token: html, localState: null, htmlState: state}; - }, - - copyState: function(state) { - if (state.localState) - var local = CodeMirror.copyState(state.token == css ? cssMode : jsMode, state.localState); - return {token: state.token, localState: local, htmlState: CodeMirror.copyState(htmlMode, state.htmlState)}; - }, - - token: function(stream, state) { - return state.token(stream, state); - }, - - indent: function(state, textAfter) { - if (state.token == html || /^\s*<\//.test(textAfter)) - return htmlMode.indent(state.htmlState, textAfter); - else if (state.token == javascript) - return jsMode.indent(state.localState, textAfter); - else - return cssMode.indent(state.localState, textAfter); - }, - - electricChars: "/{}:" - } -}); - -CodeMirror.defineMIME("text/html", "htmlmixed"); diff --git a/plugins/LocalFilesEditor/codemirror/mode/htmlmixed/index.html b/plugins/LocalFilesEditor/codemirror/mode/htmlmixed/index.html deleted file mode 100644 index c661c98d5..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/htmlmixed/index.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - CodeMirror 2: HTML mixed mode - - - - - - - - - - - - - -

CodeMirror 2: HTML mixed mode

-
- - -

The HTML mixed mode depends on the XML, JavaScript, and CSS modes.

- -

MIME types defined: text/html - (redefined, only takes effect if you load this parser after the - XML parser).

- - - diff --git a/plugins/LocalFilesEditor/codemirror/mode/javascript/index.html b/plugins/LocalFilesEditor/codemirror/mode/javascript/index.html deleted file mode 100644 index 7b528e041..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/javascript/index.html +++ /dev/null @@ -1,78 +0,0 @@ - - - - CodeMirror 2: JavaScript mode - - - - - - - - -

CodeMirror 2: JavaScript mode

- -
- - - -

JavaScript mode supports a single configuration - option, json, which will set the mode to expect JSON - data rather than a JavaScript program.

- -

MIME types defined: text/javascript, application/json.

- - diff --git a/plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.css b/plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.css deleted file mode 100644 index 84fb1dfd4..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.css +++ /dev/null @@ -1,6 +0,0 @@ -span.js-keyword {color: #90b;} -span.js-atom {color: #291;} -span.js-variabledef {color: #00f;} -span.js-localvariable {color: #049;} -span.js-comment {color: #a70;} -span.js-string {color: #a22;} diff --git a/plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.js b/plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.js deleted file mode 100644 index 065216591..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.js +++ /dev/null @@ -1,348 +0,0 @@ -CodeMirror.defineMode("javascript", function(config, parserConfig) { - var indentUnit = config.indentUnit; - var jsonMode = parserConfig.json; - - // Tokenizer - - var keywords = function(){ - function kw(type) {return {type: type, style: "js-keyword"};} - var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"); - var operator = kw("operator"), atom = {type: "atom", style: "js-atom"}; - return { - "if": A, "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B, - "return": C, "break": C, "continue": C, "new": C, "delete": C, "throw": C, - "var": kw("var"), "function": kw("function"), "catch": kw("catch"), - "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), - "in": operator, "typeof": operator, "instanceof": operator, - "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom - }; - }(); - - var isOperatorChar = /[+\-*&%=<>!?|]/; - - function chain(stream, state, f) { - state.tokenize = f; - return f(stream, state); - } - - function nextUntilUnescaped(stream, end) { - var escaped = false, next; - while ((next = stream.next()) != null) { - if (next == end && !escaped) - return false; - escaped = !escaped && next == "\\"; - } - return escaped; - } - - // Used as scratch variables to communicate multiple values without - // consing up tons of objects. - var type, content; - function ret(tp, style, cont) { - type = tp; content = cont; - return style; - } - - function jsTokenBase(stream, state) { - var ch = stream.next(); - if (ch == '"' || ch == "'") - return chain(stream, state, jsTokenString(ch)); - else if (/[\[\]{}\(\),;\:\.]/.test(ch)) - return ret(ch); - else if (ch == "0" && stream.eat(/x/i)) { - stream.eatWhile(/[\da-f]/i); - return ret("number", "js-atom"); - } - else if (/\d/.test(ch)) { - stream.match(/^\d*(?:\.\d*)?(?:e[+\-]?\d+)?/); - return ret("number", "js-atom"); - } - else if (ch == "/") { - if (stream.eat("*")) { - return chain(stream, state, jsTokenComment); - } - else if (stream.eat("/")) { - stream.skipToEnd(); - return ret("comment", "js-comment"); - } - else if (state.reAllowed) { - nextUntilUnescaped(stream, "/"); - stream.eatWhile(/[gimy]/); // 'y' is "sticky" option in Mozilla - return ret("regexp", "js-string"); - } - else { - stream.eatWhile(isOperatorChar); - return ret("operator", null, stream.current()); - } - } - else if (isOperatorChar.test(ch)) { - stream.eatWhile(isOperatorChar); - return ret("operator", null, stream.current()); - } - else { - stream.eatWhile(/[\w\$_]/); - var word = stream.current(), known = keywords.propertyIsEnumerable(word) && keywords[word]; - return known ? ret(known.type, known.style, word) : - ret("variable", "js-variable", word); - } - } - - function jsTokenString(quote) { - return function(stream, state) { - if (!nextUntilUnescaped(stream, quote)) - state.tokenize = jsTokenBase; - return ret("string", "js-string"); - }; - } - - function jsTokenComment(stream, state) { - var maybeEnd = false, ch; - while (ch = stream.next()) { - if (ch == "/" && maybeEnd) { - state.tokenize = jsTokenBase; - break; - } - maybeEnd = (ch == "*"); - } - return ret("comment", "js-comment"); - } - - // Parser - - var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true}; - - function JSLexical(indented, column, type, align, prev, info) { - this.indented = indented; - this.column = column; - this.type = type; - this.prev = prev; - this.info = info; - if (align != null) this.align = align; - } - - function inScope(state, varname) { - for (var v = state.localVars; v; v = v.next) - if (v.name == varname) return true; - } - - function parseJS(state, style, type, content, stream) { - var cc = state.cc; - // Communicate our context to the combinators. - // (Less wasteful than consing up a hundred closures on every call.) - cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; - - if (!state.lexical.hasOwnProperty("align")) - state.lexical.align = true; - - while(true) { - var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; - if (combinator(type, content)) { - while(cc.length && cc[cc.length - 1].lex) - cc.pop()(); - if (cx.marked) return cx.marked; - if (type == "variable" && inScope(state, content)) return "js-localvariable"; - return style; - } - } - } - - // Combinator utils - - var cx = {state: null, column: null, marked: null, cc: null}; - function pass() { - for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); - } - function cont() { - pass.apply(null, arguments); - return true; - } - function register(varname) { - var state = cx.state; - if (state.context) { - cx.marked = "js-variabledef"; - for (var v = state.localVars; v; v = v.next) - if (v.name == varname) return; - state.localVars = {name: varname, next: state.localVars}; - } - } - - // Combinators - - var defaultVars = {name: "this", next: {name: "arguments"}}; - function pushcontext() { - if (!cx.state.context) cx.state.localVars = defaultVars; - cx.state.context = {prev: cx.state.context, vars: cx.state.localVars}; - } - function popcontext() { - cx.state.localVars = cx.state.context.vars; - cx.state.context = cx.state.context.prev; - } - function pushlex(type, info) { - var result = function() { - var state = cx.state; - state.lexical = new JSLexical(state.indented, cx.stream.column(), type, null, state.lexical, info) - }; - result.lex = true; - return result; - } - function poplex() { - var state = cx.state; - if (state.lexical.prev) { - if (state.lexical.type == ")") - state.indented = state.lexical.indented; - state.lexical = state.lexical.prev; - } - } - poplex.lex = true; - - function expect(wanted) { - return function expecting(type) { - if (type == wanted) return cont(); - else if (wanted == ";") return pass(); - else return cont(arguments.callee); - }; - } - - function statement(type) { - if (type == "var") return cont(pushlex("vardef"), vardef1, expect(";"), poplex); - if (type == "keyword a") return cont(pushlex("form"), expression, statement, poplex); - if (type == "keyword b") return cont(pushlex("form"), statement, poplex); - if (type == "{") return cont(pushlex("}"), block, poplex); - if (type == ";") return cont(); - if (type == "function") return cont(functiondef); - if (type == "for") return cont(pushlex("form"), expect("("), pushlex(")"), forspec1, expect(")"), - poplex, statement, poplex); - if (type == "variable") return cont(pushlex("stat"), maybelabel); - if (type == "switch") return cont(pushlex("form"), expression, pushlex("}", "switch"), expect("{"), - block, poplex, poplex); - if (type == "case") return cont(expression, expect(":")); - if (type == "default") return cont(expect(":")); - if (type == "catch") return cont(pushlex("form"), pushcontext, expect("("), funarg, expect(")"), - statement, poplex, popcontext); - return pass(pushlex("stat"), expression, expect(";"), poplex); - } - function expression(type) { - if (atomicTypes.hasOwnProperty(type)) return cont(maybeoperator); - if (type == "function") return cont(functiondef); - if (type == "keyword c") return cont(expression); - if (type == "(") return cont(pushlex(")"), expression, expect(")"), poplex, maybeoperator); - if (type == "operator") return cont(expression); - if (type == "[") return cont(pushlex("]"), commasep(expression, "]"), poplex, maybeoperator); - if (type == "{") return cont(pushlex("}"), commasep(objprop, "}"), poplex, maybeoperator); - return cont(); - } - function maybeoperator(type, value) { - if (type == "operator" && /\+\+|--/.test(value)) return cont(maybeoperator); - if (type == "operator") return cont(expression); - if (type == ";") return; - if (type == "(") return cont(pushlex(")"), commasep(expression, ")"), poplex, maybeoperator); - if (type == ".") return cont(property, maybeoperator); - if (type == "[") return cont(pushlex("]"), expression, expect("]"), poplex, maybeoperator); - } - function maybelabel(type) { - if (type == ":") return cont(poplex, statement); - return pass(maybeoperator, expect(";"), poplex); - } - function property(type) { - if (type == "variable") {cx.marked = "js-property"; return cont();} - } - function objprop(type) { - if (type == "variable") cx.marked = "js-property"; - if (atomicTypes.hasOwnProperty(type)) return cont(expect(":"), expression); - } - function commasep(what, end) { - function proceed(type) { - if (type == ",") return cont(what, proceed); - if (type == end) return cont(); - return cont(expect(end)); - } - return function commaSeparated(type) { - if (type == end) return cont(); - else return pass(what, proceed); - }; - } - function block(type) { - if (type == "}") return cont(); - return pass(statement, block); - } - function vardef1(type, value) { - if (type == "variable"){register(value); return cont(vardef2);} - return cont(); - } - function vardef2(type, value) { - if (value == "=") return cont(expression, vardef2); - if (type == ",") return cont(vardef1); - } - function forspec1(type) { - if (type == "var") return cont(vardef1, forspec2); - if (type == ";") return pass(forspec2); - if (type == "variable") return cont(formaybein); - return pass(forspec2); - } - function formaybein(type, value) { - if (value == "in") return cont(expression); - return cont(maybeoperator, forspec2); - } - function forspec2(type, value) { - if (type == ";") return cont(forspec3); - if (value == "in") return cont(expression); - return cont(expression, expect(";"), forspec3); - } - function forspec3(type) { - if (type != ")") cont(expression); - } - function functiondef(type, value) { - if (type == "variable") {register(value); return cont(functiondef);} - if (type == "(") return cont(pushlex(")"), pushcontext, commasep(funarg, ")"), poplex, statement, popcontext); - } - function funarg(type, value) { - if (type == "variable") {register(value); return cont();} - } - - // Interface - - return { - startState: function(basecolumn) { - return { - tokenize: jsTokenBase, - reAllowed: true, - cc: [], - lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), - localVars: null, - context: null, - indented: 0 - }; - }, - - token: function(stream, state) { - if (stream.sol()) { - if (!state.lexical.hasOwnProperty("align")) - state.lexical.align = false; - state.indented = stream.indentation(); - } - if (stream.eatSpace()) return null; - var style = state.tokenize(stream, state); - if (type == "comment") return style; - state.reAllowed = type == "operator" || type == "keyword c" || type.match(/^[\[{}\(,;:]$/); - return parseJS(state, style, type, content, stream); - }, - - indent: function(state, textAfter) { - if (state.tokenize != jsTokenBase) return 0; - var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, - type = lexical.type, closing = firstChar == type; - if (type == "vardef") return lexical.indented + 4; - else if (type == "form" && firstChar == "{") return lexical.indented; - else if (type == "stat" || type == "form") return lexical.indented + indentUnit; - else if (lexical.info == "switch" && !closing) - return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); - else if (lexical.align) return lexical.column + (closing ? 0 : 1); - else return lexical.indented + (closing ? 0 : indentUnit); - }, - - electricChars: ":{}" - }; -}); - -CodeMirror.defineMIME("text/javascript", "javascript"); -CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); diff --git a/plugins/LocalFilesEditor/codemirror/mode/php/index.html b/plugins/LocalFilesEditor/codemirror/mode/php/index.html deleted file mode 100644 index 020e24898..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/php/index.html +++ /dev/null @@ -1,52 +0,0 @@ - - - - CodeMirror 2: PHP mode - - - - - - - - - - - - - - - -

CodeMirror 2: PHP mode

- -
- - - -

Simple HTML/PHP mode based on - the C-like mode. Depends on XML, - JavaScript, CSS, and C-like modes.

- -

MIME types defined: application/x-httpd-php.

- - diff --git a/plugins/LocalFilesEditor/codemirror/mode/php/php.js b/plugins/LocalFilesEditor/codemirror/mode/php/php.js deleted file mode 100644 index a23538f6b..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/php/php.js +++ /dev/null @@ -1,83 +0,0 @@ -(function() { - function keywords(str) { - var obj = {}, words = str.split(" "); - for (var i = 0; i < words.length; ++i) obj[words[i]] = true; - return obj; - } - var phpKeywords = - keywords("abstract and array as break case catch cfunction class clone const continue declare " + - "default do else elseif enddeclare endfor endforeach endif endswitch endwhile extends " + - "final for foreach function global goto if implements interface instanceof namespace " + - "new or private protected public static switch throw try use var while xor"); - - CodeMirror.defineMode("php", function(config, parserConfig) { - var htmlMode = CodeMirror.getMode(config, "text/html"); - var jsMode = CodeMirror.getMode(config, "text/javascript"); - var cssMode = CodeMirror.getMode(config, "text/css"); - var phpMode = CodeMirror.getMode(config, {name: "clike", keywords: phpKeywords, multiLineStrings: true, $vars: true}); - - function dispatch(stream, state) { // TODO open PHP inside text/css - if (state.curMode == htmlMode) { - var style = htmlMode.token(stream, state.curState); - if (style == "xml-processing" && /^<\?/.test(stream.current())) { - state.curMode = phpMode; - state.curState = state.php; - state.curClose = /^\?>/; - } - else if (style == "xml-tag" && stream.current() == ">" && state.curState.context) { - if (/^script$/i.test(state.curState.context.tagName)) { - state.curMode = jsMode; - state.curState = jsMode.startState(htmlMode.indent(state.curState, "")); - state.curClose = /^<\/\s*script\s*>/i; - } - else if (/^style$/i.test(state.curState.context.tagName)) { - state.curMode = cssMode; - state.curState = cssMode.startState(htmlMode.indent(state.curState, "")); - state.curClose = /^<\/\s*style\s*>/i; - } - } - return style; - } - else if (stream.match(state.curClose, false)) { - state.curMode = htmlMode; - state.curState = state.html; - state.curClose = null; - return dispatch(stream, state); - } - else return state.curMode.token(stream, state.curState); - } - - return { - startState: function() { - var html = htmlMode.startState(); - return {html: html, - php: phpMode.startState(), - curMode: htmlMode, - curState: html, - curClose: null} - }, - - copyState: function(state) { - var html = state.html, htmlNew = CodeMirror.copyState(htmlMode, html), - php = state.php, phpNew = CodeMirror.copyState(phpMode, php), cur; - if (state.curState == html) cur = htmlNew; - else if (state.curState == php) cur = phpNew; - else cur = CodeMirror.copyState(state.curMode, state.curState); - return {html: htmlNew, php: phpNew, curMode: state.curMode, curState: cur, curClose: state.curClose}; - }, - - token: dispatch, - - indent: function(state, textAfter) { - if ((state.curMode != phpMode && /^\s*<\//.test(textAfter)) || - (state.curMode == phpMode && /^\?>/.test(textAfter))) - return htmlMode.indent(state.html, textAfter); - return state.curMode.indent(state.curState, textAfter); - }, - - electricChars: "/{}:" - } - }); -})(); - -CodeMirror.defineMIME("application/x-httpd-php", "php"); diff --git a/plugins/LocalFilesEditor/codemirror/mode/stex/index.html b/plugins/LocalFilesEditor/codemirror/mode/stex/index.html deleted file mode 100644 index 73b07ac13..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/stex/index.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - CodeMirror 2: sTeX mode - - - - - - - - -

CodeMirror 2: sTeX mode

-
- - -

MIME types defined: text/stex.

- - - diff --git a/plugins/LocalFilesEditor/codemirror/mode/stex/stex.css b/plugins/LocalFilesEditor/codemirror/mode/stex/stex.css deleted file mode 100644 index 64b975e98..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/stex/stex.css +++ /dev/null @@ -1,20 +0,0 @@ -span.css-at {color: #708;} -span.css-unit {color: #281;} -span.css-value {color: #708;} -span.css-identifier {color: black;} -span.css-selector {color: #11B;} -span.css-important {color: #00F;} -span.css-colorcode {color: #299;} -span.css-comment {color: #A70;} -span.css-string {color: #A22;} - -span.stex-unit { color: #281; } -span.stex-identifier { color: black; } -span.stex-slash { color: #FAA; } -span.stex-command { color: #00F; } -span.stex-comment { color: #A70; } -span.stex-import { color: #00F; } -span.stex-filepath { color: #852626; } -span.stex-module { color: #852626; } -span.stex-error { text-decoration: underline; color: red; } -span.stex-string { color: #A22; } diff --git a/plugins/LocalFilesEditor/codemirror/mode/stex/stex.js b/plugins/LocalFilesEditor/codemirror/mode/stex/stex.js deleted file mode 100644 index 10e0d6cad..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/stex/stex.js +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Author: Constantin Jucovschi (c.jucovschi@jacobs-university.de) - * Licence: MIT - */ - -CodeMirror.defineMode("stex", function(cmCfg, modeCfg) -{ - function pushCommand(state, command) { - state.cmdState.push(command); - } - - function peekCommand(state) { - if (state.cmdState.length>0) - return state.cmdState[state.cmdState.length-1]; - else - return null; - } - - function popCommand(state) { - if (state.cmdState.length>0) { - var plug = state.cmdState.pop(); - plug.closeBracket(); - } - } - - function applyMostPowerful(state) { - context = state.cmdState; - for (var i = context.length - 1; i >= 0; i--) { - var plug = context[i]; - if (plug.name=="DEFAULT") - continue; - return plug.styleIdentifier(); - } - return "stex-identifier"; - } - - function addPluginPattern(pluginName, cmdStyle, brackets, styles) { - return function () { - this.name=pluginName; - this.bracketNo = 0; - this.style=cmdStyle; - this.styles = styles; - this.brackets = brackets; - - this.styleIdentifier = function(content) { - if (this.bracketNo<=this.styles.length) - return this.styles[this.bracketNo-1]; - else - return null; - }; - this.openBracket = function(content) { - this.bracketNo++; - return "stex-bracket"; - }; - this.closeBracket = function(content) { - }; - } - } - - var plugins = new Array(); - - plugins["importmodule"] = addPluginPattern("importmodule", "stex-command", "{[", ["stex-filepath", "stex-module"]); - plugins["documentclass"] = addPluginPattern("documentclass", "stex-command", "{[", ["", "stex-unit"]); - plugins["usepackage"] = addPluginPattern("documentclass", "stex-command", "[", ["stex-unit"]); - plugins["begin"] = addPluginPattern("documentclass", "stex-command", "[", ["stex-unit"]); - plugins["end"] = addPluginPattern("documentclass", "stex-command", "[", ["stex-unit"]); - - plugins["DEFAULT"] = function () { - this.name="DEFAULT"; - this.style="stex-command"; - - this.styleIdentifier = function(content) { - }; - this.openBracket = function(content) { - }; - this.closeBracket = function(content) { - }; - }; - - function setState(state, f) { - state.f = f; - } - - function normal(source, state) { - if (source.match(/^\\[a-z]+/)) { - cmdName = source.current(); - cmdName = cmdName.substr(1, cmdName.length-1); - var plug = plugins[cmdName]; - if (typeof(plug) == 'undefined') { - plug = plugins["DEFAULT"]; - } - plug = new plug(); - pushCommand(state, plug); - setState(state, beginParams); - return plug.style; - } - - var ch = source.next(); - if (ch == "%") { - setState(state, inCComment); - return "stex-comment"; - } - else if (ch=='}' || ch==']') { - plug = peekCommand(state); - if (plug) { - plug.closeBracket(ch); - setState(state, beginParams); - } else - return "stex-error"; - return "stex-bracket"; - } else if (ch=='{' || ch=='[') { - plug = plugins["DEFAULT"]; - plug = new plug(); - pushCommand(state, plug); - return "stex-bracket"; - } - else if (/\d/.test(ch)) { - source.eatWhile(/[\w.%]/); - return "stex-unit"; - } - else { - source.eatWhile(/[\w-_]/); - return applyMostPowerful(state); - } - } - - function inCComment(source, state) { - source.skipToEnd(); - setState(state, normal); - return "css-comment"; - } - - function beginParams(source, state) { - var ch = source.peek(); - if (ch == '{' || ch == '[') { - lastPlug = peekCommand(state); - style = lastPlug.openBracket(ch); - source.eat(ch); - setState(state, normal); - return "stex-bracket"; - } - if (/[ \t\r]/.test(ch)) { - source.eat(ch); - return null; - } - setState(state, normal); - lastPlug = peekCommand(state); - if (lastPlug) { - popCommand(state); - } - return normal(source, state); - } - - return { - startState: function() { return { f:normal, cmdState:[] }; }, - copyState: function(s) { return { f: s.f, cmdState: s.cmdState.slice(0, s.cmdState.length) }; }, - - token: function(stream, state) { - var t = state.f(stream, state); - var w = stream.current(); - return t; - } - }; -}); - - -CodeMirror.defineMIME("text/x-stex", "stex"); diff --git a/plugins/LocalFilesEditor/codemirror/mode/xml/index.html b/plugins/LocalFilesEditor/codemirror/mode/xml/index.html deleted file mode 100644 index 5ad7c63fe..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/xml/index.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - CodeMirror 2: XML mode - - - - - - - - -

CodeMirror 2: XML mode

-
- -

The XML mode supports two configuration parameters:

-
-
htmlMode (boolean)
-
This switches the mode to parse HTML instead of XML. This - means attributes do not have to be quoted, and some elements - (such as br) do not require a closing tag.
-
alignCDATA (boolean)
-
Setting this to true will force the opening tag of CDATA - blocks to not be indented.
-
- -

MIME types defined: application/xml, text/html.

- - diff --git a/plugins/LocalFilesEditor/codemirror/mode/xml/xml.css b/plugins/LocalFilesEditor/codemirror/mode/xml/xml.css deleted file mode 100644 index 86845faa6..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/xml/xml.css +++ /dev/null @@ -1,7 +0,0 @@ -span.xml-tag {color: #a0b;} -span.xml-attribute {color: #281;} -span.xml-attname {color: #00f;} -span.xml-comment {color: #a70;} -span.xml-cdata {color: #48a;} -span.xml-processing {color: #999;} -span.xml-entity {color: #a22;} diff --git a/plugins/LocalFilesEditor/codemirror/mode/xml/xml.js b/plugins/LocalFilesEditor/codemirror/mode/xml/xml.js deleted file mode 100644 index 21da47b22..000000000 --- a/plugins/LocalFilesEditor/codemirror/mode/xml/xml.js +++ /dev/null @@ -1,206 +0,0 @@ -CodeMirror.defineMode("xml", function(config, parserConfig) { - var indentUnit = config.indentUnit; - var Kludges = parserConfig.htmlMode ? { - autoSelfClosers: {"br": true, "img": true, "hr": true, "link": true, "input": true, - "meta": true, "col": true, "frame": true, "base": true, "area": true}, - doNotIndent: {"pre": true, "!cdata": true}, - allowUnquoted: true - } : {autoSelfClosers: {}, doNotIndent: {"!cdata": true}, allowUnquoted: false}; - var alignCDATA = parserConfig.alignCDATA; - - // Return variables for tokenizers - var tagName, type; - - function inText(stream, state) { - function chain(parser) { - state.tokenize = parser; - return parser(stream, state); - } - - var ch = stream.next(); - if (ch == "<") { - if (stream.eat("!")) { - if (stream.eat("[")) { - if (stream.match("[CDATA[")) return chain(inBlock("xml-cdata", "]]>")); - else return null; - } - else if (stream.match("--")) return chain(inBlock("xml-comment", "-->")); - else if (stream.match("DOCTYPE")) { - stream.eatWhile(/[\w\._\-]/); - return chain(inBlock("xml-doctype", ">")); - } - else return null; - } - else if (stream.eat("?")) { - stream.eatWhile(/[\w\._\-]/); - state.tokenize = inBlock("xml-processing", "?>"); - return "xml-processing"; - } - else { - type = stream.eat("/") ? "closeTag" : "openTag"; - stream.eatSpace(); - tagName = ""; - var c; - while ((c = stream.eat(/[^\s\u00a0=<>\"\'\/?]/))) tagName += c; - state.tokenize = inTag; - return "xml-tag"; - } - } - else if (ch == "&") { - stream.eatWhile(/[^;]/); - stream.eat(";"); - return "xml-entity"; - } - else { - stream.eatWhile(/[^&<]/); - return null; - } - } - - function inTag(stream, state) { - var ch = stream.next(); - if (ch == ">" || (ch == "/" && stream.eat(">"))) { - state.tokenize = inText; - type = ch == ">" ? "endTag" : "selfcloseTag"; - return "xml-tag"; - } - else if (ch == "=") { - type = "equals"; - return null; - } - else if (/[\'\"]/.test(ch)) { - state.tokenize = inAttribute(ch); - return state.tokenize(stream, state); - } - else { - stream.eatWhile(/[^\s\u00a0=<>\"\'\/?]/); - return "xml-word"; - } - } - - function inAttribute(quote) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.next() == quote) { - state.tokenize = inTag; - break; - } - } - return "xml-attribute"; - }; - } - - function inBlock(style, terminator) { - return function(stream, state) { - while (!stream.eol()) { - if (stream.match(terminator)) { - state.tokenize = inText; - break; - } - stream.next(); - } - return style; - }; - } - - var curState, setStyle; - function pass() { - for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]); - } - function cont() { - pass.apply(null, arguments); - return true; - } - - function pushContext(tagName, startOfLine) { - var noIndent = Kludges.doNotIndent.hasOwnProperty(tagName) || (curState.context && curState.context.noIndent); - curState.context = { - prev: curState.context, - tagName: tagName, - indent: curState.indented, - startOfLine: startOfLine, - noIndent: noIndent - }; - } - function popContext() { - if (curState.context) curState.context = curState.context.prev; - } - - function element(type) { - if (type == "openTag") {curState.tagName = tagName; return cont(attributes, endtag(curState.startOfLine));} - else if (type == "closeTag") {popContext(); return cont(endclosetag);} - else if (type == "xml-cdata") { - if (!curState.context || curState.context.name != "!cdata") pushContext("!cdata"); - if (curState.tokenize == inText) popContext(); - return cont(); - } - else return cont(); - } - function endtag(startOfLine) { - return function(type) { - if (type == "selfcloseTag" || - (type == "endTag" && Kludges.autoSelfClosers.hasOwnProperty(curState.tagName.toLowerCase()))) - return cont(); - if (type == "endTag") {pushContext(curState.tagName, startOfLine); return cont();} - return cont(); - }; - } - function endclosetag(type) { - if (type == "endTag") return cont(); - return pass(); - } - - function attributes(type) { - if (type == "xml-word") {setStyle = "xml-attname"; return cont(attributes);} - if (type == "equals") return cont(attvalue, attributes); - return pass(); - } - function attvalue(type) { - if (type == "xml-word" && Kludges.allowUnquoted) {setStyle = "xml-attribute"; return cont();} - if (type == "xml-attribute") return cont(); - return pass(); - } - - return { - startState: function() { - return {tokenize: inText, cc: [], indented: 0, startOfLine: true, tagName: null, context: null}; - }, - - token: function(stream, state) { - if (stream.sol()) { - state.startOfLine = true; - state.indented = stream.indentation(); - } - if (stream.eatSpace()) return null; - - setStyle = type = tagName = null; - var style = state.tokenize(stream, state); - if ((style || type) && style != "xml-comment") { - curState = state; - while (true) { - var comb = state.cc.pop() || element; - if (comb(type || style)) break; - } - } - state.startOfLine = false; - return setStyle || style; - }, - - indent: function(state, textAfter) { - var context = state.context; - if (context && context.noIndent) return 0; - if (alignCDATA && /fs_themes))) - { - $page['theme'] = get_default_theme(); - } - - $edited_file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR . 'css/'.$page['theme'].'-rules.css'; -} - -$template->assign('theme', $page['theme']); - -if (file_exists($edited_file)) -{ - $content_file = file_get_contents($edited_file); -} -else -{ - $content_file = "/* " . l10n('locfiledit_newfile') . " */\n\n"; -} - -$selected = 0; -$value = '~common~'; -$file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR . 'css/rules.css'; - -$options[$value] = (file_exists($file) ? '✔' : '✘').' local / css / rules.css'; -if ($page['theme'] == $value) -{ - $selected = $value; -} - -// themes are displayed in the same order as on screen -// [Administration > Configuration > Themes] - -$themes->sort_fs_themes(); -$default_theme = get_default_theme(); -$db_themes = $themes->get_db_themes(); - -$db_theme_ids = array(); -foreach ($db_themes as $db_theme) -{ - $db_theme_ids[] = $db_theme['id']; -} - -$active_themes = array(); -$inactive_themes = array(); - -foreach ($themes->fs_themes as $theme_id => $fs_theme) -{ - if ($theme_id == 'default') - { - continue; - } - - if (in_array($theme_id, $db_theme_ids)) - { - if ($theme_id == $default_theme) - { - array_unshift($active_themes, $fs_theme); - } - else - { - $active_themes[] = $fs_theme; - } - } - else - { - $inactive_themes[] = $fs_theme; - } -} - -$active_theme_options = array(); -foreach ($active_themes as $theme) -{ - $file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR . 'css/'.$theme['id'].'-rules.css'; - - $label = (file_exists($file) ? '✔' : '✘').' '.$theme['name']; - - if ($default_theme == $theme['id']) - { - $label.= ' ('.l10n('default').')'; - } - - $active_theme_options[$theme['id']] = $label; - - if ($theme['id'] == $page['theme']) - { - $selected = $theme['id']; - } -} - -if (count($active_theme_options) > 0) -{ - $options[l10n('Active Themes')] = $active_theme_options; -} - -$inactive_theme_options = array(); -foreach ($inactive_themes as $theme) -{ - $file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR . 'css/'.$theme['id'].'-rules.css'; - - $inactive_theme_options[$theme['id']] = (file_exists($file) ? '✔' : '✘').' '.$theme['name']; - - if ($theme['id'] == $page['theme']) - { - $selected = $theme['id']; - } -} - -if (count($inactive_theme_options) > 0) -{ - $options[l10n('Inactive Themes')] = $inactive_theme_options; -} - -$template->assign( - 'css_lang_tpl', - array( - 'SELECT_NAME' => 'theme_select', - 'OPTIONS' => $options, - 'SELECTED' => $selected - ) -); - -$codemirror_mode = 'text/css'; -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/functions.inc.php b/plugins/LocalFilesEditor/include/functions.inc.php deleted file mode 100644 index 46906225d..000000000 --- a/plugins/LocalFilesEditor/include/functions.inc.php +++ /dev/null @@ -1,114 +0,0 @@ -'), '', $code); - if (function_exists('token_get_all')) - { - $b = 0; - foreach (token_get_all($code) as $token) - { - if ('{' == $token) ++$b; - else if ('}' == $token) --$b; - } - if ($b) return false; - else - { - ob_start(); - $eval = eval('if(0){' . $code . '}'); - ob_end_clean(); - if ($eval === false) return false; - } - } - return ''; -} - -/** - * returns true or false if $str is bool - * returns $str if $str is integer - * else "$str" - * - * @param string - */ -function editarea_quote($value) -{ - switch (gettype($value)) - { - case "boolean": - return $value ? 'true' : 'false'; - case "integer": - return $value; - default: - return '"'.$value.'"'; - } -} - -/** - * returns bak file for restore - * @param string - */ -function get_bak_file($file) -{ - if (get_extension($file) == 'php') - { - return substr_replace($file, '.bak', strrpos($file , '.'), 0); - } - else - { - return $file . '.bak'; - } -} - -/** - * returns dirs and subdirs - * retun array - * @param string - */ -function get_rec_dirs($path='') -{ - $options = array(); - if (is_dir($path)) - { - $fh = opendir($path); - while ($file = readdir($fh)) - { - $pathfile = $path . '/' . $file; - if ($file != '.' and $file != '..' and $file != '.svn' and is_dir($pathfile)) - { - $options[$pathfile] = str_replace(array('./', '/'), array('', ' / '), $pathfile); - $options = array_merge($options, get_rec_dirs($pathfile)); - } - } - closedir($fh); - } - return $options; -} - -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/lang.inc.php b/plugins/LocalFilesEditor/include/lang.inc.php deleted file mode 100644 index e32a26c49..000000000 --- a/plugins/LocalFilesEditor/include/lang.inc.php +++ /dev/null @@ -1,69 +0,0 @@ -assign('language', $page['language']); - -$edited_file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR.'language/'.$page['language'].'.lang.php';; - -if (file_exists($edited_file)) -{ - $content_file = file_get_contents($edited_file); -} -else -{ - $content_file = ""; -} - -$selected = 0; -foreach (get_languages() as $language_code => $language_name) -{ - $file = PHPWG_ROOT_PATH.PWG_LOCAL_DIR.'language/'.$language_code.'.lang.php'; - - $options[$language_code] = (file_exists($file) ? '✔' : '✘').' '.$language_name; - - if ($page['language'] == $language_code) - { - $selected = $language_code; - $template->assign('show_default', array( - array( - 'URL' => LOCALEDIT_PATH.'show_default.php?file=language/'.$language_code.'/common.lang.php', - 'FILE' => 'common.lang.php' - ), - array( - 'URL' => LOCALEDIT_PATH.'show_default.php?file=language/'.$language_code.'/admin.lang.php', - 'FILE' => 'admin.lang.php' - ) - ) - ); - } -} - -$template->assign( - 'css_lang_tpl', - array( - 'SELECT_NAME' => 'language_select', - 'OPTIONS' => $options, - 'SELECTED' => $selected - ) - ); - -$codemirror_mode = 'application/x-httpd-php'; - -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/localconf.inc.php b/plugins/LocalFilesEditor/include/localconf.inc.php deleted file mode 100644 index b801db236..000000000 --- a/plugins/LocalFilesEditor/include/localconf.inc.php +++ /dev/null @@ -1,26 +0,0 @@ -"; -} - -$template->assign('show_default', array( - array( - 'URL' => LOCALEDIT_PATH.'show_default.php?file=include/config_default.inc.php', - 'FILE' => 'config_default.inc.php' - ) - ) -); - -$codemirror_mode = 'application/x-httpd-php'; - -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/plug.inc.php b/plugins/LocalFilesEditor/include/plug.inc.php deleted file mode 100644 index 55c4b2dde..000000000 --- a/plugins/LocalFilesEditor/include/plug.inc.php +++ /dev/null @@ -1,25 +0,0 @@ -"; -} - -$codemirror_mode = 'application/x-httpd-php'; - -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/include/tpl.inc.php b/plugins/LocalFilesEditor/include/tpl.inc.php deleted file mode 100644 index c1079a8e7..000000000 --- a/plugins/LocalFilesEditor/include/tpl.inc.php +++ /dev/null @@ -1,157 +0,0 @@ -assign('template', $_POST['template']); - - $edited_file = './template-extension/'.$_POST['template']; -} - -$content_file = ''; -if (file_exists($edited_file)) -{ - $content_file = file_get_contents($edited_file); -} - -$newfile_page = isset($_GET['newfile']); - -// Edit new tpl file -if (isset($_POST['create_tpl'])) -{ - $filename = $_POST['tpl_name']; - if (empty($filename)) - { - $page['errors'][] = l10n('locfiledit_empty_filename'); - } - if (get_extension($filename) != 'tpl') - { - $filename .= '.tpl'; - } - if (!preg_match('/^[a-zA-Z0-9-_.]+$/', $filename)) - { - $page['errors'][] = l10n('locfiledit_filename_error'); - } - if (is_numeric($_POST['tpl_model']) and $_POST['tpl_model'] != '0') - { - $page['errors'][] = l10n('locfiledit_model_error'); - } - if (file_exists($_POST['tpl_parent'] . '/' . $filename)) - { - $page['errors'][] = l10n('locfiledit_file_already_exists'); - } - if (!empty($page['errors'])) - { - $newfile_page = true; - } - else - { - $template->assign('template', $filename); - $edited_file = $_POST['tpl_parent'] . '/' . $filename; - $content_file = ($_POST['tpl_model'] == '0') ? '' : file_get_contents($_POST['tpl_model']); - } -} - -if ($newfile_page) -{ - $filename = isset($_POST['tpl_name']) ? $_POST['tpl_name'] : ''; - $selected['model'] = isset($_POST['tpl_model']) ? $_POST['tpl_model'] : '0'; - $selected['parent'] = isset($_POST['tpl_parent']) ? $_POST['tpl_parent'] : PHPWG_ROOT_PATH . 'template-extension'; - - // Parent directories list - $options['parent'] = array(PHPWG_ROOT_PATH . 'template-extension' => 'template-extension'); - $options['parent'] = array_merge($options['parent'], get_rec_dirs(PHPWG_ROOT_PATH . 'template-extension')); - - $options['model'][] = l10n('locfiledit_empty_page'); - $options['model'][] = '----------------------'; - $i = 0; - foreach (get_extents() as $pwg_template) - { - $value = PHPWG_ROOT_PATH . 'template-extension/' . $pwg_template; - $options['model'][$value] = 'template-extension / ' . str_replace('/', ' / ', $pwg_template); - $i++; - } - foreach (get_dirs($conf['themes_dir']) as $theme_id) - { - if ($i) - { - $options['model'][] = '----------------------'; - $i = 0; - } - $dir = $conf['themes_dir'] . '/' . $theme_id . '/template/'; - if (is_dir($dir) and $content = opendir($dir)) - { - while ($node = readdir($content)) - { - if (is_file($dir.$node) and get_extension($node) == 'tpl') - { - $value = $dir . $node; - $options['model'][$value] = $theme_id . ' / ' . $node; - $i++; - } - } - } - } - if (end($options['model']) == '----------------------') - { - array_pop($options['model']); - } - // Assign variables to template - $template->assign('create_tpl', array( - 'NEW_FILE_NAME' => $filename, - 'MODEL_OPTIONS' => $options['model'], - 'MODEL_SELECTED' => $selected['model'], - 'PARENT_OPTIONS' => $options['parent'], - 'PARENT_SELECTED' => $selected['parent'] - ) - ); -} -else -{ - // List existing template extensions - $selected = 0; - $options[] = l10n('locfiledit_choose_file'); - $options[] = '----------------------'; - foreach (get_extents() as $pwg_template) - { - $value = $pwg_template; - $options[$value] = str_replace('/', ' / ', $pwg_template); - if ($edited_file == $value) $selected = $value; - } - if ($selected == 0 and !empty($edited_file)) - { - $options[$edited_file] = str_replace(array('./template-extension/', '/'), array('', ' / '), $edited_file); - $selected = $edited_file; - } - $template->assign( - 'css_lang_tpl', - array( - 'SELECT_NAME' => 'file_to_edit', - 'OPTIONS' => $options, - 'SELECTED' => $selected, - 'NEW_FILE_URL' => $my_base_url.'-tpl&newfile', - 'NEW_FILE_CLASS' => empty($edited_file) ? '' : 'top_right' - ) - ); -} - -$codemirror_mode = 'text/html'; - -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/index.php b/plugins/LocalFilesEditor/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/af_ZA/description.txt b/plugins/LocalFilesEditor/language/af_ZA/description.txt deleted file mode 100755 index 7dc143aef..000000000 --- a/plugins/LocalFilesEditor/language/af_ZA/description.txt +++ /dev/null @@ -1 +0,0 @@ -Verander plaaslike lêers vanaf die beheerpaneel. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/af_ZA/index.php b/plugins/LocalFilesEditor/language/af_ZA/index.php deleted file mode 100644 index ec6605317..000000000 --- a/plugins/LocalFilesEditor/language/af_ZA/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/af_ZA/plugin.lang.php b/plugins/LocalFilesEditor/language/af_ZA/plugin.lang.php deleted file mode 100755 index d423b0fb7..000000000 --- a/plugins/LocalFilesEditor/language/af_ZA/plugin.lang.php +++ /dev/null @@ -1,52 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ar_SA/description.txt b/plugins/LocalFilesEditor/language/ar_SA/description.txt deleted file mode 100644 index 6867b16b9..000000000 --- a/plugins/LocalFilesEditor/language/ar_SA/description.txt +++ /dev/null @@ -1 +0,0 @@ -تحرير الملفات داخل لوحة التحكم \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ar_SA/index.php b/plugins/LocalFilesEditor/language/ar_SA/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/ar_SA/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/ar_SA/plugin.lang.php b/plugins/LocalFilesEditor/language/ar_SA/plugin.lang.php deleted file mode 100644 index 39228585c..000000000 --- a/plugins/LocalFilesEditor/language/ar_SA/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/bg_BG/description.txt b/plugins/LocalFilesEditor/language/bg_BG/description.txt deleted file mode 100755 index 09678d7d6..000000000 --- a/plugins/LocalFilesEditor/language/bg_BG/description.txt +++ /dev/null @@ -1,2 +0,0 @@ -LocalFilesEditor - Редактор на локални файлове -Български [BG] \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/bg_BG/index.php b/plugins/LocalFilesEditor/language/bg_BG/index.php deleted file mode 100644 index ec6605317..000000000 --- a/plugins/LocalFilesEditor/language/bg_BG/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/bg_BG/plugin.lang.php b/plugins/LocalFilesEditor/language/bg_BG/plugin.lang.php deleted file mode 100755 index e6f32a3ac..000000000 --- a/plugins/LocalFilesEditor/language/bg_BG/plugin.lang.php +++ /dev/null @@ -1,52 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/br_FR/plugin.lang.php b/plugins/LocalFilesEditor/language/br_FR/plugin.lang.php deleted file mode 100755 index 6aaece24c..000000000 --- a/plugins/LocalFilesEditor/language/br_FR/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ca_ES/description.txt b/plugins/LocalFilesEditor/language/ca_ES/description.txt deleted file mode 100755 index cf0db504f..000000000 --- a/plugins/LocalFilesEditor/language/ca_ES/description.txt +++ /dev/null @@ -1 +0,0 @@ -Edita els teus arxius locals des del panell d'administració. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ca_ES/plugin.lang.php b/plugins/LocalFilesEditor/language/ca_ES/plugin.lang.php deleted file mode 100755 index 59009ecb8..000000000 --- a/plugins/LocalFilesEditor/language/ca_ES/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/cs_CZ/description.txt b/plugins/LocalFilesEditor/language/cs_CZ/description.txt deleted file mode 100644 index 59178d02a..000000000 --- a/plugins/LocalFilesEditor/language/cs_CZ/description.txt +++ /dev/null @@ -1 +0,0 @@ -Editujte lokální soubory z administračního panelu. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/cs_CZ/index.php b/plugins/LocalFilesEditor/language/cs_CZ/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/cs_CZ/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/cs_CZ/plugin.lang.php b/plugins/LocalFilesEditor/language/cs_CZ/plugin.lang.php deleted file mode 100644 index 9ca473f05..000000000 --- a/plugins/LocalFilesEditor/language/cs_CZ/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/da_DK/description.txt b/plugins/LocalFilesEditor/language/da_DK/description.txt deleted file mode 100755 index f5ae70638..000000000 --- a/plugins/LocalFilesEditor/language/da_DK/description.txt +++ /dev/null @@ -1 +0,0 @@ -Rediger lokale filer fra administrationspanel. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/da_DK/plugin.lang.php b/plugins/LocalFilesEditor/language/da_DK/plugin.lang.php deleted file mode 100755 index 198fd1ce5..000000000 --- a/plugins/LocalFilesEditor/language/da_DK/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/de_DE/description.txt b/plugins/LocalFilesEditor/language/de_DE/description.txt deleted file mode 100644 index 9872f8cf8..000000000 --- a/plugins/LocalFilesEditor/language/de_DE/description.txt +++ /dev/null @@ -1 +0,0 @@ -Administratoren können lokale Dateien direkt in Piwigo bearbeiten. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/de_DE/index.php b/plugins/LocalFilesEditor/language/de_DE/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/de_DE/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/de_DE/plugin.lang.php b/plugins/LocalFilesEditor/language/de_DE/plugin.lang.php deleted file mode 100644 index 97f938368..000000000 --- a/plugins/LocalFilesEditor/language/de_DE/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/el_GR/description.txt b/plugins/LocalFilesEditor/language/el_GR/description.txt deleted file mode 100755 index 30b063d02..000000000 --- a/plugins/LocalFilesEditor/language/el_GR/description.txt +++ /dev/null @@ -1 +0,0 @@ -Επεξεργασ?α τοπικ?ν αρχε?ων απ? τον π?νακα διαχε?ρισης. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/el_GR/plugin.lang.php b/plugins/LocalFilesEditor/language/el_GR/plugin.lang.php deleted file mode 100755 index 82b73aa68..000000000 --- a/plugins/LocalFilesEditor/language/el_GR/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/en_UK/description.txt b/plugins/LocalFilesEditor/language/en_UK/description.txt deleted file mode 100644 index 685dd164f..000000000 --- a/plugins/LocalFilesEditor/language/en_UK/description.txt +++ /dev/null @@ -1 +0,0 @@ -Edit local files from administration panel. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/en_UK/index.php b/plugins/LocalFilesEditor/language/en_UK/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/en_UK/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/en_UK/plugin.lang.php b/plugins/LocalFilesEditor/language/en_UK/plugin.lang.php deleted file mode 100644 index 165b22b6d..000000000 --- a/plugins/LocalFilesEditor/language/en_UK/plugin.lang.php +++ /dev/null @@ -1,55 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/eo_EO/description.txt b/plugins/LocalFilesEditor/language/eo_EO/description.txt deleted file mode 100755 index dbc9ff915..000000000 --- a/plugins/LocalFilesEditor/language/eo_EO/description.txt +++ /dev/null @@ -1 +0,0 @@ -Redaktu lokajn dosierojn el la administra panelo. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/eo_EO/plugin.lang.php b/plugins/LocalFilesEditor/language/eo_EO/plugin.lang.php deleted file mode 100755 index 02741686d..000000000 --- a/plugins/LocalFilesEditor/language/eo_EO/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/es_ES/description.txt b/plugins/LocalFilesEditor/language/es_ES/description.txt deleted file mode 100644 index f0c6b691f..000000000 --- a/plugins/LocalFilesEditor/language/es_ES/description.txt +++ /dev/null @@ -1 +0,0 @@ -Edita tus archivos locales desde el panel de administración. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/es_ES/index.php b/plugins/LocalFilesEditor/language/es_ES/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/es_ES/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/es_ES/plugin.lang.php b/plugins/LocalFilesEditor/language/es_ES/plugin.lang.php deleted file mode 100644 index 356e0f3a4..000000000 --- a/plugins/LocalFilesEditor/language/es_ES/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/et_EE/description.txt b/plugins/LocalFilesEditor/language/et_EE/description.txt deleted file mode 100755 index e2f49d959..000000000 --- a/plugins/LocalFilesEditor/language/et_EE/description.txt +++ /dev/null @@ -1 +0,0 @@ -Võimalda kohalike failide redigeerimist. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/et_EE/index.php b/plugins/LocalFilesEditor/language/et_EE/index.php deleted file mode 100644 index ec6605317..000000000 --- a/plugins/LocalFilesEditor/language/et_EE/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/et_EE/plugin.lang.php b/plugins/LocalFilesEditor/language/et_EE/plugin.lang.php deleted file mode 100755 index edfd7a8e1..000000000 --- a/plugins/LocalFilesEditor/language/et_EE/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/fa_IR/description.txt b/plugins/LocalFilesEditor/language/fa_IR/description.txt deleted file mode 100755 index ab8e9cf3b..000000000 --- a/plugins/LocalFilesEditor/language/fa_IR/description.txt +++ /dev/null @@ -1 +0,0 @@ -ویرایش فایل های داخل هاست بوسیله پنل مدیریت گالری. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/fa_IR/index.php b/plugins/LocalFilesEditor/language/fa_IR/index.php deleted file mode 100644 index ec6605317..000000000 --- a/plugins/LocalFilesEditor/language/fa_IR/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/fa_IR/plugin.lang.php b/plugins/LocalFilesEditor/language/fa_IR/plugin.lang.php deleted file mode 100755 index e1618d771..000000000 --- a/plugins/LocalFilesEditor/language/fa_IR/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - -بدون ذخیره ی فایل بازیابی آن ممکن نخواهد بود.'; -$lang['locfiledit_restore'] = 'بازیابی فایل پشتیبان'; -$lang['locfiledit_save_bak'] = 'فایل پشتیبان پس از نخستین ذخیره ایجاد خواهد شد.'; -$lang['locfiledit_save_config'] = 'فایل با موفقیت ویرایش شد.'; -$lang['locfiledit_save_file'] = 'ذخیره فایل'; -$lang['locfiledit_saved_bak'] = 'فایل پشتیبان ایجاد شد (%s)'; -$lang['locfiledit_show_default'] = 'نمایش فایل مرجع'; -$lang['locfiledit_syntax_error'] = 'خطای دستوری (Syntax)! امکان ذخیره ی فایل وجود ندارد.'; -$lang['locfiledit_webmaster_only'] = 'فقط مدیرکل می تواند یک فایل محلی را ایجاد یا ویرایش کند.'; -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/fi_FI/description.txt b/plugins/LocalFilesEditor/language/fi_FI/description.txt deleted file mode 100755 index 7e6335edd..000000000 --- a/plugins/LocalFilesEditor/language/fi_FI/description.txt +++ /dev/null @@ -1 +0,0 @@ -Muokkaa paikallisia tiedostoja ylläpitopaneelista. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/fi_FI/plugin.lang.php b/plugins/LocalFilesEditor/language/fi_FI/plugin.lang.php deleted file mode 100755 index 3aa3a28f7..000000000 --- a/plugins/LocalFilesEditor/language/fi_FI/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/fr_CA/description.txt b/plugins/LocalFilesEditor/language/fr_CA/description.txt deleted file mode 100644 index c89b333b1..000000000 --- a/plugins/LocalFilesEditor/language/fr_CA/description.txt +++ /dev/null @@ -1 +0,0 @@ -Éditez vos fichiers locaux à partir du panneau d'administration. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/fr_CA/index.php b/plugins/LocalFilesEditor/language/fr_CA/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/fr_CA/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/fr_CA/plugin.lang.php b/plugins/LocalFilesEditor/language/fr_CA/plugin.lang.php deleted file mode 100644 index 8caf06c16..000000000 --- a/plugins/LocalFilesEditor/language/fr_CA/plugin.lang.php +++ /dev/null @@ -1,55 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/fr_FR/description.txt b/plugins/LocalFilesEditor/language/fr_FR/description.txt deleted file mode 100644 index e025da365..000000000 --- a/plugins/LocalFilesEditor/language/fr_FR/description.txt +++ /dev/null @@ -1 +0,0 @@ -Editez vos fichiers locaux à partir du panneau d'administration. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/fr_FR/index.php b/plugins/LocalFilesEditor/language/fr_FR/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/fr_FR/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/fr_FR/plugin.lang.php b/plugins/LocalFilesEditor/language/fr_FR/plugin.lang.php deleted file mode 100644 index 1c5931cef..000000000 --- a/plugins/LocalFilesEditor/language/fr_FR/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/gl_ES/description.txt b/plugins/LocalFilesEditor/language/gl_ES/description.txt deleted file mode 100755 index 943c3817e..000000000 --- a/plugins/LocalFilesEditor/language/gl_ES/description.txt +++ /dev/null @@ -1 +0,0 @@ -Modifica ficheiros locais desde o panel de administración. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/gl_ES/plugin.lang.php b/plugins/LocalFilesEditor/language/gl_ES/plugin.lang.php deleted file mode 100755 index 0653ff5ea..000000000 --- a/plugins/LocalFilesEditor/language/gl_ES/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/he_IL/description.txt b/plugins/LocalFilesEditor/language/he_IL/description.txt deleted file mode 100644 index 65d420c0b..000000000 --- a/plugins/LocalFilesEditor/language/he_IL/description.txt +++ /dev/null @@ -1 +0,0 @@ -ערוך קבצים מקומיים מהפאנל ניהול. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/he_IL/index.php b/plugins/LocalFilesEditor/language/he_IL/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/he_IL/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/he_IL/plugin.lang.php b/plugins/LocalFilesEditor/language/he_IL/plugin.lang.php deleted file mode 100644 index 6ef6b5743..000000000 --- a/plugins/LocalFilesEditor/language/he_IL/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/hr_HR/description.txt b/plugins/LocalFilesEditor/language/hr_HR/description.txt deleted file mode 100644 index d5b010d38..000000000 --- a/plugins/LocalFilesEditor/language/hr_HR/description.txt +++ /dev/null @@ -1 +0,0 @@ -Uredivanje lokalnih datoteka iz panela za administraciju. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/hr_HR/index.php b/plugins/LocalFilesEditor/language/hr_HR/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/hr_HR/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/hr_HR/plugin.lang.php b/plugins/LocalFilesEditor/language/hr_HR/plugin.lang.php deleted file mode 100644 index d66562afc..000000000 --- a/plugins/LocalFilesEditor/language/hr_HR/plugin.lang.php +++ /dev/null @@ -1,52 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/hu_HU/description.txt b/plugins/LocalFilesEditor/language/hu_HU/description.txt deleted file mode 100644 index d9a9af95d..000000000 --- a/plugins/LocalFilesEditor/language/hu_HU/description.txt +++ /dev/null @@ -1 +0,0 @@ -Helyi fájlok szerkesztése az adminisztrációs felületen. diff --git a/plugins/LocalFilesEditor/language/hu_HU/index.php b/plugins/LocalFilesEditor/language/hu_HU/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/hu_HU/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/hu_HU/plugin.lang.php b/plugins/LocalFilesEditor/language/hu_HU/plugin.lang.php deleted file mode 100644 index e41269fb8..000000000 --- a/plugins/LocalFilesEditor/language/hu_HU/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/index.php b/plugins/LocalFilesEditor/language/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/it_IT/description.txt b/plugins/LocalFilesEditor/language/it_IT/description.txt deleted file mode 100644 index 5921aaf5b..000000000 --- a/plugins/LocalFilesEditor/language/it_IT/description.txt +++ /dev/null @@ -1 +0,0 @@ -Modificare i file locali dal pannello di amministrazione. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/it_IT/index.php b/plugins/LocalFilesEditor/language/it_IT/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/it_IT/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/it_IT/plugin.lang.php b/plugins/LocalFilesEditor/language/it_IT/plugin.lang.php deleted file mode 100644 index 5e228b941..000000000 --- a/plugins/LocalFilesEditor/language/it_IT/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/ja_JP/plugin.lang.php b/plugins/LocalFilesEditor/language/ja_JP/plugin.lang.php deleted file mode 100644 index a1608776d..000000000 --- a/plugins/LocalFilesEditor/language/ja_JP/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ka_GE/description.txt b/plugins/LocalFilesEditor/language/ka_GE/description.txt deleted file mode 100644 index 3dbf09e8c..000000000 --- a/plugins/LocalFilesEditor/language/ka_GE/description.txt +++ /dev/null @@ -1 +0,0 @@ -ლოკალური ფაილების შეცვლა ადმინისტრაციული პანელიდან. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ka_GE/index.php b/plugins/LocalFilesEditor/language/ka_GE/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/ka_GE/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/ka_GE/plugin.lang.php b/plugins/LocalFilesEditor/language/ka_GE/plugin.lang.php deleted file mode 100644 index 8de794beb..000000000 --- a/plugins/LocalFilesEditor/language/ka_GE/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/kn_IN/description.txt b/plugins/LocalFilesEditor/language/kn_IN/description.txt deleted file mode 100755 index 3d9917657..000000000 --- a/plugins/LocalFilesEditor/language/kn_IN/description.txt +++ /dev/null @@ -1 +0,0 @@ -ಸ್ಥಳೀಯ ಕಡತಗಳನ್ನು ನಿರ್ವಹಣಾ ಪ್ಯಾನೆಲ್ ನಿಂದ ಸಂಪಾದಿಸಿ. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/kn_IN/plugin.lang.php b/plugins/LocalFilesEditor/language/kn_IN/plugin.lang.php deleted file mode 100755 index 1c26ccbee..000000000 --- a/plugins/LocalFilesEditor/language/kn_IN/plugin.lang.php +++ /dev/null @@ -1,52 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/lt_LT/description.txt b/plugins/LocalFilesEditor/language/lt_LT/description.txt deleted file mode 100755 index f6e626ff0..000000000 --- a/plugins/LocalFilesEditor/language/lt_LT/description.txt +++ /dev/null @@ -1 +0,0 @@ -Redaguoti vietinius failus iš administracijos puslapio. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/lt_LT/plugin.lang.php b/plugins/LocalFilesEditor/language/lt_LT/plugin.lang.php deleted file mode 100755 index 9a8402595..000000000 --- a/plugins/LocalFilesEditor/language/lt_LT/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/lv_LV/description.txt b/plugins/LocalFilesEditor/language/lv_LV/description.txt deleted file mode 100644 index 5ad412b3b..000000000 --- a/plugins/LocalFilesEditor/language/lv_LV/description.txt +++ /dev/null @@ -1 +0,0 @@ -Rediget lokalos failus no administratora panela. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/lv_LV/index.php b/plugins/LocalFilesEditor/language/lv_LV/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/lv_LV/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/lv_LV/plugin.lang.php b/plugins/LocalFilesEditor/language/lv_LV/plugin.lang.php deleted file mode 100644 index 56f9affe4..000000000 --- a/plugins/LocalFilesEditor/language/lv_LV/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/mn_MN/description.txt b/plugins/LocalFilesEditor/language/mn_MN/description.txt deleted file mode 100755 index 3e38763fa..000000000 --- a/plugins/LocalFilesEditor/language/mn_MN/description.txt +++ /dev/null @@ -1 +0,0 @@ -Удирдлагын талбараас тохиргооны файлуудыг засах. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/mn_MN/index.php b/plugins/LocalFilesEditor/language/mn_MN/index.php deleted file mode 100644 index ec6605317..000000000 --- a/plugins/LocalFilesEditor/language/mn_MN/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/mn_MN/plugin.lang.php b/plugins/LocalFilesEditor/language/mn_MN/plugin.lang.php deleted file mode 100755 index 493e84b85..000000000 --- a/plugins/LocalFilesEditor/language/mn_MN/plugin.lang.php +++ /dev/null @@ -1,52 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/nb_NO/description.txt b/plugins/LocalFilesEditor/language/nb_NO/description.txt deleted file mode 100644 index 80e3b9af3..000000000 --- a/plugins/LocalFilesEditor/language/nb_NO/description.txt +++ /dev/null @@ -1 +0,0 @@ -Rediger lokale filer fra administrasjons panelet. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/nb_NO/index.php b/plugins/LocalFilesEditor/language/nb_NO/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/nb_NO/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/nb_NO/plugin.lang.php b/plugins/LocalFilesEditor/language/nb_NO/plugin.lang.php deleted file mode 100644 index 1d34947af..000000000 --- a/plugins/LocalFilesEditor/language/nb_NO/plugin.lang.php +++ /dev/null @@ -1,51 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/nl_NL/description.txt b/plugins/LocalFilesEditor/language/nl_NL/description.txt deleted file mode 100644 index dccc22ad9..000000000 --- a/plugins/LocalFilesEditor/language/nl_NL/description.txt +++ /dev/null @@ -1 +0,0 @@ -Wijzig lokale bestanden vanaf het administratie-scherm. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/nl_NL/index.php b/plugins/LocalFilesEditor/language/nl_NL/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/nl_NL/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/nl_NL/plugin.lang.php b/plugins/LocalFilesEditor/language/nl_NL/plugin.lang.php deleted file mode 100644 index be25fedad..000000000 --- a/plugins/LocalFilesEditor/language/nl_NL/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/nn_NO/description.txt b/plugins/LocalFilesEditor/language/nn_NO/description.txt deleted file mode 100755 index f09a8d791..000000000 --- a/plugins/LocalFilesEditor/language/nn_NO/description.txt +++ /dev/null @@ -1 +0,0 @@ -Endre lokale filer frå administrasjonspanelet. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/nn_NO/plugin.lang.php b/plugins/LocalFilesEditor/language/nn_NO/plugin.lang.php deleted file mode 100755 index 7f0cb5cb0..000000000 --- a/plugins/LocalFilesEditor/language/nn_NO/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/pl_PL/description.txt b/plugins/LocalFilesEditor/language/pl_PL/description.txt deleted file mode 100644 index 325c35115..000000000 --- a/plugins/LocalFilesEditor/language/pl_PL/description.txt +++ /dev/null @@ -1 +0,0 @@ -Edycja plików lokalnych z panelu administratora \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/pl_PL/index.php b/plugins/LocalFilesEditor/language/pl_PL/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/pl_PL/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/pl_PL/plugin.lang.php b/plugins/LocalFilesEditor/language/pl_PL/plugin.lang.php deleted file mode 100644 index 52afb425c..000000000 --- a/plugins/LocalFilesEditor/language/pl_PL/plugin.lang.php +++ /dev/null @@ -1,55 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/pt_BR/description.txt b/plugins/LocalFilesEditor/language/pt_BR/description.txt deleted file mode 100755 index 4de225593..000000000 --- a/plugins/LocalFilesEditor/language/pt_BR/description.txt +++ /dev/null @@ -1 +0,0 @@ -Edite arquivos locais do painel de administração. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/pt_BR/index.php b/plugins/LocalFilesEditor/language/pt_BR/index.php deleted file mode 100644 index ec6605317..000000000 --- a/plugins/LocalFilesEditor/language/pt_BR/index.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/pt_BR/plugin.lang.php b/plugins/LocalFilesEditor/language/pt_BR/plugin.lang.php deleted file mode 100755 index 3e782713f..000000000 --- a/plugins/LocalFilesEditor/language/pt_BR/plugin.lang.php +++ /dev/null @@ -1,52 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/pt_PT/description.txt b/plugins/LocalFilesEditor/language/pt_PT/description.txt deleted file mode 100644 index cce485cdb..000000000 --- a/plugins/LocalFilesEditor/language/pt_PT/description.txt +++ /dev/null @@ -1 +0,0 @@ -Editar ficheiros locais a partir do Painel Administrativo de Piwigo. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/pt_PT/index.php b/plugins/LocalFilesEditor/language/pt_PT/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/pt_PT/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/pt_PT/plugin.lang.php b/plugins/LocalFilesEditor/language/pt_PT/plugin.lang.php deleted file mode 100644 index 4de22760f..000000000 --- a/plugins/LocalFilesEditor/language/pt_PT/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ro_RO/description.txt b/plugins/LocalFilesEditor/language/ro_RO/description.txt deleted file mode 100755 index a35a896d4..000000000 --- a/plugins/LocalFilesEditor/language/ro_RO/description.txt +++ /dev/null @@ -1 +0,0 @@ -Modifică fișierele locale din panoul de administrare. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ro_RO/plugin.lang.php b/plugins/LocalFilesEditor/language/ro_RO/plugin.lang.php deleted file mode 100755 index e9fb6ad13..000000000 --- a/plugins/LocalFilesEditor/language/ro_RO/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ru_RU/description.txt b/plugins/LocalFilesEditor/language/ru_RU/description.txt deleted file mode 100644 index cb0317730..000000000 --- a/plugins/LocalFilesEditor/language/ru_RU/description.txt +++ /dev/null @@ -1 +0,0 @@ -Позволяет редактировать локальные файлы из панели администрирования. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ru_RU/index.php b/plugins/LocalFilesEditor/language/ru_RU/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/ru_RU/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/ru_RU/plugin.lang.php b/plugins/LocalFilesEditor/language/ru_RU/plugin.lang.php deleted file mode 100644 index 942bd6b68..000000000 --- a/plugins/LocalFilesEditor/language/ru_RU/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sh_RS/description.txt b/plugins/LocalFilesEditor/language/sh_RS/description.txt deleted file mode 100755 index 676daaad6..000000000 --- a/plugins/LocalFilesEditor/language/sh_RS/description.txt +++ /dev/null @@ -1 +0,0 @@ -Uredite lokalne fajlove iz administratorskog panela. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sh_RS/plugin.lang.php b/plugins/LocalFilesEditor/language/sh_RS/plugin.lang.php deleted file mode 100755 index 23925ffeb..000000000 --- a/plugins/LocalFilesEditor/language/sh_RS/plugin.lang.php +++ /dev/null @@ -1,52 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sk_SK/description.txt b/plugins/LocalFilesEditor/language/sk_SK/description.txt deleted file mode 100644 index 4cad4ae5b..000000000 --- a/plugins/LocalFilesEditor/language/sk_SK/description.txt +++ /dev/null @@ -1 +0,0 @@ -Editácia lokálnych súborov z panelu administrátora. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sk_SK/index.php b/plugins/LocalFilesEditor/language/sk_SK/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/sk_SK/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/sk_SK/plugin.lang.php b/plugins/LocalFilesEditor/language/sk_SK/plugin.lang.php deleted file mode 100644 index 9b9852ca8..000000000 --- a/plugins/LocalFilesEditor/language/sk_SK/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sl_SI/description.txt b/plugins/LocalFilesEditor/language/sl_SI/description.txt deleted file mode 100755 index 5202d65e1..000000000 --- a/plugins/LocalFilesEditor/language/sl_SI/description.txt +++ /dev/null @@ -1 +0,0 @@ -Urejanje lokalnih datotek iz administratorske plošče \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sl_SI/plugin.lang.php b/plugins/LocalFilesEditor/language/sl_SI/plugin.lang.php deleted file mode 100755 index e3ce11457..000000000 --- a/plugins/LocalFilesEditor/language/sl_SI/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sr_RS/description.txt b/plugins/LocalFilesEditor/language/sr_RS/description.txt deleted file mode 100644 index 1d852f0e2..000000000 --- a/plugins/LocalFilesEditor/language/sr_RS/description.txt +++ /dev/null @@ -1 +0,0 @@ -Уреди локалне датотеке преко администрационе странице. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sr_RS/index.php b/plugins/LocalFilesEditor/language/sr_RS/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/sr_RS/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/sr_RS/plugin.lang.php b/plugins/LocalFilesEditor/language/sr_RS/plugin.lang.php deleted file mode 100644 index 858166d88..000000000 --- a/plugins/LocalFilesEditor/language/sr_RS/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sv_SE/description.txt b/plugins/LocalFilesEditor/language/sv_SE/description.txt deleted file mode 100644 index 286b6ae97..000000000 --- a/plugins/LocalFilesEditor/language/sv_SE/description.txt +++ /dev/null @@ -1 +0,0 @@ -Ändra lokala filer från administrationspanelen. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/sv_SE/index.php b/plugins/LocalFilesEditor/language/sv_SE/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/sv_SE/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/sv_SE/plugin.lang.php b/plugins/LocalFilesEditor/language/sv_SE/plugin.lang.php deleted file mode 100644 index 695c1e3f5..000000000 --- a/plugins/LocalFilesEditor/language/sv_SE/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/ta_IN/description.txt b/plugins/LocalFilesEditor/language/ta_IN/description.txt deleted file mode 100755 index 9f127aed1..000000000 --- a/plugins/LocalFilesEditor/language/ta_IN/description.txt +++ /dev/null @@ -1,3 +0,0 @@ -உள்ளமை கோப்புகளை திருத்த -நிர்வாகத்தின் பலகத்தில். - diff --git a/plugins/LocalFilesEditor/language/ta_IN/plugin.lang.php b/plugins/LocalFilesEditor/language/ta_IN/plugin.lang.php deleted file mode 100755 index 57571e8c9..000000000 --- a/plugins/LocalFilesEditor/language/ta_IN/plugin.lang.php +++ /dev/null @@ -1,55 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/th_TH/plugin.lang.php b/plugins/LocalFilesEditor/language/th_TH/plugin.lang.php deleted file mode 100644 index 6659f1fee..000000000 --- a/plugins/LocalFilesEditor/language/th_TH/plugin.lang.php +++ /dev/null @@ -1,54 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/tr_TR/description.txt b/plugins/LocalFilesEditor/language/tr_TR/description.txt deleted file mode 100755 index 60a9e570f..000000000 --- a/plugins/LocalFilesEditor/language/tr_TR/description.txt +++ /dev/null @@ -1 +0,0 @@ -Yerel dosyaları yönetici panelinden düzenleyin. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/tr_TR/index.php b/plugins/LocalFilesEditor/language/tr_TR/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/tr_TR/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/tr_TR/plugin.lang.php b/plugins/LocalFilesEditor/language/tr_TR/plugin.lang.php deleted file mode 100644 index af35b6211..000000000 --- a/plugins/LocalFilesEditor/language/tr_TR/plugin.lang.php +++ /dev/null @@ -1,55 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/uk_UA/description.txt b/plugins/LocalFilesEditor/language/uk_UA/description.txt deleted file mode 100644 index e29c47387..000000000 --- a/plugins/LocalFilesEditor/language/uk_UA/description.txt +++ /dev/null @@ -1 +0,0 @@ -Редагування локальних файлів з ​​панелі адміністрування. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/uk_UA/plugin.lang.php b/plugins/LocalFilesEditor/language/uk_UA/plugin.lang.php deleted file mode 100644 index 10a585992..000000000 --- a/plugins/LocalFilesEditor/language/uk_UA/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/vi_VN/description.txt b/plugins/LocalFilesEditor/language/vi_VN/description.txt deleted file mode 100644 index 1d7f7454e..000000000 --- a/plugins/LocalFilesEditor/language/vi_VN/description.txt +++ /dev/null @@ -1 +0,0 @@ -Chỉnh sửa những tệp tin trên máy từ bảng điều khiển Quản trị viên. \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/vi_VN/index.php b/plugins/LocalFilesEditor/language/vi_VN/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/vi_VN/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/vi_VN/plugin.lang.php b/plugins/LocalFilesEditor/language/vi_VN/plugin.lang.php deleted file mode 100644 index 514c9ae06..000000000 --- a/plugins/LocalFilesEditor/language/vi_VN/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/zh_CN/description.txt b/plugins/LocalFilesEditor/language/zh_CN/description.txt deleted file mode 100644 index 8eb6a7dce..000000000 --- a/plugins/LocalFilesEditor/language/zh_CN/description.txt +++ /dev/null @@ -1 +0,0 @@ -通过管理员面板编辑本地文件。 \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/zh_CN/index.php b/plugins/LocalFilesEditor/language/zh_CN/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/zh_CN/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/zh_CN/plugin.lang.php b/plugins/LocalFilesEditor/language/zh_CN/plugin.lang.php deleted file mode 100644 index ae3b4568e..000000000 --- a/plugins/LocalFilesEditor/language/zh_CN/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/zh_HK/description.txt b/plugins/LocalFilesEditor/language/zh_HK/description.txt deleted file mode 100755 index 513365a9f..000000000 --- a/plugins/LocalFilesEditor/language/zh_HK/description.txt +++ /dev/null @@ -1 +0,0 @@ -在管理面板編輯本地檔案。 \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/zh_HK/plugin.lang.php b/plugins/LocalFilesEditor/language/zh_HK/plugin.lang.php deleted file mode 100755 index c60a8b493..000000000 --- a/plugins/LocalFilesEditor/language/zh_HK/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/zh_TW/description.txt b/plugins/LocalFilesEditor/language/zh_TW/description.txt deleted file mode 100644 index 6f11920ba..000000000 --- a/plugins/LocalFilesEditor/language/zh_TW/description.txt +++ /dev/null @@ -1 +0,0 @@ -從管理者控制台編輯本地文件 \ No newline at end of file diff --git a/plugins/LocalFilesEditor/language/zh_TW/index.php b/plugins/LocalFilesEditor/language/zh_TW/index.php deleted file mode 100644 index c8de97f60..000000000 --- a/plugins/LocalFilesEditor/language/zh_TW/index.php +++ /dev/null @@ -1,30 +0,0 @@ - diff --git a/plugins/LocalFilesEditor/language/zh_TW/plugin.lang.php b/plugins/LocalFilesEditor/language/zh_TW/plugin.lang.php deleted file mode 100644 index fa5fd70a8..000000000 --- a/plugins/LocalFilesEditor/language/zh_TW/plugin.lang.php +++ /dev/null @@ -1,53 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/main.inc.php b/plugins/LocalFilesEditor/main.inc.php deleted file mode 100644 index ad7f95ead..000000000 --- a/plugins/LocalFilesEditor/main.inc.php +++ /dev/null @@ -1,70 +0,0 @@ - 'LocalFiles Editor', - 'URL' => get_root_url().'admin.php?page=plugin-'.basename(dirname(__FILE__)) - ); - - return $menu; -} - -function localfiles_css_link() -{ - global $template; - - $template->set_prefilter('themes', 'localfiles_css_link_prefilter'); -} - -function localfiles_css_link_prefilter($content, &$smarty) -{ - $search = '#{if isset\(\$theme.admin_uri\)}.*?{/if}#s'; - $replacement = ' -{if isset($theme.admin_uri)} -
{\'Configuration\'|@translate} - | CSS -{else} -
CSS -{/if} -'; - - return preg_replace($search, $replacement, $content); -} - -add_event_handler('get_admin_plugin_menu_links', 'localfiles_admin_menu'); -add_event_handler('loc_begin_admin', 'localfiles_css_link'); -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/maintain.inc.php b/plugins/LocalFilesEditor/maintain.inc.php deleted file mode 100644 index d3c628932..000000000 --- a/plugins/LocalFilesEditor/maintain.inc.php +++ /dev/null @@ -1,32 +0,0 @@ - \ No newline at end of file diff --git a/plugins/LocalFilesEditor/show_default.php b/plugins/LocalFilesEditor/show_default.php deleted file mode 100644 index d688ddb76..000000000 --- a/plugins/LocalFilesEditor/show_default.php +++ /dev/null @@ -1,59 +0,0 @@ -set_filename('show_default', dirname(__FILE__) . '/template/show_default.tpl'); - - $file = file_get_contents(PHPWG_ROOT_PATH . $path); - $title = str_replace('/', ' / ', $path); - - $template->assign(array( - 'TITLE' => $title, - 'DEFAULT_CONTENT' => $file, - ) - ); - - $page['body_id'] = 'thePopuphelpPage'; - - include(PHPWG_ROOT_PATH.'include/page_header.php'); - - $template->pparse('show_default'); - - include(PHPWG_ROOT_PATH.'include/page_tail.php'); -} - -?> \ No newline at end of file diff --git a/plugins/LocalFilesEditor/template/admin.tpl b/plugins/LocalFilesEditor/template/admin.tpl deleted file mode 100644 index d79d00028..000000000 --- a/plugins/LocalFilesEditor/template/admin.tpl +++ /dev/null @@ -1,113 +0,0 @@ -{combine_script id="codemirror" path="plugins/LocalFilesEditor/codemirror/lib/codemirror.js"} -{combine_script id="codemirror.xml" require="codemirror" path="plugins/LocalFilesEditor/codemirror/mode/xml/xml.js"} -{combine_script id="codemirror.javascript" require="codemirror" path="plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.js"} -{combine_script id="codemirror.css" require="codemirror" path="plugins/LocalFilesEditor/codemirror/mode/css/css.js"} -{combine_script id="codemirror.clike" require="codemirror" path="plugins/LocalFilesEditor/codemirror/mode/clike/clike.js"} -{combine_script id="codemirror.htmlmixed" require="codemirror.xml,codemirror.javascript,codemirror.css" path="plugins/LocalFilesEditor/codemirror/mode/htmlmixed/htmlmixed.js"} -{combine_script id="codemirror.php" require="codemirror.xml,codemirror.javascript,codemirror.css,codemirror.clike" path="plugins/LocalFilesEditor/codemirror/mode/php/php.js"} - -{combine_css path="plugins/LocalFilesEditor/codemirror/lib/codemirror.css"} -{combine_css path="plugins/LocalFilesEditor/codemirror/mode/xml/xml.css"} -{combine_css path="plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.css"} -{combine_css path="plugins/LocalFilesEditor/codemirror/mode/css/css.css"} -{combine_css path="plugins/LocalFilesEditor/codemirror/mode/clike/clike.css"} -{combine_css path="plugins/LocalFilesEditor/template/locfiledit.css"} - -{footer_script} -if (document.getElementById("text") != null) - var editor = CodeMirror.fromTextArea(document.getElementById("text"), {ldelim} - matchBrackets: true, - mode: "{$CODEMIRROR_MODE}", - tabMode: "shift" - }); -{/footer_script} - -
-

LocalFiles Editor

-
- -
- - -
- -{if isset($theme)} - -{/if} - -{if isset($language)} - -{/if} - -{if isset($template)} - -{/if} - - -{if isset ($create_tpl)} - - - - - - - - - - - - - -
{'locfiledit_new_filename'|@translate}
{'locfiledit_parent_directory'|@translate}{html_options name=tpl_parent options=$create_tpl.PARENT_OPTIONS selected=$create_tpl.PARENT_SELECTED}
{'locfiledit_model'|@translate}{html_options name=tpl_model options=$create_tpl.MODEL_OPTIONS selected=$create_tpl.MODEL_SELECTED}
-

- -{/if} - -{if isset ($css_lang_tpl)} - - - -

-{/if} - -{if isset ($css_lang_tpl.NEW_FILE_URL)} - -{'locfiledit_new_tpl'|@translate} - -{/if} - -{if isset ($zone_edit)} -
-{/if} - -{if !empty($show_default)} -{foreach from=$show_default item=file name=default_loop} - -{'locfiledit_show_default'|@translate} "{$file.FILE}" - -{if !($smarty.foreach.default_loop.last)}
{/if} -{/foreach} -{/if} - -{if isset ($zone_edit)} -{$zone_edit.FILE_NAME} -
{* title_bar *} - - -
- - -{if isset ($restore)} - -{/if} - -{if isset ($restore_infos)} -

-{'locfiledit_save_bak'|@translate} -{/if} - -{/if} {* zone_edit *} -
-
diff --git a/plugins/LocalFilesEditor/template/locfiledit.css b/plugins/LocalFilesEditor/template/locfiledit.css deleted file mode 100644 index 10589bcec..000000000 --- a/plugins/LocalFilesEditor/template/locfiledit.css +++ /dev/null @@ -1,32 +0,0 @@ -#LocalFilesEditor { - text-align: center; - margin: 0 2em; -} - -#LocalFilesEditor #title_bar { - overflow: auto; -} - -#LocalFilesEditor .file_name { - font-weight: bold; - float: left; -} - -#LocalFilesEditor .default_file { - float: right; -} - -#LocalFilesEditor TD { - padding: 0.5em; -} - -#LocalFilesEditor TEXTAREA, .CodeMirror { - background-color: #EEEEEE; - font-family: monospace,Arial,sans-serif; - font-size: 1.2em; - border: 1px solid #999999; - margin: 0.5em 0; - width: 100%; - min-height: 500px; - height: auto; -} \ No newline at end of file diff --git a/plugins/LocalFilesEditor/template/show_default.tpl b/plugins/LocalFilesEditor/template/show_default.tpl deleted file mode 100644 index cd6c3f318..000000000 --- a/plugins/LocalFilesEditor/template/show_default.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{combine_script id="codemirror" path="plugins/LocalFilesEditor/codemirror/lib/codemirror.js"} -{combine_script id="codemirror.xml" require="codemirror" path="plugins/LocalFilesEditor/codemirror/mode/xml/xml.js"} -{combine_script id="codemirror.javascript" require="codemirror" path="plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.js"} -{combine_script id="codemirror.css" require="codemirror" path="plugins/LocalFilesEditor/codemirror/mode/css/css.js"} -{combine_script id="codemirror.clike" require="codemirror" path="plugins/LocalFilesEditor/codemirror/mode/clike/clike.js"} -{combine_script id="codemirror.htmlmixed" require="codemirror.xml,codemirror.javascript,codemirror.css" path="plugins/LocalFilesEditor/codemirror/mode/htmlmixed/htmlmixed.js"} -{combine_script id="codemirror.php" require="codemirror.xml,codemirror.javascript,codemirror.css,codemirror.clike" path="plugins/LocalFilesEditor/codemirror/mode/php/php.js"} - -{combine_css path="plugins/LocalFilesEditor/codemirror/lib/codemirror.css"} -{combine_css path="plugins/LocalFilesEditor/codemirror/mode/xml/xml.css"} -{combine_css path="plugins/LocalFilesEditor/codemirror/mode/javascript/javascript.css"} -{combine_css path="plugins/LocalFilesEditor/codemirror/mode/css/css.css"} -{combine_css path="plugins/LocalFilesEditor/codemirror/mode/clike/clike.css"} -{combine_css path="plugins/LocalFilesEditor/template/locfiledit.css"} - -{footer_script} -var editor = CodeMirror.fromTextArea(document.getElementById("text"), {ldelim} - readOnly: true, - mode: "application/x-httpd-php" -}); -{/footer_script} - -{html_head} - -{/html_head} - -
- -
- {$TITLE} -
- - - -
-- cgit v1.2.3