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.119
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/mode/crystal_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function (require, exports, module) { "use strict"; var oop = require("../lib/oop"); var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; var CrystalHighlightRules = function () { var builtinFunctions = ( "puts|initialize|previous_def|typeof|as|pointerof|sizeof|instance_sizeof" ); var keywords = ( "if|end|else|elsif|unless|case|when|break|while|next|until|def|return|class|new|getter|setter|property|lib" + "|fun|do|struct|private|protected|public|module|super|abstract|include|extend|begin|enum|raise|yield|with" + "|alias|rescue|ensure|macro|uninitialized|union|type|require" ); var buildinConstants = ( "true|TRUE|false|FALSE|nil|NIL|__LINE__|__END_LINE__|__FILE__|__DIR__" ); var builtinVariables = ( "$DEBUG|$defout|$FILENAME|$LOAD_PATH|$SAFE|$stdin|$stdout|$stderr|$VERBOSE|" + "root_url|flash|session|cookies|params|request|response|logger|self" ); var keywordMapper = this.$keywords = this.createKeywordMapper({ "keyword": keywords, "constant.language": buildinConstants, "variable.language": builtinVariables, "support.function": builtinFunctions }, "identifier"); var hexNumber = "(?:0[xX][\\dA-Fa-f]+)"; var decNumber = "(?:[0-9][\\d_]*)"; var octNumber = "(?:0o[0-7][0-7]*)"; var binNumber = "(?:0[bB][01]+)"; var intNumber = "(?:[+-]?)(?:" + hexNumber + "|" + decNumber + "|" + octNumber + "|" + binNumber + ")(?:_?[iIuU](?:8|16|32|64))?\\b"; var escapeExpression = /\\(?:[nsrtvfbae'"\\]|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4}|u{[\da-fA-F]{1,6}})/; var extEscapeExspresssion = /\\(?:[nsrtvfbae'"\\]|[0-7]{3}|x[\da-fA-F]{2}|u[\da-fA-F]{4}|u{[\da-fA-F]{1,6}}|u{(:?[\da-fA-F]{2}\s)*[\da-fA-F]{2}})/; this.$rules = { "start": [ { token: "comment", regex: "#.*$" }, { token: "string.regexp", regex: "[/]", push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "string.regexp", regex: "[/][imx]*(?=[).,;\\s]|$)", next: "pop" }, { defaultToken: "string.regexp" }] }, [{ regex: "[{}]", onMatch: function (val, state, stack) { this.next = val == "{" ? this.nextState : ""; if (val == "{" && stack.length) { stack.unshift("start", state); return "paren.lparen"; } if (val == "}" && stack.length) { stack.shift(); this.next = stack.shift(); if (this.next.indexOf("string") != -1) return "paren.end"; } return val == "{" ? "paren.lparen" : "paren.rparen"; }, nextState: "start" }, { token: "string.start", regex: /"/, push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "string", regex: /\\#{/ }, { token: "paren.start", regex: /#{/, push: "start" }, { token: "string.end", regex: /"/, next: "pop" }, { defaultToken: "string" }] }, { token: "string.start", regex: /`/, push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "string", regex: /\\#{/ }, { token: "paren.start", regex: /#{/, push: "start" }, { token: "string.end", regex: /`/, next: "pop" }, { defaultToken: "string" }] }, { stateName: "rpstring", token: "string.start", regex: /%[Qx]?\(/, push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "string.start", regex: /\(/, push: "rpstring" }, { token: "string.end", regex: /\)/, next: "pop" }, { token: "paren.start", regex: /#{/, push: "start" }, { defaultToken: "string" }] }, { stateName: "spstring", token: "string.start", regex: /%[Qx]?\[/, push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "string.start", regex: /\[/, push: "spstring" }, { token: "string.end", regex: /]/, next: "pop" }, { token: "paren.start", regex: /#{/, push: "start" }, { defaultToken: "string" }] }, { stateName: "fpstring", token: "string.start", regex: /%[Qx]?{/, push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "string.start", regex: /{/, push: "fpstring" }, { token: "string.end", regex: /}/, next: "pop" }, { token: "paren.start", regex: /#{/, push: "start" }, { defaultToken: "string" }] }, { stateName: "tpstring", token: "string.start", regex: /%[Qx]?</, push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "string.start", regex: /</, push: "tpstring" }, { token: "string.end", regex: />/, next: "pop" }, { token: "paren.start", regex: /#{/, push: "start" }, { defaultToken: "string" }] }, { stateName: "ppstring", token: "string.start", regex: /%[Qx]?\|/, push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "string.end", regex: /\|/, next: "pop" }, { token: "paren.start", regex: /#{/, push: "start" }, { defaultToken: "string" }] }, { stateName: "rpqstring", token: "string.start", regex: /%[qwir]\(/, push: [{ token: "string.start", regex: /\(/, push: "rpqstring" }, { token: "string.end", regex: /\)/, next: "pop" }, { defaultToken: "string" }] }, { stateName: "spqstring", token: "string.start", regex: /%[qwir]\[/, push: [{ token: "string.start", regex: /\[/, push: "spqstring" }, { token: "string.end", regex: /]/, next: "pop" }, { defaultToken: "string" }] }, { stateName: "fpqstring", token: "string.start", regex: /%[qwir]{/, push: [{ token: "string.start", regex: /{/, push: "fpqstring" }, { token: "string.end", regex: /}/, next: "pop" }, { defaultToken: "string" }] }, { stateName: "tpqstring", token: "string.start", regex: /%[qwir]</, push: [{ token: "string.start", regex: /</, push: "tpqstring" }, { token: "string.end", regex: />/, next: "pop" }, { defaultToken: "string" }] }, { stateName: "ppqstring", token: "string.start", regex: /%[qwir]\|/, push: [{ token: "string.end", regex: /\|/, next: "pop" }, { defaultToken: "string" }] }, { token: "string.start", regex: /'/, push: [{ token: "constant.language.escape", regex: escapeExpression }, { token: "string.end", regex: /'|$/, next: "pop" }, { defaultToken: "string" }] }], { token: "text", // namespaces aren't symbols regex: "::" }, { token: "variable.instance", // instance variable regex: "@{1,2}[a-zA-Z_\\d]+" }, { token: "variable.fresh", // fresh variable regex: "%[a-zA-Z_\\d]+" }, { token: "support.class", // class name regex: "[A-Z][a-zA-Z_\\d]+" }, { token: "constant.other.symbol", // symbol regex: "[:](?:(?:===|<=>|\\[]\\?|\\[]=|\\[]|>>|\\*\\*|<<|==|!=|>=|<=|!~|=~|<|\\+|-|\\*|\\/|%|&|\\||\\^|>|!|~)|(?:(?:[A-Za-z_]|[@$](?=[a-zA-Z0-9_]))[a-zA-Z0-9_]*[!=?]?))" }, { token: "constant.numeric", // float regex: "[+-]?\\d(?:\\d|_(?=\\d))*(?:(?:\\.\\d(?:\\d|_(?=\\d))*)?(?:[eE][+-]?\\d+)?)?(?:_?[fF](?:32|64))?\\b" }, { token: "constant.numeric", regex: intNumber }, { token: "constant.other.symbol", regex: ':"', push: [{ token: "constant.language.escape", regex: extEscapeExspresssion }, { token: "constant.other.symbol", regex: '"', next: "pop" }, { defaultToken: "constant.other.symbol" }] }, { token: "constant.language.boolean", regex: "(?:true|false)\\b" }, { token: "support.function", regex: "(?:is_a\\?|nil\\?|responds_to\\?|as\\?)" }, { token: keywordMapper, regex: "[a-zA-Z_$][a-zA-Z0-9_$!?]*\\b" }, { token: "variable.system", regex: "\\$\\!|\\$\\?" }, { token: "punctuation.separator.key-value", regex: "=>" }, { stateName: "heredoc", onMatch: function (value, currentState, stack) { var next = "heredoc"; var tokens = value.split(this.splitRegex); stack.push(next, tokens[3]); return [ {type: "constant", value: tokens[1]}, {type: "string", value: tokens[2]}, {type: "support.class", value: tokens[3]}, {type: "string", value: tokens[4]} ]; }, regex: "(<<-)([']?)([\\w]+)([']?)", rules: { heredoc: [{ token: "string", regex: "^ +" }, { onMatch: function (value, currentState, stack) { if (value === stack[1]) { stack.shift(); stack.shift(); this.next = stack[0] || "start"; return "support.class"; } this.next = ""; return "string"; }, regex: ".*$", next: "start" }] } }, { regex: "$", token: "empty", next: function (currentState, stack) { if (stack[0] === "heredoc") return stack[0]; return currentState; } }, { token: "punctuation.operator", regex: /[.]\s*(?![.])/, push: [{ token : "punctuation.operator", regex : /[.]\s*(?![.])/ }, { token : "support.function", regex : "[a-zA-Z_$][a-zA-Z0-9_$]*\\b" }, { regex: "", token: "empty", next: "pop" }] }, { token: "keyword.operator", regex: "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|\\?|\\:|&&|\\|\\||\\?\\:|\\*=|%=|\\+=|\\-=|&=|\\^=|\\^|\\|" }, { token: "punctuation.operator", regex: /[?:,;.]/ }, { token: "paren.lparen", regex: "[[({]" }, { token: "paren.rparen", regex: "[\\])}]" }, { token: "text", regex: "\\s+" } ] }; this.normalizeRules(); }; oop.inherits(CrystalHighlightRules, TextHighlightRules); exports.CrystalHighlightRules = CrystalHighlightRules; }); define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { "use strict"; var Range = require("../range").Range; var MatchingBraceOutdent = function() {}; (function() { this.checkOutdent = function(line, input) { if (! /^\s+$/.test(line)) return false; return /^\s*\}/.test(input); }; this.autoOutdent = function(doc, row) { var line = doc.getLine(row); var match = line.match(/^(\s*\})/); if (!match) return 0; var column = match[1].length; var openBracePos = doc.findMatchingBracket({row: row, column: column}); if (!openBracePos || openBracePos.row == row) return 0; var indent = this.$getIndent(doc.getLine(openBracePos.row)); doc.replace(new Range(row, 0, row, column-1), indent); }; this.$getIndent = function(line) { return line.match(/^\s*/)[0]; }; }).call(MatchingBraceOutdent.prototype); exports.MatchingBraceOutdent = MatchingBraceOutdent; }); define("ace/mode/folding/coffee",["require","exports","module","ace/lib/oop","ace/mode/folding/fold_mode","ace/range"], function(require, exports, module) { "use strict"; var oop = require("../../lib/oop"); var BaseFoldMode = require("./fold_mode").FoldMode; var Range = require("../../range").Range; var FoldMode = exports.FoldMode = function() {}; oop.inherits(FoldMode, BaseFoldMode); (function() { this.getFoldWidgetRange = function(session, foldStyle, row) { var range = this.indentationBlock(session, row); if (range) return range; var re = /\S/; var line = session.getLine(row); var startLevel = line.search(re); if (startLevel == -1 || line[startLevel] != "#") return; var startColumn = line.length; var maxRow = session.getLength(); var startRow = row; var endRow = row; while (++row < maxRow) { line = session.getLine(row); var level = line.search(re); if (level == -1) continue; if (line[level] != "#") break; endRow = row; } if (endRow > startRow) { var endColumn = session.getLine(endRow).length; return new Range(startRow, startColumn, endRow, endColumn); } }; this.getFoldWidget = function(session, foldStyle, row) { var line = session.getLine(row); var indent = line.search(/\S/); var next = session.getLine(row + 1); var prev = session.getLine(row - 1); var prevIndent = prev.search(/\S/); var nextIndent = next.search(/\S/); if (indent == -1) { session.foldWidgets[row - 1] = prevIndent!= -1 && prevIndent < nextIndent ? "start" : ""; return ""; } if (prevIndent == -1) { if (indent == nextIndent && line[indent] == "#" && next[indent] == "#") { session.foldWidgets[row - 1] = ""; session.foldWidgets[row + 1] = ""; return "start"; } } else if (prevIndent == indent && line[indent] == "#" && prev[indent] == "#") { if (session.getLine(row - 2).search(/\S/) == -1) { session.foldWidgets[row - 1] = "start"; session.foldWidgets[row + 1] = ""; return ""; } } if (prevIndent!= -1 && prevIndent < indent) session.foldWidgets[row - 1] = "start"; else session.foldWidgets[row - 1] = ""; if (indent < nextIndent) return "start"; else return ""; }; }).call(FoldMode.prototype); }); define("ace/mode/crystal",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/crystal_highlight_rules","ace/mode/matching_brace_outdent","ace/range","ace/mode/behaviour/cstyle","ace/mode/folding/coffee"], function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); var TextMode = require("./text").Mode; var CrystalHighlightRules = require("./crystal_highlight_rules").CrystalHighlightRules; var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; var Range = require("../range").Range; var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; var FoldMode = require("./folding/coffee").FoldMode; var Mode = function() { this.HighlightRules = CrystalHighlightRules; this.$outdent = new MatchingBraceOutdent(); this.$behaviour = new CstyleBehaviour(); this.foldingRules = new FoldMode(); }; oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "#"; this.getNextLineIndent = function(state, line, tab) { var indent = this.$getIndent(line); var tokenizedLine = this.getTokenizer().getLineTokens(line, state); var tokens = tokenizedLine.tokens; if (tokens.length && tokens[tokens.length-1].type == "comment") { return indent; } if (state == "start") { var match = line.match(/^.*[\{\(\[]\s*$/); var startingClassOrMethod = line.match(/^\s*(class|def|module)\s.*$/); var startingDoBlock = line.match(/.*do(\s*|\s+\|.*\|\s*)$/); var startingConditional = line.match(/^\s*(if|else|when)\s*/); if (match || startingClassOrMethod || startingDoBlock || startingConditional) { indent += tab; } } return indent; }; this.checkOutdent = function(state, line, input) { return /^\s+(end|else)$/.test(line + input) || this.$outdent.checkOutdent(line, input); }; this.autoOutdent = function(state, session, row) { var line = session.getLine(row); if (/}/.test(line)) return this.$outdent.autoOutdent(session, row); var indent = this.$getIndent(line); var prevLine = session.getLine(row - 1); var prevIndent = this.$getIndent(prevLine); var tab = session.getTabString(); if (prevIndent.length <= indent.length) { if (indent.slice(-tab.length) == tab) session.remove(new Range(row, indent.length-tab.length, row, indent.length)); } }; this.$id = "ace/mode/crystal"; }).call(Mode.prototype); exports.Mode = Mode; }); (function() { window.require(["ace/mode/crystal"], function(m) { if (typeof module == "object" && typeof exports == "object" && module) { module.exports = m; } }); })();