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_old /
btm2000.bak /
includes /
ace /
Delete
Unzip
Name
Size
Permission
Date
Action
snippets
[ DIR ]
drwxr-xr-x
2025-11-25 13:47
ace.js
662.35
KB
-rw-r--r--
2025-11-25 13:48
ext-beautify.js
8.08
KB
-rw-r--r--
2025-11-25 13:48
ext-chromevox.js
13.32
KB
-rw-r--r--
2025-11-25 13:48
ext-elastic_tabstops_lite.js
8.55
KB
-rw-r--r--
2025-11-25 13:48
ext-emmet.js
42.22
KB
-rw-r--r--
2025-11-25 13:48
ext-error_marker.js
141
B
-rw-r--r--
2025-11-25 13:48
ext-keybinding_menu.js
5.72
KB
-rw-r--r--
2025-11-25 13:48
ext-language_tools.js
66.45
KB
-rw-r--r--
2025-11-25 13:48
ext-linking.js
1.76
KB
-rw-r--r--
2025-11-25 13:48
ext-modelist.js
5.99
KB
-rw-r--r--
2025-11-25 13:48
ext-old_ie.js
15.78
KB
-rw-r--r--
2025-11-25 13:48
ext-searchbox.js
16.2
KB
-rw-r--r--
2025-11-25 13:48
ext-settings_menu.js
20.67
KB
-rw-r--r--
2025-11-25 13:48
ext-spellcheck.js
2.35
KB
-rw-r--r--
2025-11-25 13:48
ext-split.js
7.22
KB
-rw-r--r--
2025-11-25 13:48
ext-static_highlight.js
4.91
KB
-rw-r--r--
2025-11-25 13:48
ext-statusbar.js
1.68
KB
-rw-r--r--
2025-11-25 13:48
ext-textarea.js
15.9
KB
-rw-r--r--
2025-11-25 13:48
ext-themelist.js
2.44
KB
-rw-r--r--
2025-11-25 13:48
ext-whitespace.js
6.07
KB
-rw-r--r--
2025-11-25 13:48
keybinding-emacs.js
40.08
KB
-rw-r--r--
2025-11-25 13:48
keybinding-vim.js
201.11
KB
-rw-r--r--
2025-11-25 13:48
mode-abap.js
8.87
KB
-rw-r--r--
2025-11-25 13:48
mode-abc.js
8.85
KB
-rw-r--r--
2025-11-25 13:48
mode-actionscript.js
24.06
KB
-rw-r--r--
2025-11-25 13:48
mode-ada.js
2.71
KB
-rw-r--r--
2025-11-25 13:48
mode-apache_conf.js
18.61
KB
-rw-r--r--
2025-11-25 13:48
mode-applescript.js
9.34
KB
-rw-r--r--
2025-11-25 13:48
mode-asciidoc.js
13.47
KB
-rw-r--r--
2025-11-25 13:48
mode-assembly_x86.js
11.44
KB
-rw-r--r--
2025-11-25 13:48
mode-autohotkey.js
65.67
KB
-rw-r--r--
2025-11-25 13:48
mode-batchfile.js
8.04
KB
-rw-r--r--
2025-11-25 13:48
mode-bro.js
10.78
KB
-rw-r--r--
2025-11-25 13:48
mode-c9search.js
9.46
KB
-rw-r--r--
2025-11-25 13:48
mode-c_cpp.js
18.05
KB
-rw-r--r--
2025-11-25 13:48
mode-cirru.js
5.83
KB
-rw-r--r--
2025-11-25 13:48
mode-clojure.js
12.46
KB
-rw-r--r--
2025-11-25 13:48
mode-cobol.js
3.29
KB
-rw-r--r--
2025-11-25 13:48
mode-coffee.js
14.03
KB
-rw-r--r--
2025-11-25 13:48
mode-coldfusion.js
101.72
KB
-rw-r--r--
2025-11-25 13:48
mode-csharp.js
16.08
KB
-rw-r--r--
2025-11-25 13:48
mode-css.js
30.18
KB
-rw-r--r--
2025-11-25 13:48
mode-curly.js
99.81
KB
-rw-r--r--
2025-11-25 13:48
mode-d.js
17.11
KB
-rw-r--r--
2025-11-25 13:48
mode-dart.js
23.84
KB
-rw-r--r--
2025-11-25 13:48
mode-diff.js
4.36
KB
-rw-r--r--
2025-11-25 13:48
mode-django.js
100.62
KB
-rw-r--r--
2025-11-25 13:48
mode-dockerfile.js
15.79
KB
-rw-r--r--
2025-11-25 13:48
mode-dot.js
13.51
KB
-rw-r--r--
2025-11-25 13:48
mode-drools.js
17.28
KB
-rw-r--r--
2025-11-25 13:48
mode-eiffel.js
4.84
KB
-rw-r--r--
2025-11-25 13:48
mode-ejs.js
117.48
KB
-rw-r--r--
2025-11-25 13:48
mode-elixir.js
22.76
KB
-rw-r--r--
2025-11-25 13:48
mode-elm.js
9.16
KB
-rw-r--r--
2025-11-25 13:48
mode-erlang.js
45.31
KB
-rw-r--r--
2025-11-25 13:48
mode-forth.js
10.98
KB
-rw-r--r--
2025-11-25 13:48
mode-fortran.js
14.72
KB
-rw-r--r--
2025-11-25 13:48
mode-ftl.js
49.7
KB
-rw-r--r--
2025-11-25 13:48
mode-gcode.js
2.78
KB
-rw-r--r--
2025-11-25 13:48
mode-gherkin.js
4.59
KB
-rw-r--r--
2025-11-25 13:48
mode-gitignore.js
1.45
KB
-rw-r--r--
2025-11-25 13:48
mode-glsl.js
21.1
KB
-rw-r--r--
2025-11-25 13:48
mode-gobstones.js
34.77
KB
-rw-r--r--
2025-11-25 13:48
mode-golang.js
13.5
KB
-rw-r--r--
2025-11-25 13:48
mode-graphqlschema.js
6.38
KB
-rw-r--r--
2025-11-25 13:48
mode-groovy.js
37.69
KB
-rw-r--r--
2025-11-25 13:48
mode-haml.js
63.54
KB
-rw-r--r--
2025-11-25 13:48
mode-handlebars.js
101.37
KB
-rw-r--r--
2025-11-25 13:48
mode-haskell.js
16.72
KB
-rw-r--r--
2025-11-25 13:48
mode-haskell_cabal.js
4.15
KB
-rw-r--r--
2025-11-25 13:48
mode-haxe.js
11.96
KB
-rw-r--r--
2025-11-25 13:48
mode-hjson.js
10.77
KB
-rw-r--r--
2025-11-25 13:48
mode-html.js
98.26
KB
-rw-r--r--
2025-11-25 13:48
mode-html_elixir.js
123.61
KB
-rw-r--r--
2025-11-25 13:48
mode-html_ruby.js
118.22
KB
-rw-r--r--
2025-11-25 13:48
mode-ini.js
4.58
KB
-rw-r--r--
2025-11-25 13:48
mode-io.js
9.17
KB
-rw-r--r--
2025-11-25 13:48
mode-jack.js
10.71
KB
-rw-r--r--
2025-11-25 13:48
mode-jade.js
86.1
KB
-rw-r--r--
2025-11-25 13:48
mode-java.js
36.31
KB
-rw-r--r--
2025-11-25 13:48
mode-javascript.js
30.68
KB
-rw-r--r--
2025-11-25 13:48
mode-json.js
9.93
KB
-rw-r--r--
2025-11-25 13:48
mode-jsoniq.js
320.04
KB
-rw-r--r--
2025-11-25 13:48
mode-jsp.js
56.89
KB
-rw-r--r--
2025-11-25 13:48
mode-jsx.js
13.05
KB
-rw-r--r--
2025-11-25 13:48
mode-julia.js
11.61
KB
-rw-r--r--
2025-11-25 13:48
mode-kotlin.js
23.86
KB
-rw-r--r--
2025-11-25 13:48
mode-latex.js
7.21
KB
-rw-r--r--
2025-11-25 13:48
mode-lean.js
9.46
KB
-rw-r--r--
2025-11-25 13:48
mode-less.js
34.33
KB
-rw-r--r--
2025-11-25 13:48
mode-liquid.js
49.28
KB
-rw-r--r--
2025-11-25 13:48
mode-lisp.js
3.16
KB
-rw-r--r--
2025-11-25 13:48
mode-live_script.js
26.71
KB
-rw-r--r--
2025-11-25 13:48
mode-livescript.js
7.92
KB
-rw-r--r--
2025-11-25 13:48
mode-logiql.js
10.35
KB
-rw-r--r--
2025-11-25 13:48
mode-lsl.js
30.83
KB
-rw-r--r--
2025-11-25 13:48
mode-lua.js
14.15
KB
-rw-r--r--
2025-11-25 13:48
mode-luapage.js
114.33
KB
-rw-r--r--
2025-11-25 13:48
mode-lucene.js
2.07
KB
-rw-r--r--
2025-11-25 13:48
mode-makefile.js
12.81
KB
-rw-r--r--
2025-11-25 13:48
mode-markdown.js
110.88
KB
-rw-r--r--
2025-11-25 13:48
mode-mask.js
69.49
KB
-rw-r--r--
2025-11-25 13:48
mode-matlab.js
22.58
KB
-rw-r--r--
2025-11-25 13:48
mode-mavens_mate_log.js
5.21
KB
-rw-r--r--
2025-11-25 13:48
mode-maze.js
8.85
KB
-rw-r--r--
2025-11-25 13:48
mode-mel.js
28.16
KB
-rw-r--r--
2025-11-25 13:48
mode-mips_assembler.js
9.33
KB
-rw-r--r--
2025-11-25 13:48
mode-mipsassembler.js
6.08
KB
-rw-r--r--
2025-11-25 13:48
mode-mushcode.js
11.77
KB
-rw-r--r--
2025-11-25 13:48
mode-mysql.js
8.48
KB
-rw-r--r--
2025-11-25 13:48
mode-nix.js
22.78
KB
-rw-r--r--
2025-11-25 13:48
mode-nsis.js
14.16
KB
-rw-r--r--
2025-11-25 13:48
mode-objectivec.js
63.48
KB
-rw-r--r--
2025-11-25 13:48
mode-ocaml.js
20.95
KB
-rw-r--r--
2025-11-25 13:48
mode-pascal.js
7.43
KB
-rw-r--r--
2025-11-25 13:48
mode-perl.js
12.73
KB
-rw-r--r--
2025-11-25 13:48
mode-pgsql.js
78.37
KB
-rw-r--r--
2025-11-25 13:48
mode-php.js
588.2
KB
-rw-r--r--
2025-11-25 13:48
mode-pig.js
10.59
KB
-rw-r--r--
2025-11-25 13:48
mode-plain_text.js
757
B
-rw-r--r--
2025-11-25 13:48
mode-powershell.js
37.91
KB
-rw-r--r--
2025-11-25 13:48
mode-praat.js
17.09
KB
-rw-r--r--
2025-11-25 13:48
mode-prolog.js
13.75
KB
-rw-r--r--
2025-11-25 13:48
mode-properties.js
2.02
KB
-rw-r--r--
2025-11-25 13:48
mode-protobuf.js
21.22
KB
-rw-r--r--
2025-11-25 13:48
mode-python.js
8.52
KB
-rw-r--r--
2025-11-25 13:47
mode-r.js
9.41
KB
-rw-r--r--
2025-11-25 13:47
mode-razor.js
110.43
KB
-rw-r--r--
2025-11-25 13:47
mode-rdoc.js
6.64
KB
-rw-r--r--
2025-11-25 13:47
mode-rhtml.js
107.56
KB
-rw-r--r--
2025-11-25 13:47
mode-rst.js
5.52
KB
-rw-r--r--
2025-11-25 13:47
mode-ruby.js
18.45
KB
-rw-r--r--
2025-11-25 13:47
mode-rust.js
10.68
KB
-rw-r--r--
2025-11-25 13:47
mode-sass.js
18.32
KB
-rw-r--r--
2025-11-25 13:47
mode-scad.js
12.58
KB
-rw-r--r--
2025-11-25 13:47
mode-scala.js
37.8
KB
-rw-r--r--
2025-11-25 13:47
mode-scheme.js
6.83
KB
-rw-r--r--
2025-11-25 13:47
mode-scss.js
23.46
KB
-rw-r--r--
2025-11-25 13:47
mode-sh.js
14.17
KB
-rw-r--r--
2025-11-25 13:47
mode-sjs.js
36.65
KB
-rw-r--r--
2025-11-25 13:47
mode-smarty.js
103.22
KB
-rw-r--r--
2025-11-25 13:47
mode-snippets.js
6.62
KB
-rw-r--r--
2025-11-25 13:47
mode-soy_template.js
111.52
KB
-rw-r--r--
2025-11-25 13:47
mode-space.js
4.69
KB
-rw-r--r--
2025-11-25 13:47
mode-sparql.js
12.03
KB
-rw-r--r--
2025-11-25 13:47
mode-sql.js
3.03
KB
-rw-r--r--
2025-11-25 13:47
mode-sqlserver.js
22.76
KB
-rw-r--r--
2025-11-25 13:47
mode-stylus.js
20.5
KB
-rw-r--r--
2025-11-25 13:47
mode-svg.js
57.13
KB
-rw-r--r--
2025-11-25 13:47
mode-swift.js
12.91
KB
-rw-r--r--
2025-11-25 13:47
mode-swig.js
47.08
KB
-rw-r--r--
2025-11-25 13:47
mode-tcl.js
11.83
KB
-rw-r--r--
2025-11-25 13:47
mode-tex.js
4.82
KB
-rw-r--r--
2025-11-25 13:47
mode-text.js
1
B
-rw-r--r--
2025-11-25 13:47
mode-textile.js
3.87
KB
-rw-r--r--
2025-11-25 13:47
mode-toml.js
3.87
KB
-rw-r--r--
2025-11-25 13:47
mode-tsx.js
34.25
KB
-rw-r--r--
2025-11-25 13:47
mode-turtle.js
8.99
KB
-rw-r--r--
2025-11-25 13:47
mode-twig.js
103.92
KB
-rw-r--r--
2025-11-25 13:47
mode-typescript.js
33.82
KB
-rw-r--r--
2025-11-25 13:47
mode-vala.js
26.77
KB
-rw-r--r--
2025-11-25 13:47
mode-vbscript.js
7.25
KB
-rw-r--r--
2025-11-25 13:47
mode-velocity.js
107.39
KB
-rw-r--r--
2025-11-25 13:47
mode-verilog.js
3.86
KB
-rw-r--r--
2025-11-25 13:47
mode-vhdl.js
3.5
KB
-rw-r--r--
2025-11-25 13:47
mode-wollok.js
34.54
KB
-rw-r--r--
2025-11-25 13:47
mode-xml.js
22.97
KB
-rw-r--r--
2025-11-25 13:47
mode-xquery.js
317.31
KB
-rw-r--r--
2025-11-25 13:47
mode-yaml.js
8.79
KB
-rw-r--r--
2025-11-25 13:47
theme-ambiance.js
27.54
KB
-rw-r--r--
2025-11-25 13:47
theme-chaos.js
3.13
KB
-rw-r--r--
2025-11-25 13:47
theme-chrome.js
2.96
KB
-rw-r--r--
2025-11-25 13:47
theme-clouds.js
2.28
KB
-rw-r--r--
2025-11-25 13:47
theme-clouds_midnight.js
2.63
KB
-rw-r--r--
2025-11-25 13:47
theme-cobalt.js
2.58
KB
-rw-r--r--
2025-11-25 13:47
theme-crimson_editor.js
3.04
KB
-rw-r--r--
2025-11-25 13:47
theme-dawn.js
2.46
KB
-rw-r--r--
2025-11-25 13:47
theme-dreamweaver.js
3.41
KB
-rw-r--r--
2025-11-25 13:47
theme-eclipse.js
2.33
KB
-rw-r--r--
2025-11-25 13:47
theme-github.js
2.4
KB
-rw-r--r--
2025-11-25 13:47
theme-gob.js
2.61
KB
-rw-r--r--
2025-11-25 13:47
theme-gruvbox.js
1.85
KB
-rw-r--r--
2025-11-25 13:47
theme-idle_fingers.js
2.45
KB
-rw-r--r--
2025-11-25 13:47
theme-iplastic.js
6.63
KB
-rw-r--r--
2025-11-25 13:47
theme-katzenmilch.js
3.35
KB
-rw-r--r--
2025-11-25 13:47
theme-kr_theme.js
2.51
KB
-rw-r--r--
2025-11-25 13:47
theme-kuroir.js
2.19
KB
-rw-r--r--
2025-11-25 13:47
theme-merbivore.js
2.43
KB
-rw-r--r--
2025-11-25 13:47
theme-merbivore_soft.js
2.64
KB
-rw-r--r--
2025-11-25 13:47
theme-mono_industrial.js
3
KB
-rw-r--r--
2025-11-25 13:47
theme-monokai.js
2.59
KB
-rw-r--r--
2025-11-25 13:47
theme-pastel_on_dark.js
2.85
KB
-rw-r--r--
2025-11-25 13:47
theme-solarized_dark.js
2.49
KB
-rw-r--r--
2025-11-25 13:47
theme-solarized_light.js
2.55
KB
-rw-r--r--
2025-11-25 13:47
theme-sqlserver.js
3.16
KB
-rw-r--r--
2025-11-25 13:47
theme-terminal.js
3.13
KB
-rw-r--r--
2025-11-25 13:47
theme-textmate.js
2.84
KB
-rw-r--r--
2025-11-25 13:47
theme-tomorrow.js
2.77
KB
-rw-r--r--
2025-11-25 13:47
theme-tomorrow_night.js
3.03
KB
-rw-r--r--
2025-11-25 13:47
theme-tomorrow_night_blue.js
3.23
KB
-rw-r--r--
2025-11-25 13:47
theme-tomorrow_night_bright.js
3.71
KB
-rw-r--r--
2025-11-25 13:47
theme-tomorrow_night_eighties.js
3.42
KB
-rw-r--r--
2025-11-25 13:47
theme-twilight.js
2.72
KB
-rw-r--r--
2025-11-25 13:47
theme-vibrant_ink.js
2.4
KB
-rw-r--r--
2025-11-25 13:47
theme-xcode.js
2.11
KB
-rw-r--r--
2025-11-25 13:47
worker-coffee.js
220.38
KB
-rw-r--r--
2025-11-25 13:47
worker-css.js
290.28
KB
-rw-r--r--
2025-11-25 13:47
worker-html.js
330.32
KB
-rw-r--r--
2025-11-25 13:47
worker-javascript.js
337.14
KB
-rw-r--r--
2025-11-25 13:47
worker-json.js
71.04
KB
-rw-r--r--
2025-11-25 13:47
worker-lua.js
103.33
KB
-rw-r--r--
2025-11-25 13:47
worker-php.js
147.68
KB
-rw-r--r--
2025-11-25 13:47
worker-xml.js
110.19
KB
-rw-r--r--
2025-11-25 13:47
worker-xquery.js
3.36
MB
-rw-r--r--
2025-11-25 13:47
Save
Rename
ace.define("ace/mode/elixir_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 ElixirHighlightRules = function() { this.$rules = { start: [ { token: [ 'meta.module.elixir', 'keyword.control.module.elixir', 'meta.module.elixir', 'entity.name.type.module.elixir' ], regex: '^(\\s*)(defmodule)(\\s+)((?:[A-Z]\\w*\\s*\\.\\s*)*[A-Z]\\w*)' }, { token: 'comment.documentation.heredoc', regex: '@(?:module|type)?doc (?:~[a-z])?"""', push: [ { token: 'comment.documentation.heredoc', regex: '\\s*"""', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'comment.documentation.heredoc' } ], comment: '@doc with heredocs is treated as documentation' }, { token: 'comment.documentation.heredoc', regex: '@(?:module|type)?doc ~[A-Z]"""', push: [ { token: 'comment.documentation.heredoc', regex: '\\s*"""', next: 'pop' }, { defaultToken: 'comment.documentation.heredoc' } ], comment: '@doc with heredocs is treated as documentation' }, { token: 'comment.documentation.heredoc', regex: '@(?:module|type)?doc (?:~[a-z])?\'\'\'', push: [ { token: 'comment.documentation.heredoc', regex: '\\s*\'\'\'', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'comment.documentation.heredoc' } ], comment: '@doc with heredocs is treated as documentation' }, { token: 'comment.documentation.heredoc', regex: '@(?:module|type)?doc ~[A-Z]\'\'\'', push: [ { token: 'comment.documentation.heredoc', regex: '\\s*\'\'\'', next: 'pop' }, { defaultToken: 'comment.documentation.heredoc' } ], comment: '@doc with heredocs is treated as documentation' }, { token: 'comment.documentation.false', regex: '@(?:module|type)?doc false', comment: '@doc false is treated as documentation' }, { token: 'comment.documentation.string', regex: '@(?:module|type)?doc "', push: [ { token: 'comment.documentation.string', regex: '"', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'comment.documentation.string' } ], comment: '@doc with string is treated as documentation' }, { token: 'keyword.control.elixir', regex: '\\b(?:do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\b(?![?!])', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '(?<!\\.)\\b(do|end|case|bc|lc|for|if|cond|unless|try|receive|fn|defmodule|defp?|defprotocol|defimpl|defrecord|defstruct|defmacrop?|defdelegate|defcallback|defmacrocallback|defexception|defoverridable|exit|after|rescue|catch|else|raise|throw|import|require|alias|use|quote|unquote|super)\\b(?![?!])' }, { token: 'keyword.operator.elixir', regex: '\\b(?:and|not|or|when|xor|in|inlist|inbits)\\b', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '(?<!\\.)\\b(and|not|or|when|xor|in|inlist|inbits)\\b', comment: ' as above, just doesn\'t need a \'end\' and does a logic operation' }, { token: 'constant.language.elixir', regex: '\\b(?:nil|true|false)\\b(?![?!])' }, { token: 'variable.language.elixir', regex: '\\b__(?:CALLER|ENV|MODULE|DIR)__\\b(?![?!])' }, { token: [ 'punctuation.definition.variable.elixir', 'variable.other.readwrite.module.elixir' ], regex: '(@)([a-zA-Z_]\\w*)' }, { token: [ 'punctuation.definition.variable.elixir', 'variable.other.anonymous.elixir' ], regex: '(&)(\\d*)' }, { token: 'variable.other.constant.elixir', regex: '\\b[A-Z]\\w*\\b' }, { token: 'constant.numeric.elixir', regex: '\\b(?:0x[\\da-fA-F](?:_?[\\da-fA-F])*|\\d(?:_?\\d)*(?:\\.(?![^[:space:][:digit:]])(?:_?\\d)*)?(?:[eE][-+]?\\d(?:_?\\d)*)?|0b[01]+|0o[0-7]+)\\b', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '\\b(0x\\h(?>_?\\h)*|\\d(?>_?\\d)*(\\.(?![^[:space:][:digit:]])(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?|0b[01]+|0o[0-7]+)\\b' }, { token: 'punctuation.definition.constant.elixir', regex: ':\'', push: [ { token: 'punctuation.definition.constant.elixir', regex: '\'', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'constant.other.symbol.single-quoted.elixir' } ] }, { token: 'punctuation.definition.constant.elixir', regex: ':"', push: [ { token: 'punctuation.definition.constant.elixir', regex: '"', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'constant.other.symbol.double-quoted.elixir' } ] }, { token: 'punctuation.definition.string.begin.elixir', regex: '(?:\'\'\')', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '(?>\'\'\')', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '^\\s*\'\'\'', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'support.function.variable.quoted.single.heredoc.elixir' } ], comment: 'Single-quoted heredocs' }, { token: 'punctuation.definition.string.begin.elixir', regex: '\'', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\'', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'support.function.variable.quoted.single.elixir' } ], comment: 'single quoted string (allows for interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '(?:""")', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '(?>""")', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '^\\s*"""', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'string.quoted.double.heredoc.elixir' } ], comment: 'Double-quoted heredocs' }, { token: 'punctuation.definition.string.begin.elixir', regex: '"', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '"', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'string.quoted.double.elixir' } ], comment: 'double quoted string (allows for interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[a-z](?:""")', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '~[a-z](?>""")', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '^\\s*"""', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'string.quoted.double.heredoc.elixir' } ], comment: 'Double-quoted heredocs sigils' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[a-z]\\{', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\\}[a-z]*', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'string.interpolated.elixir' } ], comment: 'sigil (allow for interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[a-z]\\[', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\\][a-z]*', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'string.interpolated.elixir' } ], comment: 'sigil (allow for interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[a-z]\\<', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\\>[a-z]*', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'string.interpolated.elixir' } ], comment: 'sigil (allow for interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[a-z]\\(', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\\)[a-z]*', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { defaultToken: 'string.interpolated.elixir' } ], comment: 'sigil (allow for interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[a-z][^\\w]', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '[^\\w][a-z]*', next: 'pop' }, { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { include: '#escaped_char' }, { defaultToken: 'string.interpolated.elixir' } ], comment: 'sigil (allow for interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[A-Z](?:""")', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '~[A-Z](?>""")', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '^\\s*"""', next: 'pop' }, { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], comment: 'Double-quoted heredocs sigils' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[A-Z]\\{', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\\}[a-z]*', next: 'pop' }, { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], comment: 'sigil (without interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[A-Z]\\[', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\\][a-z]*', next: 'pop' }, { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], comment: 'sigil (without interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[A-Z]\\<', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\\>[a-z]*', next: 'pop' }, { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], comment: 'sigil (without interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[A-Z]\\(', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '\\)[a-z]*', next: 'pop' }, { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], comment: 'sigil (without interpolation)' }, { token: 'punctuation.definition.string.begin.elixir', regex: '~[A-Z][^\\w]', push: [ { token: 'punctuation.definition.string.end.elixir', regex: '[^\\w][a-z]*', next: 'pop' }, { defaultToken: 'string.quoted.other.literal.upper.elixir' } ], comment: 'sigil (without interpolation)' }, { token: ['punctuation.definition.constant.elixir', 'constant.other.symbol.elixir'], regex: '(:)([a-zA-Z_][\\w@]*(?:[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(?:\\^\\^)?)', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '(?<!:)(:)(?>[a-zA-Z_][\\w@]*(?>[?!]|=(?![>=]))?|\\<\\>|===?|!==?|<<>>|<<<|>>>|~~~|::|<\\-|\\|>|=>|~|~=|=|/|\\\\\\\\|\\*\\*?|\\.\\.?\\.?|>=?|<=?|&&?&?|\\+\\+?|\\-\\-?|\\|\\|?\\|?|\\!|@|\\%?\\{\\}|%|\\[\\]|\\^(\\^\\^)?)', comment: 'symbols' }, { token: 'punctuation.definition.constant.elixir', regex: '(?:[a-zA-Z_][\\w@]*(?:[?!])?):(?!:)', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '(?>[a-zA-Z_][\\w@]*(?>[?!])?)(:)(?!:)', comment: 'symbols' }, { token: [ 'punctuation.definition.comment.elixir', 'comment.line.number-sign.elixir' ], regex: '(#)(.*)' }, { token: 'constant.numeric.elixir', regex: '\\?(?:\\\\(?:x[\\da-fA-F]{1,2}(?![\\da-fA-F])\\b|[^xMC])|[^\\s\\\\])', TODO: 'FIXME: regexp doesn\'t have js equivalent', originalRegex: '(?<!\\w)\\?(\\\\(x\\h{1,2}(?!\\h)\\b|[^xMC])|[^\\s\\\\])', comment: '\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (3rd alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t' }, { token: 'keyword.operator.assignment.augmented.elixir', regex: '\\+=|\\-=|\\|\\|=|~=|&&=' }, { token: 'keyword.operator.comparison.elixir', regex: '===?|!==?|<=?|>=?' }, { token: 'keyword.operator.bitwise.elixir', regex: '\\|{3}|&{3}|\\^{3}|<{3}|>{3}|~{3}' }, { token: 'keyword.operator.logical.elixir', regex: '!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b', originalRegex: '(?<=[ \\t])!+|\\bnot\\b|&&|\\band\\b|\\|\\||\\bor\\b|\\bxor\\b' }, { token: 'keyword.operator.arithmetic.elixir', regex: '\\*|\\+|\\-|/' }, { token: 'keyword.operator.other.elixir', regex: '\\||\\+\\+|\\-\\-|\\*\\*|\\\\\\\\|\\<\\-|\\<\\>|\\<\\<|\\>\\>|\\:\\:|\\.\\.|\\|>|~|=>' }, { token: 'keyword.operator.assignment.elixir', regex: '=' }, { token: 'punctuation.separator.other.elixir', regex: ':' }, { token: 'punctuation.separator.statement.elixir', regex: '\\;' }, { token: 'punctuation.separator.object.elixir', regex: ',' }, { token: 'punctuation.separator.method.elixir', regex: '\\.' }, { token: 'punctuation.section.scope.elixir', regex: '\\{|\\}' }, { token: 'punctuation.section.array.elixir', regex: '\\[|\\]' }, { token: 'punctuation.section.function.elixir', regex: '\\(|\\)' } ], '#escaped_char': [ { token: 'constant.character.escape.elixir', regex: '\\\\(?:x[\\da-fA-F]{1,2}|.)' } ], '#interpolated_elixir': [ { token: [ 'source.elixir.embedded.source', 'source.elixir.embedded.source.empty' ], regex: '(#\\{)(\\})' }, { todo: { token: 'punctuation.section.embedded.elixir', regex: '#\\{', push: [ { token: 'punctuation.section.embedded.elixir', regex: '\\}', next: 'pop' }, { include: '#nest_curly_and_self' }, { include: '$self' }, { defaultToken: 'source.elixir.embedded.source' } ] } } ], '#nest_curly_and_self': [ { token: 'punctuation.section.scope.elixir', regex: '\\{', push: [ { token: 'punctuation.section.scope.elixir', regex: '\\}', next: 'pop' }, { include: '#nest_curly_and_self' } ] }, { include: '$self' } ], '#regex_sub': [ { include: '#interpolated_elixir' }, { include: '#escaped_char' }, { token: [ 'punctuation.definition.arbitrary-repitition.elixir', 'string.regexp.arbitrary-repitition.elixir', 'string.regexp.arbitrary-repitition.elixir', 'punctuation.definition.arbitrary-repitition.elixir' ], regex: '(\\{)(\\d+)((?:,\\d+)?)(\\})' }, { token: 'punctuation.definition.character-class.elixir', regex: '\\[(?:\\^?\\])?', push: [ { token: 'punctuation.definition.character-class.elixir', regex: '\\]', next: 'pop' }, { include: '#escaped_char' }, { defaultToken: 'string.regexp.character-class.elixir' } ] }, { token: 'punctuation.definition.group.elixir', regex: '\\(', push: [ { token: 'punctuation.definition.group.elixir', regex: '\\)', next: 'pop' }, { include: '#regex_sub' }, { defaultToken: 'string.regexp.group.elixir' } ] }, { token: [ 'punctuation.definition.comment.elixir', 'comment.line.number-sign.elixir' ], regex: '(?:^|\\s)(#)(\\s[[a-zA-Z0-9,. \\t?!-][^\\x00-\\x7F]]*$)', originalRegex: '(?<=^|\\s)(#)\\s[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$', comment: 'We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.' } ] } this.normalizeRules(); }; ElixirHighlightRules.metaData = { comment: 'Textmate bundle for Elixir Programming Language.', fileTypes: [ 'ex', 'exs' ], firstLineMatch: '^#!/.*\\belixir', foldingStartMarker: '(after|else|catch|rescue|\\-\\>|\\{|\\[|do)\\s*$', foldingStopMarker: '^\\s*((\\}|\\]|after|else|catch|rescue)\\s*$|end\\b)', keyEquivalent: '^~E', name: 'Elixir', scopeName: 'source.elixir' } oop.inherits(ElixirHighlightRules, TextHighlightRules); exports.ElixirHighlightRules = ElixirHighlightRules; }); ace.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); }); ace.define("ace/mode/elixir",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/elixir_highlight_rules","ace/mode/folding/coffee"], function(require, exports, module) { "use strict"; var oop = require("../lib/oop"); var TextMode = require("./text").Mode; var ElixirHighlightRules = require("./elixir_highlight_rules").ElixirHighlightRules; var FoldMode = require("./folding/coffee").FoldMode; var Mode = function() { this.HighlightRules = ElixirHighlightRules; this.foldingRules = new FoldMode(); this.$behaviour = this.$defaultBehaviour; }; oop.inherits(Mode, TextMode); (function() { this.lineCommentStart = "#"; this.$id = "ace/mode/elixir" }).call(Mode.prototype); exports.Mode = Mode; });