Linux vps-61133.fhnet.fr 4.9.0-19-amd64 #1 SMP Debian 4.9.320-2 (2022-06-30) x86_64
Apache/2.4.25 (Debian)
Server IP : 93.113.207.21 & Your IP : 216.73.216.35
Domains :
Cant Read [ /etc/named.conf ]
User : www-data
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
var /
www /
html /
bdc.bdcloud.fr /
includes /
ace /
src /
Delete
Unzip
Name
Size
Permission
Date
Action
snippets
[ DIR ]
drwxr-x---
2025-11-08 11:17
ace.js
703.41
KB
-rwxr-x---
2023-04-04 15:52
ext-beautify.js
12.46
KB
-rwxr-x---
2023-04-04 15:52
ext-code_lens.js
7.66
KB
-rwxr-x---
2023-04-04 15:52
ext-elastic_tabstops_lite.js
8.74
KB
-rwxr-x---
2023-04-04 15:52
ext-emmet.js
47.64
KB
-rwxr-x---
2023-04-04 15:52
ext-error_marker.js
336
B
-rwxr-x---
2023-04-04 15:52
ext-hardwrap.js
4.24
KB
-rwxr-x---
2023-04-04 15:52
ext-keybinding_menu.js
6.09
KB
-rwxr-x---
2023-04-04 15:52
ext-language_tools.js
75.67
KB
-rwxr-x---
2023-04-04 15:52
ext-linking.js
1.95
KB
-rwxr-x---
2023-04-04 15:52
ext-modelist.js
7.35
KB
-rwxr-x---
2023-04-04 15:52
ext-options.js
25.16
KB
-rwxr-x---
2023-04-04 15:52
ext-prompt.js
95.78
KB
-rwxr-x---
2023-04-04 15:52
ext-rtl.js
4.44
KB
-rwxr-x---
2023-04-04 15:52
ext-searchbox.js
16.75
KB
-rwxr-x---
2023-04-04 15:52
ext-settings_menu.js
25.97
KB
-rwxr-x---
2023-04-04 15:52
ext-spellcheck.js
2.46
KB
-rwxr-x---
2023-04-04 15:52
ext-split.js
6.39
KB
-rwxr-x---
2023-04-04 15:52
ext-static_highlight.js
6.87
KB
-rwxr-x---
2023-04-04 15:52
ext-statusbar.js
1.87
KB
-rwxr-x---
2023-04-04 15:52
ext-textarea.js
13.18
KB
-rwxr-x---
2023-04-04 15:52
ext-themelist.js
2.76
KB
-rwxr-x---
2023-04-04 15:52
ext-whitespace.js
6.44
KB
-rwxr-x---
2023-04-04 15:52
keybinding-emacs.js
39.63
KB
-rwxr-x---
2023-04-04 15:52
keybinding-sublime.js
11.12
KB
-rwxr-x---
2023-04-04 15:52
keybinding-vim.js
226.44
KB
-rwxr-x---
2023-04-04 15:52
keybinding-vscode.js
8.06
KB
-rwxr-x---
2023-04-04 15:52
mode-abap.js
9.17
KB
-rwxr-x---
2023-04-04 15:52
mode-abc.js
9.26
KB
-rwxr-x---
2023-04-04 15:52
mode-actionscript.js
24.44
KB
-rwxr-x---
2023-04-04 15:52
mode-ada.js
4.2
KB
-rwxr-x---
2023-04-04 15:52
mode-alda.js
10.23
KB
-rwxr-x---
2023-04-04 15:52
mode-apache_conf.js
18.94
KB
-rwxr-x---
2023-04-04 15:52
mode-apex.js
15.28
KB
-rwxr-x---
2023-04-04 15:52
mode-applescript.js
9.67
KB
-rwxr-x---
2023-04-04 15:52
mode-aql.js
4.6
KB
-rwxr-x---
2023-04-04 15:52
mode-asciidoc.js
13.79
KB
-rwxr-x---
2023-04-04 15:52
mode-asl.js
15.8
KB
-rwxr-x---
2023-04-04 15:52
mode-assembly_x86.js
11.76
KB
-rwxr-x---
2023-04-04 15:52
mode-autohotkey.js
66.03
KB
-rwxr-x---
2023-04-04 15:52
mode-batchfile.js
8.37
KB
-rwxr-x---
2023-04-04 15:52
mode-c9search.js
9.72
KB
-rwxr-x---
2023-04-04 15:52
mode-c_cpp.js
18.93
KB
-rwxr-x---
2023-04-04 15:52
mode-cirru.js
6.15
KB
-rwxr-x---
2023-04-04 15:52
mode-clojure.js
12.82
KB
-rwxr-x---
2023-04-04 15:52
mode-cobol.js
3.6
KB
-rwxr-x---
2023-04-04 15:52
mode-coffee.js
14.39
KB
-rwxr-x---
2023-04-04 15:52
mode-coldfusion.js
102.85
KB
-rwxr-x---
2023-04-04 15:52
mode-crystal.js
23.55
KB
-rwxr-x---
2023-04-04 15:52
mode-csharp.js
16.41
KB
-rwxr-x---
2023-04-04 15:52
mode-csound_document.js
122.34
KB
-rwxr-x---
2023-04-04 15:52
mode-csound_orchestra.js
74.98
KB
-rwxr-x---
2023-04-04 15:52
mode-csound_score.js
14.06
KB
-rwxr-x---
2023-04-04 15:52
mode-csp.js
2.22
KB
-rwxr-x---
2023-04-04 15:52
mode-css.js
31.11
KB
-rwxr-x---
2023-04-04 15:52
mode-curly.js
100.93
KB
-rwxr-x---
2023-04-04 15:52
mode-d.js
17.42
KB
-rwxr-x---
2023-04-04 15:52
mode-dart.js
24.89
KB
-rwxr-x---
2023-04-04 15:52
mode-diff.js
4.69
KB
-rwxr-x---
2023-04-04 15:52
mode-django.js
101.79
KB
-rwxr-x---
2023-04-04 15:52
mode-dockerfile.js
16.16
KB
-rwxr-x---
2023-04-04 15:52
mode-dot.js
13.82
KB
-rwxr-x---
2023-04-04 15:52
mode-drools.js
18.75
KB
-rwxr-x---
2023-04-04 15:52
mode-edifact.js
5.36
KB
-rwxr-x---
2023-04-04 15:52
mode-eiffel.js
5.15
KB
-rwxr-x---
2023-04-04 15:52
mode-ejs.js
138.23
KB
-rwxr-x---
2023-04-04 15:52
mode-elixir.js
23.07
KB
-rwxr-x---
2023-04-04 15:52
mode-elm.js
9.47
KB
-rwxr-x---
2023-04-04 15:52
mode-erlang.js
45.67
KB
-rwxr-x---
2023-04-04 15:52
mode-forth.js
11.3
KB
-rwxr-x---
2023-04-04 15:52
mode-fortran.js
15.04
KB
-rwxr-x---
2023-04-04 15:52
mode-fsharp.js
10.39
KB
-rwxr-x---
2023-04-04 15:52
mode-fsl.js
8.57
KB
-rwxr-x---
2023-04-04 15:52
mode-ftl.js
50.14
KB
-rwxr-x---
2023-04-04 15:52
mode-gcode.js
3.09
KB
-rwxr-x---
2023-04-04 15:52
mode-gherkin.js
4.87
KB
-rwxr-x---
2023-04-04 15:52
mode-gitignore.js
1.77
KB
-rwxr-x---
2023-04-04 15:52
mode-glsl.js
21.98
KB
-rwxr-x---
2023-04-04 15:52
mode-gobstones.js
43.19
KB
-rwxr-x---
2023-04-04 15:52
mode-golang.js
13.82
KB
-rwxr-x---
2023-04-04 15:52
mode-graphqlschema.js
6.76
KB
-rwxr-x---
2023-04-04 15:52
mode-groovy.js
38.08
KB
-rwxr-x---
2023-04-04 15:52
mode-haml.js
76.63
KB
-rwxr-x---
2023-04-04 15:52
mode-handlebars.js
102.49
KB
-rwxr-x---
2023-04-04 15:52
mode-haskell.js
17.1
KB
-rwxr-x---
2023-04-04 15:52
mode-haskell_cabal.js
4.47
KB
-rwxr-x---
2023-04-04 15:52
mode-haxe.js
12.27
KB
-rwxr-x---
2023-04-04 15:52
mode-hjson.js
11.09
KB
-rwxr-x---
2023-04-04 15:52
mode-html.js
99.38
KB
-rwxr-x---
2023-04-04 15:52
mode-html_elixir.js
124.72
KB
-rwxr-x---
2023-04-04 15:52
mode-html_ruby.js
138.97
KB
-rwxr-x---
2023-04-04 15:52
mode-ini.js
4.88
KB
-rwxr-x---
2023-04-04 15:52
mode-io.js
9.09
KB
-rwxr-x---
2023-04-04 15:52
mode-jack.js
11.02
KB
-rwxr-x---
2023-04-04 15:52
mode-jade.js
79.34
KB
-rwxr-x---
2023-04-04 15:52
mode-java.js
39.81
KB
-rwxr-x---
2023-04-04 15:52
mode-javascript.js
31.08
KB
-rwxr-x---
2023-04-04 15:52
mode-json.js
10.33
KB
-rwxr-x---
2023-04-04 15:52
mode-json5.js
11.28
KB
-rwxr-x---
2023-04-04 15:52
mode-jsoniq.js
320.54
KB
-rwxr-x---
2023-04-04 15:52
mode-jsp.js
58.49
KB
-rwxr-x---
2023-04-04 15:52
mode-jssm.js
10.55
KB
-rwxr-x---
2023-04-04 15:52
mode-jsx.js
13.36
KB
-rwxr-x---
2023-04-04 15:52
mode-julia.js
11.93
KB
-rwxr-x---
2023-04-04 15:52
mode-kotlin.js
24.4
KB
-rwxr-x---
2023-04-04 15:52
mode-latex.js
9.49
KB
-rwxr-x---
2023-04-04 15:52
mode-latte.js
106.07
KB
-rwxr-x---
2023-04-04 15:52
mode-less.js
35.21
KB
-rwxr-x---
2023-04-04 15:52
mode-liquid.js
107.9
KB
-rwxr-x---
2023-04-04 15:52
mode-lisp.js
3.47
KB
-rwxr-x---
2023-04-04 15:52
mode-livescript.js
8.34
KB
-rwxr-x---
2023-04-04 15:52
mode-logiql.js
10.65
KB
-rwxr-x---
2023-04-04 15:52
mode-logtalk.js
15.65
KB
-rwxr-x---
2023-04-04 15:52
mode-lsl.js
31.19
KB
-rwxr-x---
2023-04-04 15:52
mode-lua.js
15.03
KB
-rwxr-x---
2023-04-04 15:52
mode-luapage.js
116.01
KB
-rwxr-x---
2023-04-04 15:52
mode-lucene.js
4.78
KB
-rwxr-x---
2023-04-04 15:52
mode-makefile.js
13.17
KB
-rwxr-x---
2023-04-04 15:52
mode-markdown.js
121.81
KB
-rwxr-x---
2023-04-04 15:52
mode-mask.js
70.27
KB
-rwxr-x---
2023-04-04 15:52
mode-matlab.js
22.9
KB
-rwxr-x---
2023-04-04 15:52
mode-maze.js
9.21
KB
-rwxr-x---
2023-04-04 15:52
mode-mediawiki.js
18.96
KB
-rwxr-x---
2023-04-04 15:52
mode-mel.js
28.47
KB
-rwxr-x---
2023-04-04 15:52
mode-mips.js
9.23
KB
-rwxr-x---
2023-04-04 15:52
mode-mixal.js
5.15
KB
-rwxr-x---
2023-04-04 15:52
mode-mushcode.js
12.08
KB
-rwxr-x---
2023-04-04 15:52
mode-mysql.js
8.79
KB
-rwxr-x---
2023-04-04 15:52
mode-nginx.js
20.03
KB
-rwxr-x---
2023-04-04 15:52
mode-nim.js
12.13
KB
-rwxr-x---
2023-04-04 15:52
mode-nix.js
23.65
KB
-rwxr-x---
2023-04-04 15:52
mode-nsis.js
14.82
KB
-rwxr-x---
2023-04-04 15:52
mode-nunjucks.js
105.3
KB
-rwxr-x---
2023-04-04 15:52
mode-objectivec.js
64.32
KB
-rwxr-x---
2023-04-04 15:52
mode-ocaml.js
21.26
KB
-rwxr-x---
2023-04-04 15:52
mode-pascal.js
7.92
KB
-rwxr-x---
2023-04-04 15:52
mode-perl.js
13.09
KB
-rwxr-x---
2023-04-04 15:52
mode-pgsql.js
84.99
KB
-rwxr-x---
2023-04-04 15:52
mode-php.js
583.22
KB
-rwxr-x---
2023-04-04 15:52
mode-php_laravel_blade.js
590.41
KB
-rwxr-x---
2023-04-04 15:52
mode-pig.js
10.91
KB
-rwxr-x---
2023-04-04 15:52
mode-plain_text.js
1.06
KB
-rwxr-x---
2023-04-04 15:52
mode-powershell.js
38.23
KB
-rwxr-x---
2023-04-04 15:52
mode-praat.js
17.59
KB
-rwxr-x---
2023-04-04 15:52
mode-prisma.js
15.26
KB
-rwxr-x---
2023-04-04 15:52
mode-prolog.js
14.07
KB
-rwxr-x---
2023-04-04 15:52
mode-properties.js
2.33
KB
-rwxr-x---
2023-04-04 15:52
mode-protobuf.js
22.1
KB
-rwxr-x---
2023-04-04 15:52
mode-puppet.js
12.74
KB
-rwxr-x---
2023-04-04 15:52
mode-python.js
15.17
KB
-rwxr-x---
2023-04-04 15:52
mode-qml.js
23.1
KB
-rwxr-x---
2023-04-04 15:52
mode-r.js
9.96
KB
-rwxr-x---
2023-04-04 15:52
mode-raku.js
24.53
KB
-rwxr-x---
2023-04-04 15:52
mode-razor.js
111.58
KB
-rwxr-x---
2023-04-04 15:52
mode-rdoc.js
8.06
KB
-rwxr-x---
2023-04-04 15:52
mode-red.js
19.83
KB
-rwxr-x---
2023-04-04 15:52
mode-redshift.js
13.99
KB
-rwxr-x---
2023-04-04 15:52
mode-rhtml.js
108.67
KB
-rwxr-x---
2023-04-04 15:52
mode-rst.js
5.87
KB
-rwxr-x---
2023-04-04 15:52
mode-ruby.js
38.39
KB
-rwxr-x---
2023-04-04 15:52
mode-rust.js
11.19
KB
-rwxr-x---
2023-04-04 15:52
mode-sass.js
23.81
KB
-rwxr-x---
2023-04-04 15:52
mode-scad.js
12.89
KB
-rwxr-x---
2023-04-04 15:52
mode-scala.js
38.18
KB
-rwxr-x---
2023-04-04 15:52
mode-scheme.js
7.14
KB
-rwxr-x---
2023-04-04 15:52
mode-scrypt.js
13.17
KB
-rwxr-x---
2023-04-04 15:52
mode-scss.js
36.93
KB
-rwxr-x---
2023-04-04 15:52
mode-sh.js
14.53
KB
-rwxr-x---
2023-04-04 15:52
mode-sjs.js
37.03
KB
-rwxr-x---
2023-04-04 15:52
mode-slim.js
197.55
KB
-rwxr-x---
2023-04-04 15:52
mode-smarty.js
104.34
KB
-rwxr-x---
2023-04-04 15:52
mode-smithy.js
15.75
KB
-rwxr-x---
2023-04-04 15:52
mode-snippets.js
7.09
KB
-rwxr-x---
2023-04-04 15:52
mode-soy_template.js
112.64
KB
-rwxr-x---
2023-04-04 15:52
mode-space.js
4.99
KB
-rwxr-x---
2023-04-04 15:52
mode-sparql.js
12.35
KB
-rwxr-x---
2023-04-04 15:52
mode-sql.js
8.45
KB
-rwxr-x---
2023-04-04 15:52
mode-sqlserver.js
23.13
KB
-rwxr-x---
2023-04-04 15:52
mode-stylus.js
20.92
KB
-rwxr-x---
2023-04-04 15:52
mode-svg.js
57.64
KB
-rwxr-x---
2023-04-04 15:52
mode-swift.js
13.46
KB
-rwxr-x---
2023-04-04 15:52
mode-tcl.js
12.28
KB
-rwxr-x---
2023-04-04 15:52
mode-terraform.js
12.99
KB
-rwxr-x---
2023-04-04 15:52
mode-tex.js
5.17
KB
-rwxr-x---
2023-04-04 15:52
mode-text.js
329
B
-rwxr-x---
2023-04-04 15:52
mode-textile.js
4.23
KB
-rwxr-x---
2023-04-04 15:52
mode-toml.js
4.17
KB
-rwxr-x---
2023-04-04 15:52
mode-tsx.js
34.14
KB
-rwxr-x---
2023-04-04 15:52
mode-turtle.js
9.31
KB
-rwxr-x---
2023-04-04 15:52
mode-twig.js
105.04
KB
-rwxr-x---
2023-04-04 15:52
mode-typescript.js
33.72
KB
-rwxr-x---
2023-04-04 15:52
mode-vala.js
27.13
KB
-rwxr-x---
2023-04-04 15:52
mode-vbscript.js
24.06
KB
-rwxr-x---
2023-04-04 15:52
mode-velocity.js
108.55
KB
-rwxr-x---
2023-04-04 15:52
mode-verilog.js
4.45
KB
-rwxr-x---
2023-04-04 15:52
mode-vhdl.js
3.96
KB
-rwxr-x---
2023-04-04 15:52
mode-visualforce.js
103.61
KB
-rwxr-x---
2023-04-04 15:52
mode-wollok.js
35
KB
-rwxr-x---
2023-04-04 15:52
mode-xml.js
23.42
KB
-rwxr-x---
2023-04-04 15:52
mode-xquery.js
317.81
KB
-rwxr-x---
2023-04-04 15:52
mode-yaml.js
10.35
KB
-rwxr-x---
2023-04-04 15:52
mode-zeek.js
16.65
KB
-rwxr-x---
2023-04-04 15:52
theme-ambiance.js
27.55
KB
-rwxr-x---
2023-04-04 15:52
theme-chaos.js
3.47
KB
-rwxr-x---
2023-04-04 15:52
theme-chrome.js
3.29
KB
-rwxr-x---
2023-04-04 15:52
theme-clouds.js
2.61
KB
-rwxr-x---
2023-04-04 15:52
theme-clouds_midnight.js
2.96
KB
-rwxr-x---
2023-04-04 15:52
theme-cobalt.js
2.91
KB
-rwxr-x---
2023-04-04 15:52
theme-crimson_editor.js
3.38
KB
-rwxr-x---
2023-04-04 15:52
theme-dawn.js
2.79
KB
-rwxr-x---
2023-04-04 15:52
theme-dracula.js
3.17
KB
-rwxr-x---
2023-04-04 15:52
theme-dreamweaver.js
3.74
KB
-rwxr-x---
2023-04-04 15:52
theme-eclipse.js
2.66
KB
-rwxr-x---
2023-04-04 15:52
theme-github.js
2.72
KB
-rwxr-x---
2023-04-04 15:52
theme-gob.js
2.93
KB
-rwxr-x---
2023-04-04 15:52
theme-gruvbox.js
2.18
KB
-rwxr-x---
2023-04-04 15:52
theme-idle_fingers.js
2.78
KB
-rwxr-x---
2023-04-04 15:52
theme-iplastic.js
6.95
KB
-rwxr-x---
2023-04-04 15:52
theme-katzenmilch.js
3.68
KB
-rwxr-x---
2023-04-04 15:52
theme-kr_theme.js
2.83
KB
-rwxr-x---
2023-04-04 15:52
theme-kuroir.js
2.51
KB
-rwxr-x---
2023-04-04 15:52
theme-merbivore.js
2.76
KB
-rwxr-x---
2023-04-04 15:52
theme-merbivore_soft.js
2.97
KB
-rwxr-x---
2023-04-04 15:52
theme-mono_industrial.js
3.33
KB
-rwxr-x---
2023-04-04 15:52
theme-monokai.js
2.91
KB
-rwxr-x---
2023-04-04 15:52
theme-nord_dark.js
2.62
KB
-rwxr-x---
2023-04-04 15:52
theme-one_dark.js
3.28
KB
-rwxr-x---
2023-04-04 15:52
theme-pastel_on_dark.js
3.18
KB
-rwxr-x---
2023-04-04 15:52
theme-solarized_dark.js
2.83
KB
-rwxr-x---
2023-04-04 15:52
theme-solarized_light.js
2.88
KB
-rwxr-x---
2023-04-04 15:52
theme-sqlserver.js
3.49
KB
-rwxr-x---
2023-04-04 15:52
theme-terminal.js
3.46
KB
-rwxr-x---
2023-04-04 15:52
theme-textmate.js
3.2
KB
-rwxr-x---
2023-04-04 15:52
theme-tomorrow.js
3.1
KB
-rwxr-x---
2023-04-04 15:52
theme-tomorrow_night.js
3.36
KB
-rwxr-x---
2023-04-04 15:52
theme-tomorrow_night_blue.js
3.57
KB
-rwxr-x---
2023-04-04 15:52
theme-tomorrow_night_bright.js
4.05
KB
-rwxr-x---
2023-04-04 15:52
theme-tomorrow_night_eighties.js
3.76
KB
-rwxr-x---
2023-04-04 15:52
theme-twilight.js
3.02
KB
-rwxr-x---
2023-04-04 15:52
theme-vibrant_ink.js
2.73
KB
-rwxr-x---
2023-04-04 15:52
theme-xcode.js
2.43
KB
-rwxr-x---
2023-04-04 15:52
worker-base.js
41.99
KB
-rwxr-x---
2023-04-04 15:52
worker-coffee.js
340.98
KB
-rwxr-x---
2023-04-04 15:52
worker-css.js
306.75
KB
-rwxr-x---
2023-04-04 15:52
worker-html.js
308.72
KB
-rwxr-x---
2023-04-04 15:52
worker-javascript.js
704.57
KB
-rwxr-x---
2023-04-04 15:52
worker-json.js
49.55
KB
-rwxr-x---
2023-04-04 15:52
worker-lua.js
101.46
KB
-rwxr-x---
2023-04-04 15:52
worker-php.js
129.92
KB
-rwxr-x---
2023-04-04 15:52
worker-xml.js
88.56
KB
-rwxr-x---
2023-04-04 15:52
worker-xquery.js
3.34
MB
-rwxr-x---
2023-04-04 15:52
Save
Rename
define("ace/ext/textarea",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/net","ace/ace"], function(require, exports, module) { "use strict"; var event = require("../lib/event"); var UA = require("../lib/useragent"); var net = require("../lib/net"); var ace = require("../ace"); module.exports = exports = ace; var getCSSProperty = function(element, container, property) { var ret = element.style[property]; if (!ret) { if (window.getComputedStyle) { ret = window.getComputedStyle(element, '').getPropertyValue(property); } else { ret = element.currentStyle[property]; } } if (!ret || ret == 'auto' || ret == 'intrinsic') { ret = container.style[property]; } return ret; }; function applyStyles(elm, styles) { for (var style in styles) { elm.style[style] = styles[style]; } } function setupContainer(element, getValue) { if (element.type != 'textarea') { throw new Error("Textarea required!"); } var parentNode = element.parentNode; var container = document.createElement('div'); var resizeEvent = function() { var style = 'position:relative;'; [ 'margin-top', 'margin-left', 'margin-right', 'margin-bottom' ].forEach(function(item) { style += item + ':' + getCSSProperty(element, container, item) + ';'; }); var width = getCSSProperty(element, container, 'width') || (element.clientWidth + "px"); var height = getCSSProperty(element, container, 'height') || (element.clientHeight + "px"); style += 'height:' + height + ';width:' + width + ';'; style += 'display:inline-block;'; container.setAttribute('style', style); }; event.addListener(window, 'resize', resizeEvent); resizeEvent(); parentNode.insertBefore(container, element.nextSibling); while (parentNode !== document) { if (parentNode.tagName.toUpperCase() === 'FORM') { var oldSumit = parentNode.onsubmit; parentNode.onsubmit = function(evt) { element.value = getValue(); if (oldSumit) { oldSumit.call(this, evt); } }; break; } parentNode = parentNode.parentNode; } return container; } exports.transformTextarea = function(element, options) { var isFocused = element.autofocus || document.activeElement == element; var session; var container = setupContainer(element, function() { return session.getValue(); }); element.style.display = 'none'; container.style.background = 'white'; var editorDiv = document.createElement("div"); applyStyles(editorDiv, { top: "0px", left: "0px", right: "0px", bottom: "0px", border: "1px solid gray", position: "absolute" }); container.appendChild(editorDiv); var settingOpener = document.createElement("div"); applyStyles(settingOpener, { position: "absolute", right: "0px", bottom: "0px", cursor: "nw-resize", border: "solid 9px", borderColor: "lightblue gray gray #ceade6", zIndex: 101 }); var settingDiv = document.createElement("div"); var settingDivStyles = { top: "0px", left: "20%", right: "0px", bottom: "0px", position: "absolute", padding: "5px", zIndex: 100, color: "white", display: "none", overflow: "auto", fontSize: "14px", boxShadow: "-5px 2px 3px gray" }; if (!UA.isOldIE) { settingDivStyles.backgroundColor = "rgba(0, 0, 0, 0.6)"; } else { settingDivStyles.backgroundColor = "#333"; } applyStyles(settingDiv, settingDivStyles); container.appendChild(settingDiv); options = options || exports.defaultOptions; var editor = ace.edit(editorDiv); session = editor.getSession(); session.setValue(element.value || element.innerHTML); if (isFocused) editor.focus(); container.appendChild(settingOpener); setupApi(editor, editorDiv, settingDiv, ace, options); setupSettingPanel(settingDiv, settingOpener, editor); var state = ""; event.addListener(settingOpener, "mousemove", function(e) { var rect = this.getBoundingClientRect(); var x = e.clientX - rect.left, y = e.clientY - rect.top; if (x + y < (rect.width + rect.height)/2) { this.style.cursor = "pointer"; state = "toggle"; } else { state = "resize"; this.style.cursor = "nw-resize"; } }); event.addListener(settingOpener, "mousedown", function(e) { e.preventDefault(); if (state == "toggle") { editor.setDisplaySettings(); return; } container.style.zIndex = 100000; var rect = container.getBoundingClientRect(); var startX = rect.width + rect.left - e.clientX; var startY = rect.height + rect.top - e.clientY; event.capture(settingOpener, function(e) { container.style.width = e.clientX - rect.left + startX + "px"; container.style.height = e.clientY - rect.top + startY + "px"; editor.resize(); }, function() {}); }); return editor; }; function load(url, module, callback) { net.loadScript(url, function() { require([module], callback); }); } function setupApi(editor, editorDiv, settingDiv, ace, options) { var session = editor.getSession(); var renderer = editor.renderer; function toBool(value) { return value === "true" || value == true; } editor.setDisplaySettings = function(display) { if (display == null) display = settingDiv.style.display == "none"; if (display) { settingDiv.style.display = "block"; settingDiv.hideButton.focus(); editor.on("focus", function onFocus() { editor.removeListener("focus", onFocus); settingDiv.style.display = "none"; }); } else { editor.focus(); } }; editor.$setOption = editor.setOption; editor.$getOption = editor.getOption; editor.setOption = function(key, value) { switch (key) { case "mode": editor.$setOption("mode", "ace/mode/" + value); break; case "theme": editor.$setOption("theme", "ace/theme/" + value); break; case "keybindings": switch (value) { case "vim": editor.setKeyboardHandler("ace/keyboard/vim"); break; case "emacs": editor.setKeyboardHandler("ace/keyboard/emacs"); break; default: editor.setKeyboardHandler(null); } break; case "wrap": case "fontSize": editor.$setOption(key, value); break; default: editor.$setOption(key, toBool(value)); } }; editor.getOption = function(key) { switch (key) { case "mode": return editor.$getOption("mode").substr("ace/mode/".length); break; case "theme": return editor.$getOption("theme").substr("ace/theme/".length); break; case "keybindings": var value = editor.getKeyboardHandler(); switch (value && value.$id) { case "ace/keyboard/vim": return "vim"; case "ace/keyboard/emacs": return "emacs"; default: return "ace"; } break; default: return editor.$getOption(key); } }; editor.setOptions(options); return editor; } function setupSettingPanel(settingDiv, settingOpener, editor) { var BOOL = null; var desc = { mode: "Mode:", wrap: "Soft Wrap:", theme: "Theme:", fontSize: "Font Size:", showGutter: "Display Gutter:", keybindings: "Keyboard", showPrintMargin: "Show Print Margin:", useSoftTabs: "Use Soft Tabs:", showInvisibles: "Show Invisibles" }; var optionValues = { mode: { text: "Plain", javascript: "JavaScript", xml: "XML", html: "HTML", css: "CSS", scss: "SCSS", python: "Python", php: "PHP", java: "Java", ruby: "Ruby", c_cpp: "C/C++", coffee: "CoffeeScript", json: "json", perl: "Perl", clojure: "Clojure", ocaml: "OCaml", csharp: "C#", haxe: "haXe", svg: "SVG", textile: "Textile", groovy: "Groovy", liquid: "Liquid", Scala: "Scala" }, theme: { clouds: "Clouds", clouds_midnight: "Clouds Midnight", cobalt: "Cobalt", crimson_editor: "Crimson Editor", dawn: "Dawn", gob: "Green on Black", eclipse: "Eclipse", idle_fingers: "Idle Fingers", kr_theme: "Kr Theme", merbivore: "Merbivore", merbivore_soft: "Merbivore Soft", mono_industrial: "Mono Industrial", monokai: "Monokai", pastel_on_dark: "Pastel On Dark", solarized_dark: "Solarized Dark", solarized_light: "Solarized Light", textmate: "Textmate", twilight: "Twilight", vibrant_ink: "Vibrant Ink" }, showGutter: BOOL, fontSize: { "10px": "10px", "11px": "11px", "12px": "12px", "14px": "14px", "16px": "16px" }, wrap: { off: "Off", 40: "40", 80: "80", free: "Free" }, keybindings: { ace: "ace", vim: "vim", emacs: "emacs" }, showPrintMargin: BOOL, useSoftTabs: BOOL, showInvisibles: BOOL }; var table = []; table.push("<table><tr><th>Setting</th><th>Value</th></tr>"); function renderOption(builder, option, obj, cValue) { if (!obj) { builder.push( "<input type='checkbox' title='", option, "' ", cValue + "" == "true" ? "checked='true'" : "", "'></input>" ); return; } builder.push("<select title='" + option + "'>"); for (var value in obj) { builder.push("<option value='" + value + "' "); if (cValue == value) { builder.push(" selected "); } builder.push(">", obj[value], "</option>"); } builder.push("</select>"); } for (var option in exports.defaultOptions) { table.push("<tr><td>", desc[option], "</td>"); table.push("<td>"); renderOption(table, option, optionValues[option], editor.getOption(option)); table.push("</td></tr>"); } table.push("</table>"); settingDiv.innerHTML = table.join(""); var onChange = function(e) { var select = e.currentTarget; editor.setOption(select.title, select.value); }; var onClick = function(e) { var cb = e.currentTarget; editor.setOption(cb.title, cb.checked); }; var selects = settingDiv.getElementsByTagName("select"); for (var i = 0; i < selects.length; i++) selects[i].onchange = onChange; var cbs = settingDiv.getElementsByTagName("input"); for (var i = 0; i < cbs.length; i++) cbs[i].onclick = onClick; var button = document.createElement("input"); button.type = "button"; button.value = "Hide"; event.addListener(button, "click", function() { editor.setDisplaySettings(false); }); settingDiv.appendChild(button); settingDiv.hideButton = button; } exports.defaultOptions = { mode: "javascript", theme: "textmate", wrap: "off", fontSize: "12px", showGutter: "false", keybindings: "ace", showPrintMargin: "false", useSoftTabs: "true", showInvisibles: "false" }; }); (function() { window.require(["ace/ext/textarea"], function(m) { if (typeof module == "object" && typeof exports == "object" && module) { module.exports = m; } }); })();