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 /
webedi.bdcloud.fr /
includes /
ace /
src /
Delete
Unzip
Name
Size
Permission
Date
Action
snippets
[ DIR ]
drwxr-xr-x
2025-11-08 11:17
ace.js
717.99
KB
-rw-r--r--
2020-05-12 15:31
ext-beautify.js
11.79
KB
-rw-r--r--
2020-04-18 15:05
ext-code_lens.js
7.49
KB
-rw-r--r--
2020-05-12 15:31
ext-elastic_tabstops_lite.js
8.74
KB
-rw-r--r--
2020-04-18 15:05
ext-emmet.js
47.29
KB
-rw-r--r--
2020-05-12 15:31
ext-error_marker.js
336
B
-rw-r--r--
2020-04-18 15:05
ext-keybinding_menu.js
6.06
KB
-rw-r--r--
2020-05-12 15:31
ext-language_tools.js
74.47
KB
-rw-r--r--
2020-05-12 15:31
ext-linking.js
1.95
KB
-rw-r--r--
2020-04-18 15:05
ext-modelist.js
7.1
KB
-rw-r--r--
2020-05-12 15:31
ext-options.js
23.92
KB
-rw-r--r--
2020-05-12 15:31
ext-prompt.js
94.39
KB
-rw-r--r--
2020-05-12 15:31
ext-rtl.js
4.44
KB
-rw-r--r--
2020-04-18 15:05
ext-searchbox.js
16.74
KB
-rw-r--r--
2020-04-18 15:05
ext-settings_menu.js
24.74
KB
-rw-r--r--
2020-05-12 15:31
ext-spellcheck.js
2.46
KB
-rw-r--r--
2020-05-12 15:31
ext-split.js
6.39
KB
-rw-r--r--
2020-04-18 15:05
ext-static_highlight.js
6.87
KB
-rw-r--r--
2020-04-18 15:05
ext-statusbar.js
1.87
KB
-rw-r--r--
2020-04-18 15:05
ext-textarea.js
16.11
KB
-rw-r--r--
2020-04-18 15:05
ext-themelist.js
2.63
KB
-rw-r--r--
2020-04-18 15:05
ext-whitespace.js
6.44
KB
-rw-r--r--
2020-04-18 15:05
keybinding-emacs.js
39.72
KB
-rw-r--r--
2020-05-12 15:31
keybinding-sublime.js
11.12
KB
-rw-r--r--
2020-05-12 15:31
keybinding-vim.js
214.18
KB
-rw-r--r--
2020-05-12 15:31
keybinding-vscode.js
8.07
KB
-rw-r--r--
2020-05-12 15:31
mode-abap.js
9.17
KB
-rw-r--r--
2020-04-18 15:05
mode-abc.js
9.17
KB
-rw-r--r--
2020-04-18 15:05
mode-actionscript.js
24.39
KB
-rw-r--r--
2020-04-18 15:05
mode-ada.js
4.2
KB
-rw-r--r--
2020-04-18 15:05
mode-apache_conf.js
18.94
KB
-rw-r--r--
2020-04-18 15:05
mode-apex.js
15.28
KB
-rw-r--r--
2020-04-18 15:05
mode-applescript.js
9.67
KB
-rw-r--r--
2020-04-18 15:05
mode-aql.js
4.6
KB
-rw-r--r--
2020-04-18 15:05
mode-asciidoc.js
13.79
KB
-rw-r--r--
2020-04-18 15:05
mode-asl.js
15.9
KB
-rw-r--r--
2020-04-18 15:05
mode-assembly_x86.js
11.76
KB
-rw-r--r--
2020-04-18 15:05
mode-autohotkey.js
66.03
KB
-rw-r--r--
2020-04-18 15:05
mode-batchfile.js
8.37
KB
-rw-r--r--
2020-04-18 15:05
mode-bro.js
11.09
KB
-rw-r--r--
2020-04-18 15:05
mode-c9search.js
9.72
KB
-rw-r--r--
2020-04-18 15:05
mode-c_cpp.js
18.81
KB
-rw-r--r--
2020-04-18 15:05
mode-cirru.js
6.15
KB
-rw-r--r--
2020-04-18 15:05
mode-clojure.js
12.77
KB
-rw-r--r--
2020-04-18 15:05
mode-cobol.js
3.6
KB
-rw-r--r--
2020-04-18 15:05
mode-coffee.js
14.34
KB
-rw-r--r--
2020-04-18 15:05
mode-coldfusion.js
102.71
KB
-rw-r--r--
2020-04-18 15:05
mode-crystal.js
23.55
KB
-rw-r--r--
2020-04-18 15:05
mode-csharp.js
16.41
KB
-rw-r--r--
2020-04-18 15:05
mode-csound_document.js
120.57
KB
-rw-r--r--
2020-05-12 15:31
mode-csound_orchestra.js
73.25
KB
-rw-r--r--
2020-05-12 15:31
mode-csound_score.js
14.02
KB
-rw-r--r--
2020-04-18 15:05
mode-csp.js
2.22
KB
-rw-r--r--
2020-04-18 15:05
mode-css.js
31.06
KB
-rw-r--r--
2020-04-18 15:05
mode-curly.js
100.79
KB
-rw-r--r--
2020-04-18 15:05
mode-d.js
17.42
KB
-rw-r--r--
2020-04-18 15:05
mode-dart.js
24.72
KB
-rw-r--r--
2020-04-18 15:05
mode-diff.js
4.64
KB
-rw-r--r--
2020-04-18 15:05
mode-django.js
101.6
KB
-rw-r--r--
2020-04-18 15:05
mode-dockerfile.js
16.11
KB
-rw-r--r--
2020-04-18 15:05
mode-dot.js
13.82
KB
-rw-r--r--
2020-04-18 15:05
mode-drools.js
18.68
KB
-rw-r--r--
2020-04-18 15:05
mode-edifact.js
5.31
KB
-rw-r--r--
2020-04-18 15:05
mode-eiffel.js
5.15
KB
-rw-r--r--
2020-04-18 15:05
mode-ejs.js
118.45
KB
-rw-r--r--
2020-04-18 15:05
mode-elixir.js
23.07
KB
-rw-r--r--
2020-04-18 15:05
mode-elm.js
9.47
KB
-rw-r--r--
2020-04-18 15:05
mode-erlang.js
45.63
KB
-rw-r--r--
2020-04-18 15:05
mode-forth.js
11.3
KB
-rw-r--r--
2020-04-18 15:05
mode-fortran.js
15.04
KB
-rw-r--r--
2020-04-18 15:05
mode-fsharp.js
10.39
KB
-rw-r--r--
2020-04-18 15:05
mode-fsl.js
8.53
KB
-rw-r--r--
2020-04-18 15:05
mode-ftl.js
50.14
KB
-rw-r--r--
2020-04-18 15:05
mode-gcode.js
3.09
KB
-rw-r--r--
2020-04-18 15:05
mode-gherkin.js
4.87
KB
-rw-r--r--
2020-04-18 15:05
mode-gitignore.js
1.77
KB
-rw-r--r--
2020-04-18 15:05
mode-glsl.js
21.86
KB
-rw-r--r--
2020-04-18 15:05
mode-gobstones.js
43.09
KB
-rw-r--r--
2020-04-18 15:05
mode-golang.js
13.82
KB
-rw-r--r--
2020-04-18 15:05
mode-graphqlschema.js
6.71
KB
-rw-r--r--
2020-04-18 15:05
mode-groovy.js
38.02
KB
-rw-r--r--
2020-04-18 15:05
mode-haml.js
63.97
KB
-rw-r--r--
2020-04-18 15:05
mode-handlebars.js
102.35
KB
-rw-r--r--
2020-04-18 15:05
mode-haskell.js
17.05
KB
-rw-r--r--
2020-04-18 15:05
mode-haskell_cabal.js
4.47
KB
-rw-r--r--
2020-04-18 15:05
mode-haxe.js
12.27
KB
-rw-r--r--
2020-04-18 15:05
mode-hjson.js
11.09
KB
-rw-r--r--
2020-04-18 15:05
mode-html.js
99.24
KB
-rw-r--r--
2020-04-18 15:05
mode-html_elixir.js
124.58
KB
-rw-r--r--
2020-04-18 15:05
mode-html_ruby.js
119.19
KB
-rw-r--r--
2020-04-18 15:05
mode-ini.js
4.88
KB
-rw-r--r--
2020-04-18 15:05
mode-io.js
9.05
KB
-rw-r--r--
2020-04-18 15:05
mode-jack.js
11.02
KB
-rw-r--r--
2020-04-18 15:05
mode-jade.js
79.34
KB
-rw-r--r--
2020-05-12 15:31
mode-java.js
39.7
KB
-rw-r--r--
2020-04-18 15:05
mode-javascript.js
31.03
KB
-rw-r--r--
2020-04-18 15:05
mode-json.js
10.24
KB
-rw-r--r--
2020-04-18 15:05
mode-json5.js
11.28
KB
-rw-r--r--
2020-05-12 15:31
mode-jsoniq.js
320.49
KB
-rw-r--r--
2020-04-18 15:05
mode-jsp.js
58.42
KB
-rw-r--r--
2020-04-18 15:05
mode-jssm.js
10.55
KB
-rw-r--r--
2020-04-18 15:05
mode-jsx.js
13.36
KB
-rw-r--r--
2020-04-18 15:05
mode-julia.js
11.93
KB
-rw-r--r--
2020-04-18 15:05
mode-kotlin.js
24.32
KB
-rw-r--r--
2020-04-18 15:05
mode-latex.js
9.49
KB
-rw-r--r--
2020-04-18 15:05
mode-less.js
35.21
KB
-rw-r--r--
2020-04-18 15:05
mode-liquid.js
107.71
KB
-rw-r--r--
2020-04-18 15:05
mode-lisp.js
3.47
KB
-rw-r--r--
2020-04-18 15:05
mode-livescript.js
8.34
KB
-rw-r--r--
2020-04-18 15:05
mode-logiql.js
10.65
KB
-rw-r--r--
2020-04-18 15:05
mode-logtalk.js
15.65
KB
-rw-r--r--
2020-04-18 15:05
mode-lsl.js
31.14
KB
-rw-r--r--
2020-04-18 15:05
mode-lua.js
14.98
KB
-rw-r--r--
2020-04-18 15:05
mode-luapage.js
115.82
KB
-rw-r--r--
2020-04-18 15:05
mode-lucene.js
4.78
KB
-rw-r--r--
2020-04-18 15:05
mode-makefile.js
13.12
KB
-rw-r--r--
2020-04-18 15:05
mode-markdown.js
121.58
KB
-rw-r--r--
2020-05-12 15:31
mode-mask.js
70.27
KB
-rw-r--r--
2020-05-12 15:31
mode-matlab.js
22.9
KB
-rw-r--r--
2020-04-18 15:05
mode-maze.js
9.17
KB
-rw-r--r--
2020-04-18 15:05
mode-mel.js
28.47
KB
-rw-r--r--
2020-04-18 15:05
mode-mixal.js
5.15
KB
-rw-r--r--
2020-04-18 15:05
mode-mushcode.js
12.08
KB
-rw-r--r--
2020-04-18 15:05
mode-mysql.js
8.79
KB
-rw-r--r--
2020-04-18 15:05
mode-nginx.js
20.03
KB
-rw-r--r--
2020-04-18 15:05
mode-nim.js
12.13
KB
-rw-r--r--
2020-04-18 15:05
mode-nix.js
23.54
KB
-rw-r--r--
2020-04-18 15:05
mode-nsis.js
14.76
KB
-rw-r--r--
2020-05-12 15:31
mode-nunjucks.js
105.16
KB
-rw-r--r--
2020-05-12 15:31
mode-objectivec.js
64.25
KB
-rw-r--r--
2020-04-18 15:05
mode-ocaml.js
21.26
KB
-rw-r--r--
2020-04-18 15:05
mode-pascal.js
7.92
KB
-rw-r--r--
2020-04-18 15:05
mode-perl.js
13.04
KB
-rw-r--r--
2020-04-18 15:05
mode-perl6.js
24.53
KB
-rw-r--r--
2020-04-18 15:05
mode-pgsql.js
84.98
KB
-rw-r--r--
2020-04-18 15:05
mode-php.js
580.88
KB
-rw-r--r--
2020-04-18 15:05
mode-php_laravel_blade.js
588.06
KB
-rw-r--r--
2020-04-18 15:05
mode-pig.js
10.91
KB
-rw-r--r--
2020-04-18 15:05
mode-plain_text.js
1.06
KB
-rw-r--r--
2020-04-18 15:05
mode-powershell.js
38.23
KB
-rw-r--r--
2020-04-18 15:05
mode-praat.js
17.59
KB
-rw-r--r--
2020-04-18 15:05
mode-prolog.js
14.07
KB
-rw-r--r--
2020-04-18 15:05
mode-properties.js
2.33
KB
-rw-r--r--
2020-04-18 15:05
mode-protobuf.js
21.98
KB
-rw-r--r--
2020-04-18 15:05
mode-puppet.js
12.8
KB
-rw-r--r--
2020-04-18 15:05
mode-python.js
15.13
KB
-rw-r--r--
2020-04-18 15:05
mode-r.js
9.91
KB
-rw-r--r--
2020-04-18 15:05
mode-razor.js
111.4
KB
-rw-r--r--
2020-04-18 15:05
mode-rdoc.js
8.06
KB
-rw-r--r--
2020-04-18 15:05
mode-red.js
19.83
KB
-rw-r--r--
2020-04-18 15:05
mode-redshift.js
13.99
KB
-rw-r--r--
2020-04-18 15:05
mode-rhtml.js
108.53
KB
-rw-r--r--
2020-04-18 15:05
mode-rst.js
5.83
KB
-rw-r--r--
2020-04-18 15:05
mode-ruby.js
18.75
KB
-rw-r--r--
2020-04-18 15:05
mode-rust.js
11.13
KB
-rw-r--r--
2020-05-12 15:31
mode-sass.js
23.81
KB
-rw-r--r--
2020-04-18 15:05
mode-scad.js
12.89
KB
-rw-r--r--
2020-04-18 15:05
mode-scala.js
38.13
KB
-rw-r--r--
2020-04-18 15:05
mode-scheme.js
7.14
KB
-rw-r--r--
2020-04-18 15:05
mode-scss.js
36.93
KB
-rw-r--r--
2020-04-18 15:05
mode-sh.js
14.49
KB
-rw-r--r--
2020-04-18 15:05
mode-sjs.js
36.98
KB
-rw-r--r--
2020-04-18 15:05
mode-slim.js
174.98
KB
-rw-r--r--
2020-05-12 15:31
mode-smarty.js
104.2
KB
-rw-r--r--
2020-04-18 15:05
mode-snippets.js
7.04
KB
-rw-r--r--
2020-04-18 15:05
mode-soy_template.js
112.5
KB
-rw-r--r--
2020-04-18 15:05
mode-space.js
4.99
KB
-rw-r--r--
2020-04-18 15:05
mode-sparql.js
12.35
KB
-rw-r--r--
2020-04-18 15:05
mode-sql.js
3.34
KB
-rw-r--r--
2020-04-18 15:05
mode-sqlserver.js
23.07
KB
-rw-r--r--
2020-04-18 15:05
mode-stylus.js
20.92
KB
-rw-r--r--
2020-04-18 15:05
mode-svg.js
57.59
KB
-rw-r--r--
2020-04-18 15:05
mode-swift.js
13.22
KB
-rw-r--r--
2020-04-18 15:05
mode-tcl.js
12.23
KB
-rw-r--r--
2020-04-18 15:05
mode-terraform.js
12.93
KB
-rw-r--r--
2020-04-18 15:05
mode-tex.js
5.13
KB
-rw-r--r--
2020-04-18 15:05
mode-text.js
329
B
-rw-r--r--
2020-04-18 15:05
mode-textile.js
4.18
KB
-rw-r--r--
2020-04-18 15:05
mode-toml.js
4.17
KB
-rw-r--r--
2020-04-18 15:05
mode-tsx.js
34.09
KB
-rw-r--r--
2020-04-18 15:05
mode-turtle.js
9.31
KB
-rw-r--r--
2020-04-18 15:05
mode-twig.js
104.9
KB
-rw-r--r--
2020-04-18 15:05
mode-typescript.js
33.67
KB
-rw-r--r--
2020-04-18 15:05
mode-vala.js
27.08
KB
-rw-r--r--
2020-04-18 15:05
mode-vbscript.js
7.57
KB
-rw-r--r--
2020-04-18 15:05
mode-velocity.js
108.36
KB
-rw-r--r--
2020-04-18 15:05
mode-verilog.js
4.45
KB
-rw-r--r--
2020-04-18 15:05
mode-vhdl.js
3.78
KB
-rw-r--r--
2020-05-12 15:31
mode-visualforce.js
103.47
KB
-rw-r--r--
2020-04-18 15:05
mode-wollok.js
34.9
KB
-rw-r--r--
2020-04-18 15:05
mode-xml.js
23.42
KB
-rw-r--r--
2020-04-18 15:05
mode-xquery.js
317.76
KB
-rw-r--r--
2020-04-18 15:05
mode-yaml.js
10.35
KB
-rw-r--r--
2020-04-18 15:05
mode-zeek.js
16.65
KB
-rw-r--r--
2020-04-18 15:05
theme-ambiance.js
27.53
KB
-rw-r--r--
2020-04-18 15:05
theme-chaos.js
3.45
KB
-rw-r--r--
2020-04-18 15:05
theme-chrome.js
3.28
KB
-rw-r--r--
2020-04-18 15:05
theme-clouds.js
2.6
KB
-rw-r--r--
2020-04-18 15:05
theme-clouds_midnight.js
2.95
KB
-rw-r--r--
2020-04-18 15:05
theme-cobalt.js
2.9
KB
-rw-r--r--
2020-04-18 15:05
theme-crimson_editor.js
3.37
KB
-rw-r--r--
2020-04-18 15:05
theme-dawn.js
2.78
KB
-rw-r--r--
2020-04-18 15:05
theme-dracula.js
3.16
KB
-rw-r--r--
2020-04-18 15:05
theme-dreamweaver.js
3.73
KB
-rw-r--r--
2020-04-18 15:05
theme-eclipse.js
2.65
KB
-rw-r--r--
2020-04-18 15:05
theme-github.js
2.72
KB
-rw-r--r--
2020-04-18 15:05
theme-gob.js
2.92
KB
-rw-r--r--
2020-04-18 15:05
theme-gruvbox.js
2.17
KB
-rw-r--r--
2020-04-18 15:05
theme-idle_fingers.js
2.77
KB
-rw-r--r--
2020-04-18 15:05
theme-iplastic.js
6.94
KB
-rw-r--r--
2020-04-18 15:05
theme-katzenmilch.js
3.68
KB
-rw-r--r--
2020-04-18 15:05
theme-kr_theme.js
2.83
KB
-rw-r--r--
2020-04-18 15:05
theme-kuroir.js
2.51
KB
-rw-r--r--
2020-04-18 15:05
theme-merbivore.js
2.75
KB
-rw-r--r--
2020-04-18 15:05
theme-merbivore_soft.js
2.97
KB
-rw-r--r--
2020-04-18 15:05
theme-mono_industrial.js
3.32
KB
-rw-r--r--
2020-04-18 15:05
theme-monokai.js
2.91
KB
-rw-r--r--
2020-04-18 15:05
theme-pastel_on_dark.js
3.17
KB
-rw-r--r--
2020-04-18 15:05
theme-solarized_dark.js
2.82
KB
-rw-r--r--
2020-04-18 15:05
theme-solarized_light.js
2.87
KB
-rw-r--r--
2020-04-18 15:05
theme-sqlserver.js
3.48
KB
-rw-r--r--
2020-04-18 15:05
theme-terminal.js
3.45
KB
-rw-r--r--
2020-04-18 15:05
theme-textmate.js
3.2
KB
-rw-r--r--
2020-04-18 15:05
theme-tomorrow.js
3.09
KB
-rw-r--r--
2020-04-18 15:05
theme-tomorrow_night.js
3.35
KB
-rw-r--r--
2020-04-18 15:05
theme-tomorrow_night_blue.js
3.56
KB
-rw-r--r--
2020-04-18 15:05
theme-tomorrow_night_bright.js
4.05
KB
-rw-r--r--
2020-04-18 15:05
theme-tomorrow_night_eighties.js
3.75
KB
-rw-r--r--
2020-04-18 15:05
theme-twilight.js
3.04
KB
-rw-r--r--
2020-04-18 15:05
theme-vibrant_ink.js
2.72
KB
-rw-r--r--
2020-04-18 15:05
theme-xcode.js
2.43
KB
-rw-r--r--
2020-04-18 15:05
worker-coffee.js
362.1
KB
-rw-r--r--
2020-05-12 15:31
worker-css.js
290.27
KB
-rw-r--r--
2020-05-12 15:31
worker-html.js
329.85
KB
-rw-r--r--
2020-05-12 15:31
worker-javascript.js
336.68
KB
-rw-r--r--
2020-05-12 15:31
worker-json.js
70.67
KB
-rw-r--r--
2020-05-12 15:31
worker-lua.js
102.94
KB
-rw-r--r--
2020-05-12 15:31
worker-php.js
147.24
KB
-rw-r--r--
2020-05-12 15:31
worker-xml.js
109.68
KB
-rw-r--r--
2020-05-12 15:31
worker-xquery.js
3.36
MB
-rw-r--r--
2020-05-12 15:31
Save
Rename
define("ace/ext/elastic_tabstops_lite",["require","exports","module","ace/editor","ace/config"], function(require, exports, module) { "use strict"; var ElasticTabstopsLite = function(editor) { this.$editor = editor; var self = this; var changedRows = []; var recordChanges = false; this.onAfterExec = function() { recordChanges = false; self.processRows(changedRows); changedRows = []; }; this.onExec = function() { recordChanges = true; }; this.onChange = function(delta) { if (recordChanges) { if (changedRows.indexOf(delta.start.row) == -1) changedRows.push(delta.start.row); if (delta.end.row != delta.start.row) changedRows.push(delta.end.row); } }; }; (function() { this.processRows = function(rows) { this.$inChange = true; var checkedRows = []; for (var r = 0, rowCount = rows.length; r < rowCount; r++) { var row = rows[r]; if (checkedRows.indexOf(row) > -1) continue; var cellWidthObj = this.$findCellWidthsForBlock(row); var cellWidths = this.$setBlockCellWidthsToMax(cellWidthObj.cellWidths); var rowIndex = cellWidthObj.firstRow; for (var w = 0, l = cellWidths.length; w < l; w++) { var widths = cellWidths[w]; checkedRows.push(rowIndex); this.$adjustRow(rowIndex, widths); rowIndex++; } } this.$inChange = false; }; this.$findCellWidthsForBlock = function(row) { var cellWidths = [], widths; var rowIter = row; while (rowIter >= 0) { widths = this.$cellWidthsForRow(rowIter); if (widths.length == 0) break; cellWidths.unshift(widths); rowIter--; } var firstRow = rowIter + 1; rowIter = row; var numRows = this.$editor.session.getLength(); while (rowIter < numRows - 1) { rowIter++; widths = this.$cellWidthsForRow(rowIter); if (widths.length == 0) break; cellWidths.push(widths); } return { cellWidths: cellWidths, firstRow: firstRow }; }; this.$cellWidthsForRow = function(row) { var selectionColumns = this.$selectionColumnsForRow(row); var tabs = [-1].concat(this.$tabsForRow(row)); var widths = tabs.map(function(el) { return 0; } ).slice(1); var line = this.$editor.session.getLine(row); for (var i = 0, len = tabs.length - 1; i < len; i++) { var leftEdge = tabs[i]+1; var rightEdge = tabs[i+1]; var rightmostSelection = this.$rightmostSelectionInCell(selectionColumns, rightEdge); var cell = line.substring(leftEdge, rightEdge); widths[i] = Math.max(cell.replace(/\s+$/g,'').length, rightmostSelection - leftEdge); } return widths; }; this.$selectionColumnsForRow = function(row) { var selections = [], cursor = this.$editor.getCursorPosition(); if (this.$editor.session.getSelection().isEmpty()) { if (row == cursor.row) selections.push(cursor.column); } return selections; }; this.$setBlockCellWidthsToMax = function(cellWidths) { var startingNewBlock = true, blockStartRow, blockEndRow, maxWidth; var columnInfo = this.$izip_longest(cellWidths); for (var c = 0, l = columnInfo.length; c < l; c++) { var column = columnInfo[c]; if (!column.push) { console.error(column); continue; } column.push(NaN); for (var r = 0, s = column.length; r < s; r++) { var width = column[r]; if (startingNewBlock) { blockStartRow = r; maxWidth = 0; startingNewBlock = false; } if (isNaN(width)) { blockEndRow = r; for (var j = blockStartRow; j < blockEndRow; j++) { cellWidths[j][c] = maxWidth; } startingNewBlock = true; } maxWidth = Math.max(maxWidth, width); } } return cellWidths; }; this.$rightmostSelectionInCell = function(selectionColumns, cellRightEdge) { var rightmost = 0; if (selectionColumns.length) { var lengths = []; for (var s = 0, length = selectionColumns.length; s < length; s++) { if (selectionColumns[s] <= cellRightEdge) lengths.push(s); else lengths.push(0); } rightmost = Math.max.apply(Math, lengths); } return rightmost; }; this.$tabsForRow = function(row) { var rowTabs = [], line = this.$editor.session.getLine(row), re = /\t/g, match; while ((match = re.exec(line)) != null) { rowTabs.push(match.index); } return rowTabs; }; this.$adjustRow = function(row, widths) { var rowTabs = this.$tabsForRow(row); if (rowTabs.length == 0) return; var bias = 0, location = -1; var expandedSet = this.$izip(widths, rowTabs); for (var i = 0, l = expandedSet.length; i < l; i++) { var w = expandedSet[i][0], it = expandedSet[i][1]; location += 1 + w; it += bias; var difference = location - it; if (difference == 0) continue; var partialLine = this.$editor.session.getLine(row).substr(0, it ); var strippedPartialLine = partialLine.replace(/\s*$/g, ""); var ispaces = partialLine.length - strippedPartialLine.length; if (difference > 0) { this.$editor.session.getDocument().insertInLine({row: row, column: it + 1}, Array(difference + 1).join(" ") + "\t"); this.$editor.session.getDocument().removeInLine(row, it, it + 1); bias += difference; } if (difference < 0 && ispaces >= -difference) { this.$editor.session.getDocument().removeInLine(row, it + difference, it); bias += difference; } } }; this.$izip_longest = function(iterables) { if (!iterables[0]) return []; var longest = iterables[0].length; var iterablesLength = iterables.length; for (var i = 1; i < iterablesLength; i++) { var iLength = iterables[i].length; if (iLength > longest) longest = iLength; } var expandedSet = []; for (var l = 0; l < longest; l++) { var set = []; for (var i = 0; i < iterablesLength; i++) { if (iterables[i][l] === "") set.push(NaN); else set.push(iterables[i][l]); } expandedSet.push(set); } return expandedSet; }; this.$izip = function(widths, tabs) { var size = widths.length >= tabs.length ? tabs.length : widths.length; var expandedSet = []; for (var i = 0; i < size; i++) { var set = [ widths[i], tabs[i] ]; expandedSet.push(set); } return expandedSet; }; }).call(ElasticTabstopsLite.prototype); exports.ElasticTabstopsLite = ElasticTabstopsLite; var Editor = require("../editor").Editor; require("../config").defineOptions(Editor.prototype, "editor", { useElasticTabstops: { set: function(val) { if (val) { if (!this.elasticTabstops) this.elasticTabstops = new ElasticTabstopsLite(this); this.commands.on("afterExec", this.elasticTabstops.onAfterExec); this.commands.on("exec", this.elasticTabstops.onExec); this.on("change", this.elasticTabstops.onChange); } else if (this.elasticTabstops) { this.commands.removeListener("afterExec", this.elasticTabstops.onAfterExec); this.commands.removeListener("exec", this.elasticTabstops.onExec); this.removeListener("change", this.elasticTabstops.onChange); } } } }); }); (function() { window.require(["ace/ext/elastic_tabstops_lite"], function(m) { if (typeof module == "object" && typeof exports == "object" && module) { module.exports = m; } }); })();