Showing preview only (9,941K chars total). Download the full file or copy to clipboard to get everything.
Repository: ajaxorg/ace
Branch: master
Commit: 7ce8db9fd6d5
Files: 1431
Total size: 9.3 MB
Directory structure:
gitextract_tcf14d4c/
├── .github/
│ ├── ISSUE_TEMPLATE/
│ │ ├── add-to-website.yml
│ │ ├── bug-report.yml
│ │ ├── config.yml
│ │ ├── documentation.yml
│ │ └── feature-request.yml
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/
│ ├── backwards-compatibility-commenter.yml
│ ├── close-stale-issues.yml
│ ├── issue-reprioritization.yml
│ ├── link-comment.yml
│ ├── nodejs.yml
│ └── publish.yml
├── .gitignore
├── CHANGELOG.md
├── CNAME
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── Makefile
├── Makefile.dryice.js
├── Readme.md
├── _config.yml
├── ace-internal.d.ts
├── ace-modes.d.ts
├── ace.d.ts
├── amplify.yml
├── build_support/
│ ├── editor.html
│ └── mini_require.js
├── demo/
│ ├── autocompletion.html
│ ├── autoresize.html
│ ├── code_lens.html
│ ├── csp.html
│ ├── diff/
│ │ ├── examples/
│ │ │ ├── editor.16.js
│ │ │ ├── editor.17.js
│ │ │ └── editor.40.js
│ │ └── index.html
│ ├── emmet.html
│ ├── i18n.html
│ ├── inline_autocompletion.html
│ ├── keyboard_shortcuts.html
│ ├── kitchen-sink/
│ │ ├── demo.js
│ │ ├── dev_util.js
│ │ ├── doclist.js
│ │ ├── docs/
│ │ │ ├── Dockerfile
│ │ │ ├── Makefile
│ │ │ ├── abap.abap
│ │ │ ├── abc.abc
│ │ │ ├── actionscript.as
│ │ │ ├── ada.ada
│ │ │ ├── alda.alda
│ │ │ ├── apex.apex
│ │ │ ├── aql.aql
│ │ │ ├── asciidoc.asciidoc
│ │ │ ├── asl.dsl
│ │ │ ├── assembly_arm32.s
│ │ │ ├── assembly_x86.asm
│ │ │ ├── astro.astro
│ │ │ ├── autohotkey.ahk
│ │ │ ├── basic.bas
│ │ │ ├── batchfile.bat
│ │ │ ├── bibtex.bib
│ │ │ ├── c9search.c9search_results
│ │ │ ├── c_cpp.cpp
│ │ │ ├── cirru.cirru
│ │ │ ├── clojure.clj
│ │ │ ├── clue.clue
│ │ │ ├── cobol.CBL
│ │ │ ├── coffee.coffee
│ │ │ ├── coldfusion.cfm
│ │ │ ├── crystal.cr
│ │ │ ├── csharp.cs
│ │ │ ├── csound_document.csd
│ │ │ ├── csound_orchestra.orc
│ │ │ ├── csound_score.sco
│ │ │ ├── css.css
│ │ │ ├── csv.csv
│ │ │ ├── curly.curly
│ │ │ ├── cuttlefish.conf
│ │ │ ├── d.d
│ │ │ ├── dart.dart
│ │ │ ├── diff.diff
│ │ │ ├── django.djt
│ │ │ ├── dot.dot
│ │ │ ├── drools.drl
│ │ │ ├── edifact.edi
│ │ │ ├── eiffel.e
│ │ │ ├── ejs.ejs
│ │ │ ├── elixir.ex
│ │ │ ├── elm.elm
│ │ │ ├── erlang.erl
│ │ │ ├── flix.flix
│ │ │ ├── forth.frt
│ │ │ ├── fortran.f
│ │ │ ├── fsharp.fsi
│ │ │ ├── fsl.fsl
│ │ │ ├── ftl.ftl
│ │ │ ├── gcode.gcode
│ │ │ ├── gherkin.feature
│ │ │ ├── glsl.glsl
│ │ │ ├── gobstones.gbs
│ │ │ ├── golang.go
│ │ │ ├── graphqlschema.gql
│ │ │ ├── groovy.groovy
│ │ │ ├── haml.haml
│ │ │ ├── handlebars.hbs
│ │ │ ├── haskell.hs
│ │ │ ├── haskell_cabal.cabal
│ │ │ ├── haxe.hx
│ │ │ ├── hjson.hjson
│ │ │ ├── htaccess
│ │ │ ├── html.html
│ │ │ ├── html_elixir.eex
│ │ │ ├── html_ruby.erb
│ │ │ ├── ini.ini
│ │ │ ├── io.io
│ │ │ ├── ion.ion
│ │ │ ├── jack.jack
│ │ │ ├── jade.jade
│ │ │ ├── java.java
│ │ │ ├── javascript.js
│ │ │ ├── jexl.jexl
│ │ │ ├── json.json
│ │ │ ├── json5.json5
│ │ │ ├── jsoniq.jq
│ │ │ ├── jsp.jsp
│ │ │ ├── jssm.jssm
│ │ │ ├── jsx.jsx
│ │ │ ├── julia.jl
│ │ │ ├── kotlin.kt
│ │ │ ├── latex.tex
│ │ │ ├── latte.latte
│ │ │ ├── less.less
│ │ │ ├── liquid.liquid
│ │ │ ├── lisp.lisp
│ │ │ ├── livescript.ls
│ │ │ ├── logiql.logic
│ │ │ ├── logtalk.lgt
│ │ │ ├── lsl.lsl
│ │ │ ├── lua.lua
│ │ │ ├── luapage.lp
│ │ │ ├── lucene.lucene
│ │ │ ├── markdown.md
│ │ │ ├── mask.mask
│ │ │ ├── matlab.matlab
│ │ │ ├── maze.mz
│ │ │ ├── mediawiki.wiki
│ │ │ ├── mel.mel
│ │ │ ├── mips.s
│ │ │ ├── mixal.mixal
│ │ │ ├── mushcode.mc
│ │ │ ├── mysql.mysql
│ │ │ ├── nasal.nas
│ │ │ ├── nginx.nginx
│ │ │ ├── nim.nim
│ │ │ ├── nix.nix
│ │ │ ├── nsis.nsi
│ │ │ ├── nunjucks.nunjucks
│ │ │ ├── objectivec.m
│ │ │ ├── ocaml.ml
│ │ │ ├── odin.odin
│ │ │ ├── partiql.partiql
│ │ │ ├── pascal.pas
│ │ │ ├── perl.pl
│ │ │ ├── pgsql.pgsql
│ │ │ ├── php.php
│ │ │ ├── php_laravel_blade.blade.php
│ │ │ ├── pig.pig
│ │ │ ├── plaintext.txt
│ │ │ ├── plsql.plsql
│ │ │ ├── powershell.ps1
│ │ │ ├── praat.praat
│ │ │ ├── prisma.prisma
│ │ │ ├── prolog.plg
│ │ │ ├── properties.properties
│ │ │ ├── protobuf.proto
│ │ │ ├── prql.prql
│ │ │ ├── puppet.epp
│ │ │ ├── python.py
│ │ │ ├── qml.qml
│ │ │ ├── r.r
│ │ │ ├── raku.raku
│ │ │ ├── razor.cshtml
│ │ │ ├── rdoc.Rd
│ │ │ ├── red.red
│ │ │ ├── rhtml.Rhtml
│ │ │ ├── robot.robot
│ │ │ ├── rst.rst
│ │ │ ├── ruby.rb
│ │ │ ├── rust.rs
│ │ │ ├── sac.sac
│ │ │ ├── sass.sass
│ │ │ ├── scad.scad
│ │ │ ├── scala.scala
│ │ │ ├── scheme.scm
│ │ │ ├── scrypt.scrypt
│ │ │ ├── scss.scss
│ │ │ ├── sh.sh
│ │ │ ├── sjs.sjs
│ │ │ ├── slim.slim
│ │ │ ├── smarty.smarty
│ │ │ ├── smithy.smithy
│ │ │ ├── snippets.snippets
│ │ │ ├── soy_template.soy
│ │ │ ├── space.space
│ │ │ ├── sparql.rq
│ │ │ ├── sql.sql
│ │ │ ├── sqlserver.sqlserver
│ │ │ ├── stylus.styl
│ │ │ ├── swift.swift
│ │ │ ├── tcl.tcl
│ │ │ ├── terraform.tf
│ │ │ ├── tex.tex
│ │ │ ├── text.txt
│ │ │ ├── textile.textile
│ │ │ ├── toml.toml
│ │ │ ├── tsv.tsv
│ │ │ ├── tsx.tsx
│ │ │ ├── turtle.ttl
│ │ │ ├── twig.twig
│ │ │ ├── typescript.ts
│ │ │ ├── vala.vala
│ │ │ ├── vbscript.vbs
│ │ │ ├── velocity.vm
│ │ │ ├── verilog.v
│ │ │ ├── vhdl.vhd
│ │ │ ├── visualforce.vfp
│ │ │ ├── vue.vue
│ │ │ ├── wollok.wlk
│ │ │ ├── xml.xml
│ │ │ ├── xquery.xq
│ │ │ ├── yaml.yaml
│ │ │ ├── zeek.zeek
│ │ │ └── zig.zig
│ │ ├── file_drop.js
│ │ ├── inline_editor.js
│ │ ├── layout.js
│ │ ├── require.js
│ │ ├── styles.css
│ │ ├── token_tooltip.js
│ │ └── util.js
│ ├── modelist.html
│ ├── r.js/
│ │ ├── build.js
│ │ └── editor.html
│ ├── requirejs+build.html
│ ├── scrollable-page.html
│ ├── settings_menu.html
│ ├── shadow-dom.html
│ ├── show_own_source.js
│ ├── static-highlighter/
│ │ ├── client.html
│ │ └── server.js
│ ├── static-highlighter.html
│ ├── statusbar.html
│ ├── test_ace_builds/
│ │ ├── index.ts
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── test_package/
│ │ ├── index.ts
│ │ ├── package.json
│ │ └── tsconfig.json
│ ├── toolbar.html
│ ├── transform.html
│ ├── webpack/
│ │ ├── demo.js
│ │ ├── demo.ts
│ │ ├── index.html
│ │ ├── package.json
│ │ └── webpack.config.js
│ └── xml.xml
├── doc/
│ ├── README.md
│ ├── additionalObjs.json
│ ├── build.js
│ ├── index.md
│ ├── package.json
│ ├── site/
│ │ ├── css/
│ │ │ └── font-awesome.css
│ │ ├── iphone.css
│ │ ├── js/
│ │ │ ├── ga.js
│ │ │ └── main.js
│ │ └── style.css
│ └── template/
│ ├── jade/
│ │ ├── common_layout.jade
│ │ ├── layout.jade
│ │ └── lib.jade
│ └── resources/
│ ├── csses/
│ │ └── ace_api.css
│ └── javascripts/
│ ├── bbq.js
│ ├── bootstrap.js
│ ├── clicker.js
│ ├── disqus-ext.js
│ ├── jquery-scrollspy.js
│ ├── jquery.collapse.js
│ ├── jquery.cookie.js
│ ├── plugins.js
│ ├── prettify-extension.js
│ ├── prettify.js
│ └── ux.js
├── experiments/
│ ├── animate_folding.html
│ ├── basic_animation.html
│ ├── capture.html
│ ├── cut_copy.html
│ ├── debug_mem_leak.html
│ ├── dom.html
│ ├── triple_click.html
│ ├── worker.html
│ └── worker.js
├── index.html
├── kitchen-sink.html
├── package.json
├── src/
│ ├── ace.js
│ ├── ace_test.js
│ ├── anchor.js
│ ├── anchor_test.js
│ ├── apply_delta.js
│ ├── autocomplete/
│ │ ├── inline.js
│ │ ├── inline_screenreader.js
│ │ ├── inline_test.js
│ │ ├── popup.js
│ │ ├── popup_test.js
│ │ ├── text_completer.js
│ │ └── util.js
│ ├── autocomplete.js
│ ├── autocomplete_test.js
│ ├── background_tokenizer.js
│ ├── background_tokenizer_test.js
│ ├── bidihandler.js
│ ├── clipboard.js
│ ├── commands/
│ │ ├── command_manager.js
│ │ ├── command_manager_test.js
│ │ ├── default_commands.js
│ │ ├── incremental_search_commands.js
│ │ ├── multi_select_commands.js
│ │ └── occur_commands.js
│ ├── config.js
│ ├── config_test.js
│ ├── css/
│ │ └── editor-css.js
│ ├── document.js
│ ├── document_test.js
│ ├── edit_session/
│ │ ├── bracket_match.js
│ │ ├── fold.js
│ │ ├── fold_line.js
│ │ └── folding.js
│ ├── edit_session.js
│ ├── edit_session_test.js
│ ├── editor.js
│ ├── editor_change_document_test.js
│ ├── editor_commands_test.js
│ ├── editor_highlight_selected_word_test.js
│ ├── editor_navigation_test.js
│ ├── editor_options_test.js
│ ├── editor_text_edit_test.js
│ ├── ext/
│ │ ├── beautify.js
│ │ ├── beautify_test.js
│ │ ├── code_lens.js
│ │ ├── code_lens_test.js
│ │ ├── command_bar.js
│ │ ├── command_bar_test.js
│ │ ├── diff/
│ │ │ ├── base_diff_view.js
│ │ │ ├── diff_test.js
│ │ │ ├── gutter_decorator.js
│ │ │ ├── inline_diff_view.js
│ │ │ ├── providers/
│ │ │ │ └── default.js
│ │ │ ├── scroll_diff_decorator.js
│ │ │ ├── split_diff_view.js
│ │ │ └── styles-css.js
│ │ ├── diff.js
│ │ ├── diff_test.js
│ │ ├── elastic_tabstops_lite.js
│ │ ├── emmet.js
│ │ ├── emmet_test.js
│ │ ├── error_marker.js
│ │ ├── error_marker_test.js
│ │ ├── hardwrap.js
│ │ ├── hardwrap_test.js
│ │ ├── inline_autocomplete.js
│ │ ├── inline_autocomplete_test.js
│ │ ├── keybinding_menu.js
│ │ ├── language_tools.js
│ │ ├── linking.js
│ │ ├── menu_tools/
│ │ │ ├── get_editor_keyboard_shortcuts.js
│ │ │ ├── overlay_page.js
│ │ │ └── settings_menu.css.js
│ │ ├── modelist.js
│ │ ├── options.js
│ │ ├── prompt.js
│ │ ├── rtl.js
│ │ ├── searchbox-css.js
│ │ ├── searchbox.js
│ │ ├── settings_menu.js
│ │ ├── simple_tokenizer.js
│ │ ├── simple_tokenizer_test.js
│ │ ├── spellcheck.js
│ │ ├── split.js
│ │ ├── static-css.js
│ │ ├── static_highlight.js
│ │ ├── static_highlight_test.js
│ │ ├── statusbar.js
│ │ ├── textarea.js
│ │ ├── themelist.js
│ │ ├── whitespace.js
│ │ ├── whitespace_test.js
│ │ ├── whitespaces_in_selection.js
│ │ └── whitespaces_in_selection_test.js
│ ├── incremental_search.js
│ ├── incremental_search_test.js
│ ├── keyboard/
│ │ ├── emacs.js
│ │ ├── emacs_test.js
│ │ ├── gutter_handler.js
│ │ ├── gutter_handler_test.js
│ │ ├── hash_handler.js
│ │ ├── keybinding.js
│ │ ├── keybinding_test.js
│ │ ├── sublime.js
│ │ ├── sublime_test.js
│ │ ├── textarea.js
│ │ ├── textinput.js
│ │ ├── textinput_test.js
│ │ ├── vim.js
│ │ ├── vim_ace_test.js
│ │ ├── vim_test.js
│ │ └── vscode.js
│ ├── layer/
│ │ ├── cursor.js
│ │ ├── decorators.js
│ │ ├── font_metrics.js
│ │ ├── gutter.js
│ │ ├── gutter_test.js
│ │ ├── lines.js
│ │ ├── marker.js
│ │ ├── text.js
│ │ ├── text_markers.js
│ │ ├── text_markers_test.js
│ │ ├── text_test.js
│ │ └── text_util.js
│ ├── lib/
│ │ ├── app_config.js
│ │ ├── bidiutil.js
│ │ ├── deep_copy.js
│ │ ├── default_english_messages.js
│ │ ├── dom.js
│ │ ├── es6-shim.js
│ │ ├── event.js
│ │ ├── event_emitter.js
│ │ ├── event_emitter_test.js
│ │ ├── fixoldbrowsers.js
│ │ ├── keys.js
│ │ ├── lang.js
│ │ ├── net.js
│ │ ├── oop.js
│ │ ├── report_error.js
│ │ ├── scroll.js
│ │ └── useragent.js
│ ├── line_widgets.js
│ ├── marker_group.js
│ ├── marker_group_test.js
│ ├── mode/
│ │ ├── _test/
│ │ │ ├── Readme.md
│ │ │ ├── highlight_rules_test.js
│ │ │ ├── text_alda.txt
│ │ │ ├── text_asciidoc.txt
│ │ │ ├── text_coffee.txt
│ │ │ ├── text_coldfusion.txt
│ │ │ ├── text_curly.txt
│ │ │ ├── text_ejs.txt
│ │ │ ├── text_gobstones.txt
│ │ │ ├── text_html.txt
│ │ │ ├── text_javascript.txt
│ │ │ ├── text_livescript.txt
│ │ │ ├── text_lucene.txt
│ │ │ ├── text_markdown.txt
│ │ │ ├── text_php.txt
│ │ │ ├── text_prisma.txt
│ │ │ ├── text_razor.txt
│ │ │ ├── text_ruby.txt
│ │ │ ├── text_rust.txt
│ │ │ ├── text_verilog.txt
│ │ │ ├── text_wollok.txt
│ │ │ ├── text_xml.txt
│ │ │ ├── text_yaml.txt
│ │ │ ├── tokens_abap.json
│ │ │ ├── tokens_abc.json
│ │ │ ├── tokens_actionscript.json
│ │ │ ├── tokens_ada.json
│ │ │ ├── tokens_alda.json
│ │ │ ├── tokens_apex.json
│ │ │ ├── tokens_aql.json
│ │ │ ├── tokens_asciidoc.json
│ │ │ ├── tokens_asl.json
│ │ │ ├── tokens_assembly_x86.json
│ │ │ ├── tokens_autohotkey.json
│ │ │ ├── tokens_basic.json
│ │ │ ├── tokens_batchfile.json
│ │ │ ├── tokens_bibtex.json
│ │ │ ├── tokens_c9search.json
│ │ │ ├── tokens_c_cpp.json
│ │ │ ├── tokens_cirru.json
│ │ │ ├── tokens_clojure.json
│ │ │ ├── tokens_cobol.json
│ │ │ ├── tokens_coffee.json
│ │ │ ├── tokens_coldfusion.json
│ │ │ ├── tokens_crystal.json
│ │ │ ├── tokens_csharp.json
│ │ │ ├── tokens_csound_document.json
│ │ │ ├── tokens_csound_orchestra.json
│ │ │ ├── tokens_csound_score.json
│ │ │ ├── tokens_csp.json
│ │ │ ├── tokens_css.json
│ │ │ ├── tokens_csv.json
│ │ │ ├── tokens_curly.json
│ │ │ ├── tokens_d.json
│ │ │ ├── tokens_dart.json
│ │ │ ├── tokens_diff.json
│ │ │ ├── tokens_django.json
│ │ │ ├── tokens_dot.json
│ │ │ ├── tokens_drools.json
│ │ │ ├── tokens_edifact.json
│ │ │ ├── tokens_eiffel.json
│ │ │ ├── tokens_ejs.json
│ │ │ ├── tokens_elixir.json
│ │ │ ├── tokens_elm.json
│ │ │ ├── tokens_erlang.json
│ │ │ ├── tokens_flix.json
│ │ │ ├── tokens_forth.json
│ │ │ ├── tokens_fortran.json
│ │ │ ├── tokens_fsharp.json
│ │ │ ├── tokens_fsl.json
│ │ │ ├── tokens_ftl.json
│ │ │ ├── tokens_gcode.json
│ │ │ ├── tokens_gherkin.json
│ │ │ ├── tokens_gitignore.json
│ │ │ ├── tokens_glsl.json
│ │ │ ├── tokens_gobstones.json
│ │ │ ├── tokens_golang.json
│ │ │ ├── tokens_graphqlschema.json
│ │ │ ├── tokens_groovy.json
│ │ │ ├── tokens_haml.json
│ │ │ ├── tokens_handlebars.json
│ │ │ ├── tokens_haskell.json
│ │ │ ├── tokens_haskell_cabal.json
│ │ │ ├── tokens_haxe.json
│ │ │ ├── tokens_hjson.json
│ │ │ ├── tokens_html.json
│ │ │ ├── tokens_html_elixir.json
│ │ │ ├── tokens_html_ruby.json
│ │ │ ├── tokens_ini.json
│ │ │ ├── tokens_io.json
│ │ │ ├── tokens_ion.json
│ │ │ ├── tokens_jack.json
│ │ │ ├── tokens_jade.json
│ │ │ ├── tokens_java.json
│ │ │ ├── tokens_javascript.json
│ │ │ ├── tokens_jexl.json
│ │ │ ├── tokens_json.json
│ │ │ ├── tokens_json5.json
│ │ │ ├── tokens_jsp.json
│ │ │ ├── tokens_jssm.json
│ │ │ ├── tokens_jsx.json
│ │ │ ├── tokens_julia.json
│ │ │ ├── tokens_kotlin.json
│ │ │ ├── tokens_latex.json
│ │ │ ├── tokens_latte.json
│ │ │ ├── tokens_less.json
│ │ │ ├── tokens_liquid.json
│ │ │ ├── tokens_lisp.json
│ │ │ ├── tokens_livescript.json
│ │ │ ├── tokens_logiql.json
│ │ │ ├── tokens_logtalk.json
│ │ │ ├── tokens_lsl.json
│ │ │ ├── tokens_lua.json
│ │ │ ├── tokens_luapage.json
│ │ │ ├── tokens_lucene.json
│ │ │ ├── tokens_markdown.json
│ │ │ ├── tokens_mask.json
│ │ │ ├── tokens_matlab.json
│ │ │ ├── tokens_maze.json
│ │ │ ├── tokens_mediawiki.json
│ │ │ ├── tokens_mel.json
│ │ │ ├── tokens_mips.json
│ │ │ ├── tokens_mixal.json
│ │ │ ├── tokens_mushcode.json
│ │ │ ├── tokens_mysql.json
│ │ │ ├── tokens_nasal.json
│ │ │ ├── tokens_nginx.json
│ │ │ ├── tokens_nim.json
│ │ │ ├── tokens_nix.json
│ │ │ ├── tokens_nsis.json
│ │ │ ├── tokens_nunjucks.json
│ │ │ ├── tokens_objectivec.json
│ │ │ ├── tokens_ocaml.json
│ │ │ ├── tokens_odin.json
│ │ │ ├── tokens_partiql.json
│ │ │ ├── tokens_pascal.json
│ │ │ ├── tokens_perl.json
│ │ │ ├── tokens_pgsql.json
│ │ │ ├── tokens_php.json
│ │ │ ├── tokens_php_laravel_blade.json
│ │ │ ├── tokens_pig.json
│ │ │ ├── tokens_plsql.json
│ │ │ ├── tokens_powershell.json
│ │ │ ├── tokens_praat.json
│ │ │ ├── tokens_prisma.json
│ │ │ ├── tokens_prolog.json
│ │ │ ├── tokens_properties.json
│ │ │ ├── tokens_protobuf.json
│ │ │ ├── tokens_puppet.json
│ │ │ ├── tokens_python.json
│ │ │ ├── tokens_qml.json
│ │ │ ├── tokens_r.json
│ │ │ ├── tokens_raku.json
│ │ │ ├── tokens_razor.json
│ │ │ ├── tokens_rdoc.json
│ │ │ ├── tokens_red.json
│ │ │ ├── tokens_rhtml.json
│ │ │ ├── tokens_robot.json
│ │ │ ├── tokens_rst.json
│ │ │ ├── tokens_ruby.json
│ │ │ ├── tokens_rust.json
│ │ │ ├── tokens_sac.json
│ │ │ ├── tokens_sass.json
│ │ │ ├── tokens_scad.json
│ │ │ ├── tokens_scala.json
│ │ │ ├── tokens_scheme.json
│ │ │ ├── tokens_scrypt.json
│ │ │ ├── tokens_scss.json
│ │ │ ├── tokens_sh.json
│ │ │ ├── tokens_sjs.json
│ │ │ ├── tokens_slim.json
│ │ │ ├── tokens_smarty.json
│ │ │ ├── tokens_smithy.json
│ │ │ ├── tokens_snippets.json
│ │ │ ├── tokens_soy_template.json
│ │ │ ├── tokens_space.json
│ │ │ ├── tokens_sparql.json
│ │ │ ├── tokens_sql.json
│ │ │ ├── tokens_sqlserver.json
│ │ │ ├── tokens_stylus.json
│ │ │ ├── tokens_svg.json
│ │ │ ├── tokens_swift.json
│ │ │ ├── tokens_tcl.json
│ │ │ ├── tokens_terraform.json
│ │ │ ├── tokens_tex.json
│ │ │ ├── tokens_text.json
│ │ │ ├── tokens_textile.json
│ │ │ ├── tokens_toml.json
│ │ │ ├── tokens_tsv.json
│ │ │ ├── tokens_tsx.json
│ │ │ ├── tokens_turtle.json
│ │ │ ├── tokens_twig.json
│ │ │ ├── tokens_typescript.json
│ │ │ ├── tokens_vala.json
│ │ │ ├── tokens_vbscript.json
│ │ │ ├── tokens_velocity.json
│ │ │ ├── tokens_verilog.json
│ │ │ ├── tokens_vhdl.json
│ │ │ ├── tokens_visualforce.json
│ │ │ ├── tokens_vue.json
│ │ │ ├── tokens_wollok.json
│ │ │ ├── tokens_xml.json
│ │ │ ├── tokens_yaml.json
│ │ │ └── tokens_zeek.json
│ │ ├── abap.js
│ │ ├── abap_highlight_rules.js
│ │ ├── abc.js
│ │ ├── abc_highlight_rules.js
│ │ ├── actionscript.js
│ │ ├── actionscript_highlight_rules.js
│ │ ├── ada.js
│ │ ├── ada_highlight_rules.js
│ │ ├── ada_test.js
│ │ ├── alda.js
│ │ ├── alda_highlight_rules.js
│ │ ├── apache_conf.js
│ │ ├── apache_conf_highlight_rules.js
│ │ ├── apex.js
│ │ ├── apex_highlight_rules.js
│ │ ├── applescript.js
│ │ ├── applescript_highlight_rules.js
│ │ ├── aql.js
│ │ ├── aql_highlight_rules.js
│ │ ├── asciidoc.js
│ │ ├── asciidoc_highlight_rules.js
│ │ ├── asl.js
│ │ ├── asl_highlight_rules.js
│ │ ├── assembly_arm32.js
│ │ ├── assembly_arm32_highlight_rules.js
│ │ ├── assembly_x86.js
│ │ ├── assembly_x86_highlight_rules.js
│ │ ├── astro.js
│ │ ├── astro_highlight_rules.js
│ │ ├── autohotkey.js
│ │ ├── autohotkey_highlight_rules.js
│ │ ├── basic.js
│ │ ├── basic_highlight_rules.js
│ │ ├── batchfile.js
│ │ ├── batchfile_highlight_rules.js
│ │ ├── behaviour/
│ │ │ ├── behaviour_test.js
│ │ │ ├── css.js
│ │ │ ├── cstyle.js
│ │ │ ├── html.js
│ │ │ ├── javascript.js
│ │ │ ├── liquid.js
│ │ │ ├── xml.js
│ │ │ └── xquery.js
│ │ ├── behaviour.js
│ │ ├── bibtex.js
│ │ ├── bibtex_highlight_rules.js
│ │ ├── c9search.js
│ │ ├── c9search_highlight_rules.js
│ │ ├── c_cpp.js
│ │ ├── c_cpp_highlight_rules.js
│ │ ├── cirru.js
│ │ ├── cirru_highlight_rules.js
│ │ ├── clojure.js
│ │ ├── clojure_highlight_rules.js
│ │ ├── clue.js
│ │ ├── clue_highlight_rules.js
│ │ ├── cobol.js
│ │ ├── cobol_highlight_rules.js
│ │ ├── coffee.js
│ │ ├── coffee_highlight_rules.js
│ │ ├── coldfusion.js
│ │ ├── coldfusion_highlight_rules.js
│ │ ├── coldfusion_test.js
│ │ ├── crystal.js
│ │ ├── crystal_highlight_rules.js
│ │ ├── csharp.js
│ │ ├── csharp_highlight_rules.js
│ │ ├── csound_document.js
│ │ ├── csound_document_highlight_rules.js
│ │ ├── csound_orchestra.js
│ │ ├── csound_orchestra_highlight_rules.js
│ │ ├── csound_preprocessor_highlight_rules.js
│ │ ├── csound_score.js
│ │ ├── csound_score_highlight_rules.js
│ │ ├── csp.js
│ │ ├── csp_highlight_rules.js
│ │ ├── css.js
│ │ ├── css_completions.js
│ │ ├── css_highlight_rules.js
│ │ ├── css_test.js
│ │ ├── csv.js
│ │ ├── csv_highlight_rules.js
│ │ ├── curly.js
│ │ ├── curly_highlight_rules.js
│ │ ├── cuttlefish.js
│ │ ├── cuttlefish_highlight_rules.js
│ │ ├── d.js
│ │ ├── d_highlight_rules.js
│ │ ├── dart.js
│ │ ├── dart_highlight_rules.js
│ │ ├── diff.js
│ │ ├── diff_highlight_rules.js
│ │ ├── django.js
│ │ ├── doc_comment_highlight_rules.js
│ │ ├── dockerfile.js
│ │ ├── dockerfile_highlight_rules.js
│ │ ├── dot.js
│ │ ├── dot_highlight_rules.js
│ │ ├── drools.js
│ │ ├── drools_highlight_rules.js
│ │ ├── edifact.js
│ │ ├── edifact_highlight_rules.js
│ │ ├── eiffel.js
│ │ ├── eiffel_highlight_rules.js
│ │ ├── ejs.js
│ │ ├── elixir.js
│ │ ├── elixir_highlight_rules.js
│ │ ├── elm.js
│ │ ├── elm_highlight_rules.js
│ │ ├── erlang.js
│ │ ├── erlang_highlight_rules.js
│ │ ├── flix.js
│ │ ├── flix_highlight_rules.js
│ │ ├── folding/
│ │ │ ├── asciidoc.js
│ │ │ ├── basic.js
│ │ │ ├── basic_test.js
│ │ │ ├── c9search.js
│ │ │ ├── coffee.js
│ │ │ ├── coffee_test.js
│ │ │ ├── csharp.js
│ │ │ ├── cstyle.js
│ │ │ ├── cstyle_test.js
│ │ │ ├── diff.js
│ │ │ ├── drools.js
│ │ │ ├── drools_test.js
│ │ │ ├── fold_mode.js
│ │ │ ├── fold_mode_test.js
│ │ │ ├── haskell_cabal.js
│ │ │ ├── html.js
│ │ │ ├── html_test.js
│ │ │ ├── ini.js
│ │ │ ├── java.js
│ │ │ ├── javascript.js
│ │ │ ├── javascript_test.js
│ │ │ ├── latex.js
│ │ │ ├── latex_test.js
│ │ │ ├── lua.js
│ │ │ ├── lua_test.js
│ │ │ ├── markdown.js
│ │ │ ├── mixed.js
│ │ │ ├── nunjucks.js
│ │ │ ├── nunjucks_test.js
│ │ │ ├── php.js
│ │ │ ├── php_test.js
│ │ │ ├── pythonic.js
│ │ │ ├── pythonic_test.js
│ │ │ ├── ruby.js
│ │ │ ├── ruby_test.js
│ │ │ ├── sql.js
│ │ │ ├── sqlserver.js
│ │ │ ├── vbscript.js
│ │ │ ├── vbscript_test.js
│ │ │ ├── velocity.js
│ │ │ ├── xml.js
│ │ │ ├── xml_test.js
│ │ │ ├── yaml.js
│ │ │ └── yaml_test.js
│ │ ├── forth.js
│ │ ├── forth_highlight_rules.js
│ │ ├── fortran.js
│ │ ├── fortran_highlight_rules.js
│ │ ├── fsharp.js
│ │ ├── fsharp_highlight_rules.js
│ │ ├── fsl.js
│ │ ├── fsl_highlight_rules.js
│ │ ├── ftl.js
│ │ ├── ftl_highlight_rules.js
│ │ ├── gcode.js
│ │ ├── gcode_highlight_rules.js
│ │ ├── gherkin.js
│ │ ├── gherkin_highlight_rules.js
│ │ ├── gitignore.js
│ │ ├── gitignore_highlight_rules.js
│ │ ├── glsl.js
│ │ ├── glsl_highlight_rules.js
│ │ ├── gobstones.js
│ │ ├── gobstones_highlight_rules.js
│ │ ├── golang.js
│ │ ├── golang_highlight_rules.js
│ │ ├── graphqlschema.js
│ │ ├── graphqlschema_highlight_rules.js
│ │ ├── groovy.js
│ │ ├── groovy_highlight_rules.js
│ │ ├── haml.js
│ │ ├── haml_highlight_rules.js
│ │ ├── handlebars.js
│ │ ├── handlebars_highlight_rules.js
│ │ ├── haskell.js
│ │ ├── haskell_cabal.js
│ │ ├── haskell_cabal_highlight_rules.js
│ │ ├── haskell_highlight_rules.js
│ │ ├── haxe.js
│ │ ├── haxe_highlight_rules.js
│ │ ├── hjson.js
│ │ ├── hjson_highlight_rules.js
│ │ ├── html.js
│ │ ├── html_completions.js
│ │ ├── html_elixir.js
│ │ ├── html_elixir_highlight_rules.js
│ │ ├── html_highlight_rules.js
│ │ ├── html_ruby.js
│ │ ├── html_ruby_highlight_rules.js
│ │ ├── html_test.js
│ │ ├── ini.js
│ │ ├── ini_highlight_rules.js
│ │ ├── io.js
│ │ ├── io_highlight_rules.js
│ │ ├── ion.js
│ │ ├── ion_highlight_rules.js
│ │ ├── jack.js
│ │ ├── jack_highlight_rules.js
│ │ ├── jade.js
│ │ ├── jade_highlight_rules.js
│ │ ├── java.js
│ │ ├── java_highlight_rules.js
│ │ ├── javascript.js
│ │ ├── javascript_highlight_rules.js
│ │ ├── javascript_test.js
│ │ ├── jexl.js
│ │ ├── jexl_highlight_rules.js
│ │ ├── js_regex_highlight_rules.js
│ │ ├── jsdoc_comment_highlight_rules.js
│ │ ├── json.js
│ │ ├── json5.js
│ │ ├── json5_highlight_rules.js
│ │ ├── json_highlight_rules.js
│ │ ├── jsp.js
│ │ ├── jsp_highlight_rules.js
│ │ ├── jssm.js
│ │ ├── jssm_highlight_rules.js
│ │ ├── jsx.js
│ │ ├── jsx_highlight_rules.js
│ │ ├── julia.js
│ │ ├── julia_highlight_rules.js
│ │ ├── kotlin.js
│ │ ├── kotlin_highlight_rules.js
│ │ ├── latex.js
│ │ ├── latex_highlight_rules.js
│ │ ├── latte.js
│ │ ├── latte_highlight_rules.js
│ │ ├── less.js
│ │ ├── less_highlight_rules.js
│ │ ├── liquid.js
│ │ ├── liquid_highlight_rules.js
│ │ ├── lisp.js
│ │ ├── lisp_highlight_rules.js
│ │ ├── livescript.js
│ │ ├── logiql.js
│ │ ├── logiql_highlight_rules.js
│ │ ├── logiql_test.js
│ │ ├── logtalk.js
│ │ ├── logtalk_highlight_rules.js
│ │ ├── lsl.js
│ │ ├── lsl_highlight_rules.js
│ │ ├── lua.js
│ │ ├── lua_highlight_rules.js
│ │ ├── luapage.js
│ │ ├── luapage_highlight_rules.js
│ │ ├── lucene.js
│ │ ├── lucene_highlight_rules.js
│ │ ├── makefile.js
│ │ ├── makefile_highlight_rules.js
│ │ ├── markdown.js
│ │ ├── markdown_highlight_rules.js
│ │ ├── mask.js
│ │ ├── mask_highlight_rules.js
│ │ ├── matching_brace_outdent.js
│ │ ├── matching_parens_outdent.js
│ │ ├── matlab.js
│ │ ├── matlab_highlight_rules.js
│ │ ├── maze.js
│ │ ├── maze_highlight_rules.js
│ │ ├── mediawiki.js
│ │ ├── mediawiki_highlight_rules.js
│ │ ├── mel.js
│ │ ├── mel_highlight_rules.js
│ │ ├── mips.js
│ │ ├── mips_highlight_rules.js
│ │ ├── mixal.js
│ │ ├── mixal_highlight_rules.js
│ │ ├── mushcode.js
│ │ ├── mushcode_highlight_rules.js
│ │ ├── mysql.js
│ │ ├── mysql_highlight_rules.js
│ │ ├── nasal.js
│ │ ├── nasal_highlight_rules.js
│ │ ├── nginx.js
│ │ ├── nginx_highlight_rules.js
│ │ ├── nim.js
│ │ ├── nim_highlight_rules.js
│ │ ├── nix.js
│ │ ├── nix_highlight_rules.js
│ │ ├── nsis.js
│ │ ├── nsis_highlight_rules.js
│ │ ├── nunjucks.js
│ │ ├── nunjucks_highlight_rules.js
│ │ ├── objectivec.js
│ │ ├── objectivec_highlight_rules.js
│ │ ├── ocaml.js
│ │ ├── ocaml_highlight_rules.js
│ │ ├── odin.js
│ │ ├── odin_highlight_rules.js
│ │ ├── odin_test.js
│ │ ├── partiql.js
│ │ ├── partiql_highlight_rules.js
│ │ ├── pascal.js
│ │ ├── pascal_highlight_rules.js
│ │ ├── perl.js
│ │ ├── perl_highlight_rules.js
│ │ ├── pgsql.js
│ │ ├── pgsql_highlight_rules.js
│ │ ├── php.js
│ │ ├── php_completions.js
│ │ ├── php_highlight_rules.js
│ │ ├── php_laravel_blade.js
│ │ ├── php_laravel_blade_highlight_rules.js
│ │ ├── php_test.js
│ │ ├── pig.js
│ │ ├── pig_highlight_rules.js
│ │ ├── plain_text.js
│ │ ├── plain_text_test.js
│ │ ├── plsql.js
│ │ ├── plsql_highlight_rules.js
│ │ ├── powershell.js
│ │ ├── powershell_highlight_rules.js
│ │ ├── praat.js
│ │ ├── praat_highlight_rules.js
│ │ ├── prisma.js
│ │ ├── prisma_highlight_rules.js
│ │ ├── prolog.js
│ │ ├── prolog_highlight_rules.js
│ │ ├── properties.js
│ │ ├── properties_highlight_rules.js
│ │ ├── protobuf.js
│ │ ├── protobuf_highlight_rules.js
│ │ ├── prql.js
│ │ ├── prql_highlight_rules.js
│ │ ├── puppet.js
│ │ ├── puppet_highlight_rules.js
│ │ ├── python.js
│ │ ├── python_highlight_rules.js
│ │ ├── python_test.js
│ │ ├── qml.js
│ │ ├── qml_highlight_rules.js
│ │ ├── r.js
│ │ ├── r_highlight_rules.js
│ │ ├── raku.js
│ │ ├── raku_highlight_rules.js
│ │ ├── razor.js
│ │ ├── razor_completions.js
│ │ ├── razor_highlight_rules.js
│ │ ├── rdoc.js
│ │ ├── rdoc_highlight_rules.js
│ │ ├── red.js
│ │ ├── red_highlight_rules.js
│ │ ├── redshift.js
│ │ ├── redshift_highlight_rules.js
│ │ ├── rhtml.js
│ │ ├── rhtml_highlight_rules.js
│ │ ├── robot.js
│ │ ├── robot_highlight_rules.js
│ │ ├── rst.js
│ │ ├── rst_highlight_rules.js
│ │ ├── ruby.js
│ │ ├── ruby_highlight_rules.js
│ │ ├── ruby_test.js
│ │ ├── rust.js
│ │ ├── rust_highlight_rules.js
│ │ ├── sac.js
│ │ ├── sac_highlight_rules.js
│ │ ├── sass.js
│ │ ├── sass_highlight_rules.js
│ │ ├── scad.js
│ │ ├── scad_highlight_rules.js
│ │ ├── scala.js
│ │ ├── scala_highlight_rules.js
│ │ ├── scheme.js
│ │ ├── scheme_highlight_rules.js
│ │ ├── scrypt.js
│ │ ├── scrypt_highlight_rules.js
│ │ ├── scss.js
│ │ ├── scss_highlight_rules.js
│ │ ├── sh.js
│ │ ├── sh_highlight_rules.js
│ │ ├── sjs.js
│ │ ├── sjs_highlight_rules.js
│ │ ├── slim.js
│ │ ├── slim_highlight_rules.js
│ │ ├── smarty.js
│ │ ├── smarty_highlight_rules.js
│ │ ├── smithy.js
│ │ ├── smithy_highlight_rules.js
│ │ ├── snippets.js
│ │ ├── soy_template.js
│ │ ├── soy_template_highlight_rules.js
│ │ ├── space.js
│ │ ├── space_highlight_rules.js
│ │ ├── sparql.js
│ │ ├── sparql_highlight_rules.js
│ │ ├── sql.js
│ │ ├── sql_highlight_rules.js
│ │ ├── sqlserver.js
│ │ ├── sqlserver_highlight_rules.js
│ │ ├── stylus.js
│ │ ├── stylus_highlight_rules.js
│ │ ├── svg.js
│ │ ├── svg_highlight_rules.js
│ │ ├── swift.js
│ │ ├── swift_highlight_rules.js
│ │ ├── tcl.js
│ │ ├── tcl_highlight_rules.js
│ │ ├── terraform.js
│ │ ├── terraform_highlight_rules.js
│ │ ├── tex.js
│ │ ├── tex_highlight_rules.js
│ │ ├── text.js
│ │ ├── text_highlight_rules.js
│ │ ├── text_test.js
│ │ ├── textile.js
│ │ ├── textile_highlight_rules.js
│ │ ├── toml.js
│ │ ├── toml_highlight_rules.js
│ │ ├── tsv.js
│ │ ├── tsv_highlight_rules.js
│ │ ├── tsx.js
│ │ ├── tsx_highlight_rules.js
│ │ ├── turtle.js
│ │ ├── turtle_highlight_rules.js
│ │ ├── twig.js
│ │ ├── twig_highlight_rules.js
│ │ ├── typescript.js
│ │ ├── typescript_highlight_rules.js
│ │ ├── vala.js
│ │ ├── vala_highlight_rules.js
│ │ ├── vbscript.js
│ │ ├── vbscript_highlight_rules.js
│ │ ├── vbscript_test.js
│ │ ├── velocity.js
│ │ ├── velocity_highlight_rules.js
│ │ ├── verilog.js
│ │ ├── verilog_highlight_rules.js
│ │ ├── vhdl.js
│ │ ├── vhdl_highlight_rules.js
│ │ ├── visualforce.js
│ │ ├── visualforce_highlight_rules.js
│ │ ├── vue.js
│ │ ├── vue_highlight_rules.js
│ │ ├── wollok.js
│ │ ├── wollok_highlight_rules.js
│ │ ├── xml.js
│ │ ├── xml_highlight_rules.js
│ │ ├── xml_test.js
│ │ ├── yaml.js
│ │ ├── yaml_highlight_rules.js
│ │ ├── zeek.js
│ │ ├── zeek_highlight_rules.js
│ │ ├── zig.js
│ │ └── zig_highlight_rules.js
│ ├── mouse/
│ │ ├── default_gutter_handler.js
│ │ ├── default_gutter_handler_test.js
│ │ ├── default_handlers.js
│ │ ├── dragdrop_handler.js
│ │ ├── fold_handler.js
│ │ ├── mouse_event.js
│ │ ├── mouse_handler.js
│ │ ├── mouse_handler_test.js
│ │ ├── multi_select_handler.js
│ │ └── touch_handler.js
│ ├── multi_select.js
│ ├── multi_select_test.js
│ ├── occur.js
│ ├── occur_test.js
│ ├── placeholder.js
│ ├── placeholder_test.js
│ ├── range.js
│ ├── range_list.js
│ ├── range_list_test.js
│ ├── range_test.js
│ ├── renderloop.js
│ ├── scrollbar.js
│ ├── scrollbar_custom.js
│ ├── scrollbar_test.js
│ ├── search.js
│ ├── search_highlight.js
│ ├── search_test.js
│ ├── selection.js
│ ├── selection_test.js
│ ├── snippets/
│ │ ├── abc.js
│ │ ├── abc.snippets.js
│ │ ├── actionscript.js
│ │ ├── actionscript.snippets.js
│ │ ├── c_cpp.js
│ │ ├── c_cpp.snippets.js
│ │ ├── clojure.js
│ │ ├── clojure.snippets.js
│ │ ├── coffee.js
│ │ ├── coffee.snippets.js
│ │ ├── csound_document.js
│ │ ├── csound_document.snippets.js
│ │ ├── csound_orchestra.js
│ │ ├── csound_orchestra.snippets.js
│ │ ├── css.js
│ │ ├── css.snippets.js
│ │ ├── dart.js
│ │ ├── dart.snippets.js
│ │ ├── diff.js
│ │ ├── diff.snippets.js
│ │ ├── django.js
│ │ ├── django.snippets.js
│ │ ├── drools.js
│ │ ├── drools.snippets.js
│ │ ├── edifact.js
│ │ ├── edifact.snippets.js
│ │ ├── erlang.js
│ │ ├── erlang.snippets.js
│ │ ├── fsl.js
│ │ ├── fsl.snippets.js
│ │ ├── gobstones.js
│ │ ├── gobstones.snippets.js
│ │ ├── graphqlschema.js
│ │ ├── graphqlschema.snippets.js
│ │ ├── haml.js
│ │ ├── haml.snippets.js
│ │ ├── haskell.js
│ │ ├── haskell.snippets.js
│ │ ├── html.js
│ │ ├── html.snippets.js
│ │ ├── io.js
│ │ ├── java.js
│ │ ├── java.snippets.js
│ │ ├── javascript.js
│ │ ├── javascript.snippets.js
│ │ ├── jsp.js
│ │ ├── jsp.snippets.js
│ │ ├── liquid.js
│ │ ├── liquid.snippets.js
│ │ ├── lsl.js
│ │ ├── lsl.snippets.js
│ │ ├── lua.js
│ │ ├── lua.snippets.js
│ │ ├── makefile.js
│ │ ├── makefile.snippets.js
│ │ ├── markdown.js
│ │ ├── markdown.snippets.js
│ │ ├── maze.js
│ │ ├── maze.snippets.js
│ │ ├── perl.js
│ │ ├── perl.snippets.js
│ │ ├── php.js
│ │ ├── php.snippets.js
│ │ ├── python.js
│ │ ├── python.snippets.js
│ │ ├── r.js
│ │ ├── r.snippets.js
│ │ ├── razor.js
│ │ ├── razor.snippets.js
│ │ ├── robot.js
│ │ ├── robot.snippets.js
│ │ ├── rst.js
│ │ ├── rst.snippets.js
│ │ ├── ruby.js
│ │ ├── ruby.snippets.js
│ │ ├── sh.js
│ │ ├── sh.snippets.js
│ │ ├── snippets.js
│ │ ├── snippets.snippets.js
│ │ ├── sql.js
│ │ ├── sql.snippets.js
│ │ ├── sqlserver.js
│ │ ├── sqlserver.snippets.js
│ │ ├── tcl.js
│ │ ├── tcl.snippets.js
│ │ ├── tex.js
│ │ ├── tex.snippets.js
│ │ ├── textile.js
│ │ ├── textile.snippets.js
│ │ ├── vala.js
│ │ ├── velocity.js
│ │ ├── velocity.snippets.js
│ │ ├── wollok.js
│ │ └── wollok.snippets.js
│ ├── snippets.js
│ ├── snippets_test.js
│ ├── split.js
│ ├── test/
│ │ ├── all.js
│ │ ├── all_browser.js
│ │ ├── assertions.js
│ │ ├── asyncjs/
│ │ │ └── assert.js
│ │ ├── benchmark.js
│ │ ├── mockdom.js
│ │ ├── mockdom_test.js
│ │ ├── mockrenderer.js
│ │ ├── run.js
│ │ ├── test_list.js
│ │ ├── tests.html
│ │ ├── update_test_list.js
│ │ └── user.js
│ ├── theme/
│ │ ├── ambiance-css.js
│ │ ├── ambiance.js
│ │ ├── chaos-css.js
│ │ ├── chaos.js
│ │ ├── chrome-css.js
│ │ ├── chrome.js
│ │ ├── cloud9_day-css.js
│ │ ├── cloud9_day.js
│ │ ├── cloud9_night-css.js
│ │ ├── cloud9_night.js
│ │ ├── cloud9_night_low_color-css.js
│ │ ├── cloud9_night_low_color.js
│ │ ├── cloud_editor-css.js
│ │ ├── cloud_editor.js
│ │ ├── cloud_editor_dark-css.js
│ │ ├── cloud_editor_dark.js
│ │ ├── clouds-css.js
│ │ ├── clouds.js
│ │ ├── clouds_midnight-css.js
│ │ ├── clouds_midnight.js
│ │ ├── cobalt-css.js
│ │ ├── cobalt.js
│ │ ├── crimson_editor-css.js
│ │ ├── crimson_editor.js
│ │ ├── dawn-css.js
│ │ ├── dawn.js
│ │ ├── dracula-css.js
│ │ ├── dracula.js
│ │ ├── dreamweaver-css.js
│ │ ├── dreamweaver.js
│ │ ├── eclipse-css.js
│ │ ├── eclipse.js
│ │ ├── github-css.js
│ │ ├── github.js
│ │ ├── github_dark-css.js
│ │ ├── github_dark.js
│ │ ├── github_light_default-css.js
│ │ ├── github_light_default.js
│ │ ├── gob-css.js
│ │ ├── gob.js
│ │ ├── gruvbox-css.js
│ │ ├── gruvbox.js
│ │ ├── gruvbox_dark_hard-css.js
│ │ ├── gruvbox_dark_hard.js
│ │ ├── gruvbox_light_hard-css.js
│ │ ├── gruvbox_light_hard.js
│ │ ├── idle_fingers-css.js
│ │ ├── idle_fingers.js
│ │ ├── iplastic-css.js
│ │ ├── iplastic.js
│ │ ├── katzenmilch-css.js
│ │ ├── katzenmilch.js
│ │ ├── kr_theme-css.js
│ │ ├── kr_theme.js
│ │ ├── kuroir-css.js
│ │ ├── kuroir.js
│ │ ├── merbivore-css.js
│ │ ├── merbivore.js
│ │ ├── merbivore_soft-css.js
│ │ ├── merbivore_soft.js
│ │ ├── mono_industrial-css.js
│ │ ├── mono_industrial.js
│ │ ├── monokai-css.js
│ │ ├── monokai.js
│ │ ├── nord_dark-css.js
│ │ ├── nord_dark.js
│ │ ├── one_dark-css.js
│ │ ├── one_dark.js
│ │ ├── pastel_on_dark-css.js
│ │ ├── pastel_on_dark.js
│ │ ├── solarized_dark-css.js
│ │ ├── solarized_dark.js
│ │ ├── solarized_light-css.js
│ │ ├── solarized_light.js
│ │ ├── sqlserver-css.js
│ │ ├── sqlserver.js
│ │ ├── terminal-css.js
│ │ ├── terminal.js
│ │ ├── textmate-css.js
│ │ ├── textmate.js
│ │ ├── tomorrow-css.js
│ │ ├── tomorrow.js
│ │ ├── tomorrow_night-css.js
│ │ ├── tomorrow_night.js
│ │ ├── tomorrow_night_blue-css.js
│ │ ├── tomorrow_night_blue.js
│ │ ├── tomorrow_night_bright-css.js
│ │ ├── tomorrow_night_bright.js
│ │ ├── tomorrow_night_eighties-css.js
│ │ ├── tomorrow_night_eighties.js
│ │ ├── twilight-css.js
│ │ ├── twilight.js
│ │ ├── vibrant_ink-css.js
│ │ ├── vibrant_ink.js
│ │ ├── xcode-css.js
│ │ └── xcode.js
│ ├── token_iterator.js
│ ├── token_iterator_test.js
│ ├── tokenizer.js
│ ├── tokenizer_dev.js
│ ├── tokenizer_test.js
│ ├── tooltip.js
│ ├── tooltip_test.js
│ ├── undomanager.js
│ ├── undomanager_test.js
│ ├── unicode.js
│ ├── virtual_renderer.js
│ ├── virtual_renderer_test.js
│ └── worker/
│ └── worker_client.js
├── static.js
├── tool/
│ ├── Readme.md
│ ├── ace_declaration_generator.js
│ ├── add_mode.js
│ ├── esm_resolver_generator.js
│ ├── lib.js
│ ├── mode_creator.html
│ ├── mode_creator.js
│ ├── modes-declaration-generator.js
│ ├── package.json
│ ├── perf-test.html
│ ├── regexp_to_keywords.js
│ ├── regexp_tokenizer.js
│ ├── regexp_tokenizer_test.js
│ ├── release-api-docs.sh
│ ├── release.sh
│ ├── templates/
│ │ ├── dummy.JSON-tmLanguage
│ │ ├── highlight_rules.js
│ │ ├── mode.js
│ │ ├── snippets.js
│ │ ├── theme.css
│ │ └── theme.js
│ ├── test-ace-builds-package.sh
│ ├── test-npm-package.sh
│ ├── tmlanguage.js
│ ├── tmsnippets.js
│ ├── tmtheme.js
│ ├── tmthemes/
│ │ ├── Active4D.tmTheme
│ │ ├── Amy.tmTheme
│ │ ├── Blackboard.tmTheme
│ │ ├── Clouds.tmTheme
│ │ ├── Cobalt.tmTheme
│ │ ├── Dawn.tmTheme
│ │ ├── Dreamweaver.tmTheme
│ │ ├── Eiffel.tmTheme
│ │ ├── GitHub.tmTheme
│ │ ├── IDLE.tmTheme
│ │ ├── Katzenmilch.tmTheme
│ │ ├── LAZY.tmTheme
│ │ ├── LICENSE
│ │ ├── Merbivore.tmTheme
│ │ ├── Monokai.tmTheme
│ │ ├── Solarized-dark.tmTheme
│ │ ├── Solarized-light.tmTheme
│ │ ├── SpaceCadet.tmTheme
│ │ ├── Sunburst.tmTheme
│ │ ├── Tomorrow-Night-Blue.tmTheme
│ │ ├── Tomorrow-Night-Bright.tmTheme
│ │ ├── Tomorrow-Night-Eighties.tmTheme
│ │ ├── Tomorrow-Night.tmTheme
│ │ ├── Tomorrow.tmTheme
│ │ ├── Twilight.tmTheme
│ │ ├── Xcode_default.tmTheme
│ │ ├── Zenburnesque.tmTheme
│ │ ├── gruvboxDarkHard.tmTheme
│ │ ├── gruvboxLightHard.tmTheme
│ │ ├── iPlastic.tmTheme
│ │ ├── idleFingers.tmTheme
│ │ ├── krTheme.tmTheme
│ │ └── monoindustrial.tmTheme
│ ├── unicode.js
│ ├── update_deps.js
│ └── wrap_keyword_regexp.js
├── translations/
│ ├── Readme.md
│ ├── am.json
│ ├── es.json
│ └── ru.json
├── tsconfig.json
├── types/
│ ├── ace-ext.d.ts
│ ├── ace-lib.d.ts
│ ├── ace-modules.d.ts
│ ├── ace-snippets.d.ts
│ └── ace-theme.d.ts
└── version.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/ISSUE_TEMPLATE/add-to-website.yml
================================================
---
name: "🌐 Add a project to the list of project using Ace on its website."
description: Add a project to the list of projects using Ace, displayed on the website.
title: "Add project (project name) to the list of projects using Ace on its website"
labels: [website, needs-triage]
assignees: []
body:
- type: markdown
attributes:
value: |
The fastest way to get your project to be displayed on the website is to create a PR.
Examples: https://github.com/ajaxorg/ace/pull/5014, https://github.com/ajaxorg/ace/pull/5222.
If for any reason creating a PR is not an option for you, please proceed with filling out this issue. Thanks!
- type: input
id: name
attributes:
label: Project name
description: A name of the project to be used on Ace website.
validations:
required: true
- type: input
id: project-link
attributes:
label: Project link
description: A link to the project's website.
validations:
required: true
- type: input
id: logo-link
attributes:
label: Logo link
description: |
A link to the logo image to be used on the website for the project. If not provided, only the name of the project will be displayed.
By submitting this link, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
validations:
required: false
- type: textarea
id: info
attributes:
label: Additional information
description: Any additional information you would like to share.
validations:
required: false
- type: checkboxes
id: ack
attributes:
label: Acknowledgements
options:
- label: I may be able to implement this request.
required: false
================================================
FILE: .github/ISSUE_TEMPLATE/bug-report.yml
================================================
---
name: "🐞 Bug Report"
description: Report a bug
title: "(module name): (short issue description)"
labels: [bug, needs-triage]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the bug
description: What is the problem? A clear and concise description of the bug.
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected Behavior
description: |
What did you expect to happen?
validations:
required: true
- type: textarea
id: current
attributes:
label: Current Behavior
description: |
What actually happened?
Please include full errors, uncaught exceptions, stack traces, and relevant logs.
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: Reproduction Steps
description: |
Provide a self-contained, concise snippet of code that can be used to reproduce the issue.
For more complex issues provide a repo with the smallest sample that reproduces the bug.
Avoid including business logic or unrelated code, it makes diagnosis more difficult.
validations:
required: true
- type: textarea
id: solution
attributes:
label: Possible Solution
description: |
Suggest a fix/reason for the bug
validations:
required: false
- type: textarea
id: context
attributes:
label: Additional Information/Context
description: |
Anything else that might be relevant for troubleshooting this bug. Providing context helps us come up with a solution that is most useful in the real world.
validations:
required: false
- type: input
id: ace-version
attributes:
label: Ace Version / Browser / OS / Keyboard layout
description: Information about software versions and keyboard configuration that can be relevant for reproducing the issue
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
---
blank_issues_enabled: false
contact_links:
- name: 🤔 General Question
url: https://github.com/ajaxorg/ace/discussions/categories/q-a
about: Please ask and answer questions as a discussion thread
================================================
FILE: .github/ISSUE_TEMPLATE/documentation.yml
================================================
---
name: "📕 Documentation Issue"
description: Report an issue in the documentation
title: "(short issue description)"
labels: [documentation, needs-triage]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the issue
description: A clear and concise description of the issue.
validations:
required: true
- type: textarea
id: links
attributes:
label: Links
description: |
Include links to affected documentation page(s).
validations:
required: true
================================================
FILE: .github/ISSUE_TEMPLATE/feature-request.yml
================================================
---
name: 🚀 Feature Request
description: Suggest an idea for this project
title: "(short issue description)"
labels: [feature-request, needs-triage]
assignees: []
body:
- type: textarea
id: description
attributes:
label: Describe the feature
description: A clear and concise description of the feature you are proposing.
validations:
required: true
- type: textarea
id: use-case
attributes:
label: Use Case
description: |
Why do you need this feature? For example: "I'm always frustrated when..."
validations:
required: true
- type: textarea
id: solution
attributes:
label: Proposed Solution
description: |
Suggest how to implement the addition or change. Please include prototype/workaround/sketch/reference implementation.
validations:
required: false
- type: textarea
id: other
attributes:
label: Other Information
description: |
Any alternative solutions or features you considered, a more detailed explanation, stack traces, related issues, links for context, etc.
validations:
required: false
- type: checkboxes
id: ack
attributes:
label: Acknowledgements
options:
- label: I may be able to implement this feature request
required: false
- label: This feature might incur a breaking change
required: false
- type: input
id: ace-version
attributes:
label: ACE version used
validations:
required: true
================================================
FILE: .github/PULL_REQUEST_TEMPLATE.md
================================================
*Issue #, if available:*
*Description of changes:*
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.
Pull Request Checklist:
* [ ] No backwards incompatible changes were made to Ace's public interface which is defined through the main typings file (`ace.d.ts`) and its references:
* https://github.com/ajaxorg/ace/blob/master/ace.d.ts
* https://github.com/ajaxorg/ace/blob/master/ace-modes.d.ts
* https://github.com/ajaxorg/ace/blob/master/ace-extensions.d.ts
================================================
FILE: .github/workflows/backwards-compatibility-commenter.yml
================================================
name: Comments for ensuring backward compatibility
on:
pull_request_target:
paths:
- 'ace.d.ts'
- 'ace-modes.d.ts'
- 'ace-extensions.d.ts'
permissions:
pull-requests: write
jobs:
comment:
runs-on: ubuntu-latest
steps:
- name: Comment on PR
uses: peter-evans/create-or-update-comment@v1
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
One of the public type files has been updated, plase make sure there are no backwards incompatible changes done in the PR.
token: ${{ secrets.GITHUB_TOKEN }}
================================================
FILE: .github/workflows/close-stale-issues.yml
================================================
name: "Close Stale Issues"
# Controls when the action will run.
on:
workflow_dispatch:
schedule:
- cron: "0 */4 * * *"
jobs:
cleanup:
permissions:
issues: write
contents: read
pull-requests: write
runs-on: ubuntu-latest
name: Stale issue job
steps:
- uses: aws-actions/stale-issue-cleanup@v5
with:
issue-types: issues
# Setting messages to an empty string will cause the automation to skip
# that category
ancient-issue-message: This issue has not received any attention in 1 year. If you want to keep this issue open, please leave a comment below and auto-close will be canceled.
stale-issue-message: This issue has not received a response in a while. If you want to keep this issue open, please leave a comment below and auto-close will be canceled.
# These labels are required
stale-issue-label: closing-soon
exempt-issue-labels: no-autoclose, p1
response-requested-label: response-requested
# Don't set closed-for-staleness label to skip closing very old issues
# regardless of label
closed-for-staleness-label: closed-for-staleness
# Issue timing
days-before-stale: 7
days-before-close: 2
days-before-ancient: 365
# If you don't want to mark a issue as being ancient based on a
# threshold of "upvotes", you can set this here. An "upvote" is
# the total number of +1, heart, hooray, and rocket reactions
# on an issue.
minimum-upvotes-to-exempt: 5
repo-token: ${{ secrets.GITHUB_TOKEN }}
loglevel: DEBUG
# Set dry-run to true to not perform label or close actions.
dry-run: false
================================================
FILE: .github/workflows/issue-reprioritization.yml
================================================
name: issue-reprioritization
on:
schedule:
- cron: "0 0 * * 0"
jobs:
issue-reprioritization:
permissions:
issues: write
runs-on: ubuntu-latest
steps:
- uses: kaizencc/issue-reprioritization-manager@main
id: reprioritization-manager
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
original-label: p2
new-label: p1
reprioritization-threshold: 5
- uses: kaizencc/pr-triage-manager@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
on-pulls: ${{ steps.reprioritization-manager.outputs.linked-pulls }}
================================================
FILE: .github/workflows/link-comment.yml
================================================
name: Update PR Description
on:
pull_request_target: # use this trigger to run on external pull requests too
types: [opened, synchronize]
jobs:
update-description:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Update PR description
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const prNumber = context.payload.pull_request.number;
const owner = context.payload.pull_request.head.repo.owner.login;
const repo = context.payload.pull_request.head.repo.name;
const commit = context.payload.pull_request.head.sha;
const link = `https://raw.githack.com/${owner}/${repo}/${commit}/kitchen-sink.html`;
const { data: pullRequest } = await github.rest.pulls.get({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
});
if (!pullRequest.body.includes(link)) {
const updatedBody = `${pullRequest.body}\n\n[Open kitchen-sink @ ${commit}](${link})`;
await github.rest.pulls.update({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: prNumber,
body: updatedBody,
});
}
================================================
FILE: .github/workflows/nodejs.yml
================================================
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
permissions:
contents: read # to fetch code (actions/checkout)
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x]
steps:
- uses: actions/checkout@v2
- name: Fetch the master branch
run: git fetch origin HEAD:refs/remotes/origin/HEAD --depth 1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- run: npm i
- run: npm run cover-json && mv ./coverage/coverage-final.json ./coverage/coverage.json
- run: |
# eslint
set -x;
git status;
git checkout HEAD -- package.json;
changes=$(git diff --name-only origin/HEAD --no-renames --diff-filter=ACMR);
if [ "$changes" == "" ]; then
echo "checking all files";
node node_modules/eslint/bin/eslint "lib/ace/**/*.js";
else
jsChanges=$(echo "$changes" | grep -P '.js$' || :);
if [ "$jsChanges" == "" ]; then
echo "nothing to check";
else
echo "checking $jsChanges";
node node_modules/eslint/bin/eslint $jsChanges;
fi
fi
- run: |
# check types
set -x;
npx tsc -v;
npm run update-types;
git diff --color --exit-code ./ace*d.ts;
npm run typecheck;
node_modules/.bin/tsc --noImplicitAny --strict --noUnusedLocals --noImplicitReturns --noUnusedParameters --noImplicitThis ace.d.ts;
- run: |
# test-npm-package
set -x;
./tool/test-npm-package.sh
# upload to codecov
- uses: codecov/codecov-action@v3
with:
token: d8edca4b-8e97-41e5-b54e-34c7cf3b2d47
file: ./coverage/coverage.json
flags: unittests
name: codecov-umbrella
fail_ci_if_error: true
================================================
FILE: .github/workflows/publish.yml
================================================
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
name: Publish to NPM
on:
push:
tags:
- v*
workflow_dispatch:
permissions:
id-token: write # Required for OIDC
contents: read # to fetch code (actions/checkout)
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# Setup .npmrc file to publish to npm
- uses: actions/setup-node@v4
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
- run: npm install
- run: npm run test
- run: npm publish
================================================
FILE: .gitignore
================================================
# Junk that could exist anywhere:
.DS_Store
*.swp
*.tmp
*~
# Project files that should not be in the repo
.*
\#*
!/.github
!/.gitignore
.*.gz
*.tmTheme.js
package-lock.json
# A handy place to put stuff that git should ignore:
/coverage
/ignore/
node_modules/
jam/
* *
.git-ref
npm-debug.log
deps/
dist
lib/ace
styles
================================================
FILE: CHANGELOG.md
================================================
# Changelog
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
### [1.43.6](https://github.com/ajaxorg/ace/compare/v1.43.5...v1.43.6) (2026-01-23)
### Bug Fixes
* the text completer didn't export its id ([#5847](https://github.com/ajaxorg/ace/issues/5847)) ([b256c10](https://github.com/ajaxorg/ace/commit/b256c10691e6ba9296d18dcdea15441189971d1e))
### [1.43.5](https://github.com/ajaxorg/ace/compare/v1.43.4...v1.43.5) (2025-12-02)
### [1.43.4](https://github.com/ajaxorg/ace/compare/v1.43.3...v1.43.4) (2025-10-17)
### Bug Fixes
* Update for compliance with typescript 5.9.2 ([#5855](https://github.com/ajaxorg/ace/issues/5855)) ([6e110b0](https://github.com/ajaxorg/ace/commit/6e110b0061b56b72db7478762036a1ba39251102))
### [1.43.3](https://github.com/ajaxorg/ace/compare/v1.43.2...v1.43.3) (2025-09-02)
### Bug Fixes
* firefox textarea autocomplete corruption ([#5860](https://github.com/ajaxorg/ace/issues/5860)) ([23ac02f](https://github.com/ajaxorg/ace/commit/23ac02f7602b84cc4ea30f6ed4f889d3802affde))
### [1.43.2](https://github.com/ajaxorg/ace/compare/v1.43.1...v1.43.2) (2025-07-15)
### Features
* Implement text markers ([#5835](https://github.com/ajaxorg/ace/issues/5835)) ([085730f](https://github.com/ajaxorg/ace/commit/085730fff987ec88c2350146f18b42b17532d47f))
### [1.43.1](https://github.com/ajaxorg/ace/compare/v1.43.0...v1.43.1) (2025-07-02)
### Bug Fixes
* **a11y:** aria-describedby to gutter elements ([#5838](https://github.com/ajaxorg/ace/issues/5838)) ([bf27c15](https://github.com/ajaxorg/ace/commit/bf27c151685ac486a991a61d67fa04adf8891c76))
### [1.42.1](https://github.com/ajaxorg/ace/compare/v1.42.0...v1.42.1) (2025-06-20)
### Features
* Add scroll diff decorators ([#5807](https://github.com/ajaxorg/ace/issues/5807)) ([b45e94c](https://github.com/ajaxorg/ace/commit/b45e94cb92d757b5f09ee0966a764ed0d245ed70))
## [1.42.0](https://github.com/ajaxorg/ace/compare/v1.41.0...v1.42.0) (2025-06-03)
### Features
* update mouse selection at user's refresh rate ([#5717](https://github.com/ajaxorg/ace/issues/5717)) ([90d72fc](https://github.com/ajaxorg/ace/commit/90d72fc95ed2a3e35725a39fa2b88c2fe6d0a44c)), closes [#5716](https://github.com/ajaxorg/ace/issues/5716)
### Bug Fixes
* editor.completer would init on `enableBasicAutocompletion` option `true` ([#5756](https://github.com/ajaxorg/ace/issues/5756)) ([25a471a](https://github.com/ajaxorg/ace/commit/25a471a3ec0a7c657646a54d034709f0d3283f19))
* missing type aliases and MarkerGroup in `ace-builds` ([#5782](https://github.com/ajaxorg/ace/issues/5782)) ([b20be1a](https://github.com/ajaxorg/ace/commit/b20be1a4591e1c566fdb0e205a75fa580885e7c6))
### [1.40.2](https://github.com/ajaxorg/ace/compare/v1.40.1...v1.40.2) (2025-05-02)
### [1.40.1](https://github.com/ajaxorg/ace/compare/v1.40.0...v1.40.1) (2025-04-23)
### Bug Fixes
* **gutter:** add null check for session.foldWdigets ([#5801](https://github.com/ajaxorg/ace/issues/5801)) ([6ca40e9](https://github.com/ajaxorg/ace/commit/6ca40e93623ed1d4d04c8ce7ffb45186092c2198))
## [1.40.0](https://github.com/ajaxorg/ace/compare/v1.39.1...v1.40.0) (2025-04-15)
### Features
* **gutter:** added keyboard handling for experimental feature custom widgets ([#5796](https://github.com/ajaxorg/ace/issues/5796)) ([8037400](https://github.com/ajaxorg/ace/commit/803740045ca73555b01116b582791fce940cbe00))
### [1.39.1](https://github.com/ajaxorg/ace/compare/v1.39.0...v1.39.1) (2025-03-20)
### Features
* Editing is disabled tooltip in readonly mode ([#5771](https://github.com/ajaxorg/ace/issues/5771)) ([1098e53](https://github.com/ajaxorg/ace/commit/1098e5306fdc02e873cdadc85d2e13228abfe80c))
### Bug Fixes
* Fix is check in xml FoldMode ([#5752](https://github.com/ajaxorg/ace/issues/5752)) ([810c465](https://github.com/ajaxorg/ace/commit/810c4650288d32b119239f7731a3b3be0c25376c))
* replace NodeList.foreach with for loop ([#5769](https://github.com/ajaxorg/ace/issues/5769)) ([b3de3c1](https://github.com/ajaxorg/ace/commit/b3de3c1d99540bd94df122cedb7c5e3a792986a7))
* updateDocTooltip with undefined this.completions ([#5754](https://github.com/ajaxorg/ace/issues/5754)) ([adde072](https://github.com/ajaxorg/ace/commit/adde072dd4810aa8f99bb1e16a6ab7dfc81a6e9d))
* wrong java keywords ([#5759](https://github.com/ajaxorg/ace/issues/5759)) ([6b4c7a0](https://github.com/ajaxorg/ace/commit/6b4c7a09d844a2e16d664d3e9fbb384b543bcfcb))
## [1.39.0](https://github.com/ajaxorg/ace/compare/v1.38.0...v1.39.0) (2025-02-21)
### Features
* Multiline Search Support: line breaks `\n` ([#5675](https://github.com/ajaxorg/ace/issues/5675)) ([06d51b9](https://github.com/ajaxorg/ace/commit/06d51b9164dc9dc39fbd6df26b7132f4b9580a4c))
### Bug Fixes
* check if row is present when setting aria label of popup elements ([#5750](https://github.com/ajaxorg/ace/issues/5750)) ([ff16482](https://github.com/ajaxorg/ace/commit/ff16482101965fc4fce488a61a3cd0f9454d8e87))
* gutter hover tooltip a11y improvements ([#5747](https://github.com/ajaxorg/ace/issues/5747)) ([fbe3ddc](https://github.com/ajaxorg/ace/commit/fbe3ddccb1248c9f8f4a6524d2ded7235d225b41))
* narrowing platform to be either win or mac ([#5707](https://github.com/ajaxorg/ace/issues/5707)) ([18cc336](https://github.com/ajaxorg/ace/commit/18cc336187519107f47bb15e989008f48f0b1563))
* set score completion item when skipfilter true ([#5749](https://github.com/ajaxorg/ace/issues/5749)) ([a27e1e8](https://github.com/ajaxorg/ace/commit/a27e1e8a5d3d912b3b554cd2b5916b58750e8e71))
## [1.38.0](https://github.com/ajaxorg/ace/compare/v1.37.5...v1.38.0) (2025-02-12)
### Features
* **popup:** add supporting skipFilter flag for popup item ([#5740](https://github.com/ajaxorg/ace/issues/5740)) ([0db7585](https://github.com/ajaxorg/ace/commit/0db7585ae0ccbd353091426f60ac3d9e53e182c4))
### Bug Fixes
* **AcePopup:** fix aria-posinset issue on google chrome ([#5719](https://github.com/ajaxorg/ace/issues/5719)) ([09a0c5a](https://github.com/ajaxorg/ace/commit/09a0c5a11106754916a4fc324a35e8daf84055ba))
* calling setMode just before destroy causes error reading getLength ([#5727](https://github.com/ajaxorg/ace/issues/5727)) ([62b973e](https://github.com/ajaxorg/ace/commit/62b973ef2247debdd51cf6a41a3b24b97277efdb))
* highlight indent guides with wrapped lines ([#5621](https://github.com/ajaxorg/ace/issues/5621)) ([77b9fe1](https://github.com/ajaxorg/ace/commit/77b9fe1bc0b10b4c3fb2780d65f9d256d60634ce))
* improve aria attributes of popup elements ([#5739](https://github.com/ajaxorg/ace/issues/5739)) ([09fba2e](https://github.com/ajaxorg/ace/commit/09fba2e7347cd499c979e53ec7a8d8ee1fd48918))
* types for setTimeout/setInterval calls ([#5726](https://github.com/ajaxorg/ace/issues/5726)) ([9a76656](https://github.com/ajaxorg/ace/commit/9a76656acc9528a4a2e92a3b72c4d6598d3a0a8c))
* **VirtualRenderer:** fix scrollbar overlap on autocompletion ([#5713](https://github.com/ajaxorg/ace/issues/5713)) ([5acea6d](https://github.com/ajaxorg/ace/commit/5acea6d9200f4ca0c8495350cda6e41e8351913f))
* wrong type of paste event and missing types for themelist extension ([#5725](https://github.com/ajaxorg/ace/issues/5725)) ([a4b9d2d](https://github.com/ajaxorg/ace/commit/a4b9d2d91a2be841320030d93afde46ae723c8c3))
### [1.37.5](https://github.com/ajaxorg/ace/compare/v1.37.4...v1.37.5) (2025-01-16)
### Bug Fixes
* update aria-roledescription gutter ([#5718](https://github.com/ajaxorg/ace/issues/5718)) ([7ae3a4c](https://github.com/ajaxorg/ace/commit/7ae3a4c5f6f6e9bd31ae491f1fcef71fc5ae62fa))
### [1.37.4](https://github.com/ajaxorg/ace/compare/v1.37.3...v1.37.4) (2025-01-09)
### Bug Fixes
* Remove unnecesary `typeof` from type imports in declarations ([#5715](https://github.com/ajaxorg/ace/issues/5715)) ([2c8bf91](https://github.com/ajaxorg/ace/commit/2c8bf916d75b086b958c205896bc2adc1747d241))
### [1.37.3](https://github.com/ajaxorg/ace/compare/v1.37.2...v1.37.3) (2025-01-07)
### [1.37.2](https://github.com/ajaxorg/ace/compare/v1.37.1...v1.37.2) (2025-01-06)
### Bug Fixes
* fix return type of supportsFile modelist ([#5705](https://github.com/ajaxorg/ace/issues/5705)) ([de21d50](https://github.com/ajaxorg/ace/commit/de21d50656bd874e1626265b8853923cb8da7c8b))
### [1.37.1](https://github.com/ajaxorg/ace/compare/v1.37.0...v1.37.1) (2024-12-20)
### Bug Fixes
* hide gutter tooltip event missing from editor signal ([#5701](https://github.com/ajaxorg/ace/issues/5701)) ([66a6736](https://github.com/ajaxorg/ace/commit/66a673643d5d128eaf59d4fb6e5907fa6fa68773))
### [1.36.6](https://github.com/ajaxorg/ace/compare/v1.36.5...v1.36.6) (2024-12-17)
### Bug Fixes
* update contribuition guide to mandate test cases ([#5694](https://github.com/ajaxorg/ace/issues/5694)) ([e6533b3](https://github.com/ajaxorg/ace/commit/e6533b3972d5adbf5995646c44894466b3b7f40f))
* wrong behaviour rules in modes ([#5682](https://github.com/ajaxorg/ace/issues/5682)) ([442680c](https://github.com/ajaxorg/ace/commit/442680c68e66531c2d5ac80d80444ed600262ec1))
### [1.36.5](https://github.com/ajaxorg/ace/compare/v1.36.4...v1.36.5) (2024-11-14)
### Features
* exposing getter setter for widget manager created using line widgets ([#5673](https://github.com/ajaxorg/ace/issues/5673)) ([f5d0c19](https://github.com/ajaxorg/ace/commit/f5d0c196c69d06a9dda1bdeb379fa20ecbf75590))
### Bug Fixes
* vue-directives regex bug ([#5671](https://github.com/ajaxorg/ace/issues/5671)) ([5e1e524](https://github.com/ajaxorg/ace/commit/5e1e524d7ef04e13291b5a979fb4166e973e61f0))
### [1.36.4](https://github.com/ajaxorg/ace/compare/v1.36.3...v1.36.4) (2024-11-04)
### Bug Fixes
* **a11y:** update aria-label of textinput on cursor move ([#5665](https://github.com/ajaxorg/ace/issues/5665)) ([6ff93a8](https://github.com/ajaxorg/ace/commit/6ff93a86fe8c4855789ee7e7c156f7b376c0f935))
### [1.36.3](https://github.com/ajaxorg/ace/compare/v1.36.2...v1.36.3) (2024-10-21)
### Bug Fixes
* `readdirSync` options `recursive: true` was added only in NodeJs v20.1.0 ([#5645](https://github.com/ajaxorg/ace/issues/5645)) ([2953f72](https://github.com/ajaxorg/ace/commit/2953f72877a90691432373cfe9182e60ea9b2d8f))
### [1.36.2](https://github.com/ajaxorg/ace/compare/v1.36.1...v1.36.2) (2024-08-30)
### Bug Fixes
* apply padding to right side multi-line markers ([#5636](https://github.com/ajaxorg/ace/issues/5636)) ([c7549aa](https://github.com/ajaxorg/ace/commit/c7549aa5d53fb62f134b31a44d09029ceee3c800))
### [1.36.1](https://github.com/ajaxorg/ace/compare/v1.36.0...v1.36.1) (2024-08-29)
### Bug Fixes
* improve type getMarkerAtPosition markergroup ([#5631](https://github.com/ajaxorg/ace/issues/5631)) ([89bd40a](https://github.com/ajaxorg/ace/commit/89bd40a66a2f06fb8806f174e5559021540a5b1e))
* update cloudeditor light colours ([#5633](https://github.com/ajaxorg/ace/issues/5633)) ([0e2813e](https://github.com/ajaxorg/ace/commit/0e2813ed9e858d9359c2a79f2a9255d675308ad1))
## [1.36.0](https://github.com/ajaxorg/ace/compare/v1.35.5...v1.36.0) (2024-08-21)
### Features
* allow setting marker type for MarkerGroups ([#5630](https://github.com/ajaxorg/ace/issues/5630)) ([214df9c](https://github.com/ajaxorg/ace/commit/214df9cea8d729f3071f9c02889cba2b2e7051b3))
* **forced-color:** do not adjust the forced colors for the editor ([#5624](https://github.com/ajaxorg/ace/issues/5624)) ([c8f9df8](https://github.com/ajaxorg/ace/commit/c8f9df84e70ee29e8e989966985bcea95a9bef9b))
### [1.35.5](https://github.com/ajaxorg/ace/compare/v1.35.4...v1.35.5) (2024-08-20)
### [1.35.4](https://github.com/ajaxorg/ace/compare/v1.35.3...v1.35.4) (2024-07-22)
### Bug Fixes
* move right of cursor tokens to end of ghost text. ([#5616](https://github.com/ajaxorg/ace/issues/5616)) ([063ef9b](https://github.com/ajaxorg/ace/commit/063ef9bbe0934dfe75d9b447e8a92b69bfa41a3a))
### [1.35.3](https://github.com/ajaxorg/ace/compare/v1.35.2...v1.35.3) (2024-07-18)
### Bug Fixes
* ghost text rendering of empty lines ([#5615](https://github.com/ajaxorg/ace/issues/5615)) ([1ae0bdc](https://github.com/ajaxorg/ace/commit/1ae0bdcfb9da4078713d116e93a9c9a935a1258d))
### [1.35.2](https://github.com/ajaxorg/ace/compare/v1.35.1...v1.35.2) (2024-07-01)
### [1.35.1](https://github.com/ajaxorg/ace/compare/v1.35.0...v1.35.1) (2024-06-27)
### Bug Fixes
* explicitly construct Number from window zoom attribute ([#5600](https://github.com/ajaxorg/ace/issues/5600)) ([2591c36](https://github.com/ajaxorg/ace/commit/2591c36b9e768305a9f837bf74c828c2d8d76e05))
* use dom builder for gutter tooltip and inline widget ([#5601](https://github.com/ajaxorg/ace/issues/5601)) ([e81a299](https://github.com/ajaxorg/ace/commit/e81a299a8be39a7245a334ebc844eaeac6864bb3))
* workaround for safari rendering bug ([#5573](https://github.com/ajaxorg/ace/issues/5573)) ([f9a152f](https://github.com/ajaxorg/ace/commit/f9a152fd925a8a16b10c65c909201100486c71e8))
* wrong doc comment * insert behaviour ([#5571](https://github.com/ajaxorg/ace/issues/5571)) ([16c95b3](https://github.com/ajaxorg/ace/commit/16c95b32197c0ec952e52be85d21269005875940))
## [1.35.0](https://github.com/ajaxorg/ace/compare/v1.34.2...v1.35.0) (2024-06-11)
### Features
* allow '{n}' as placeholder for translated strings ([#5581](https://github.com/ajaxorg/ace/issues/5581)) ([2206024](https://github.com/ajaxorg/ace/commit/220602488b95748c74141d647e13114c7a4569fb))
### Bug Fixes
* allow setting the placeholder type for nls ([#5584](https://github.com/ajaxorg/ace/issues/5584)) ([3e2d50f](https://github.com/ajaxorg/ace/commit/3e2d50f5307e201c20825311585e1f612f1ff23c))
* not closed generic state in case of left-shift operator ([#5572](https://github.com/ajaxorg/ace/issues/5572)) ([e5bea6f](https://github.com/ajaxorg/ace/commit/e5bea6f63290003ff3270d56dbf9610e8a3091a8))
* wrong vue-directives regexp ([#5586](https://github.com/ajaxorg/ace/issues/5586)) ([5f89a33](https://github.com/ajaxorg/ace/commit/5f89a334e69640bb395e74ae86530217d08f141c))
### [1.34.2](https://github.com/ajaxorg/ace/compare/v1.34.1...v1.34.2) (2024-05-27)
### [1.34.1](https://github.com/ajaxorg/ace/compare/v1.34.0...v1.34.1) (2024-05-24)
### Bug Fixes
* always set aria-label to text input in a11y mode ([#5563](https://github.com/ajaxorg/ace/issues/5563)) ([00346fd](https://github.com/ajaxorg/ace/commit/00346fde824beabb69f677631ad52815665eaef4))
* Folding for comments and different modes ([#5533](https://github.com/ajaxorg/ace/issues/5533)) ([f4d0e33](https://github.com/ajaxorg/ace/commit/f4d0e33dac270ce21df09a96a39f50e16d6354db))
## [1.34.0](https://github.com/ajaxorg/ace/compare/v1.33.3...v1.34.0) (2024-05-22)
### Features
* allow users to add arialabel to text input ([#5560](https://github.com/ajaxorg/ace/issues/5560)) ([8d7dfb6](https://github.com/ajaxorg/ace/commit/8d7dfb69392960aba61def982f4bea8f3a5caa70))
### [1.33.3](https://github.com/ajaxorg/ace/compare/v1.33.2...v1.33.3) (2024-05-21)
### Bug Fixes
* contrast completion meta contrast cloud editor themes ([#5558](https://github.com/ajaxorg/ace/issues/5558)) ([b8877f0](https://github.com/ajaxorg/ace/commit/b8877f0f725b3973961cb639127402c9f56609de))
### [1.33.2](https://github.com/ajaxorg/ace/compare/v1.33.1...v1.33.2) (2024-05-13)
### Bug Fixes
* Add soft wrap for ghost text ([#5540](https://github.com/ajaxorg/ace/issues/5540)) ([6a26b27](https://github.com/ajaxorg/ace/commit/6a26b277d0050b38cd766e00f93be4b9f3170f68))
* generator function's determination; wrong parameter highlighting ([#5538](https://github.com/ajaxorg/ace/issues/5538)) ([ceca6f7](https://github.com/ajaxorg/ace/commit/ceca6f7b38f6b3347988f17579ae6a2e758137dd))
* incorrect spans style ([#5539](https://github.com/ajaxorg/ace/issues/5539)) ([65a7f38](https://github.com/ajaxorg/ace/commit/65a7f38713cffb729dab530711351c0a17c5801f))
* not determined folding widgets for html tags ([#5548](https://github.com/ajaxorg/ace/issues/5548)) ([7a51992](https://github.com/ajaxorg/ace/commit/7a5199292f55dfa1a8ea8830ea1a9d98be097161))
* wrong token type ([#5535](https://github.com/ajaxorg/ace/issues/5535)) ([4041489](https://github.com/ajaxorg/ace/commit/4041489bb38ffe609d5f9b43b4a7637e47fc4739))
### [1.33.1](https://github.com/ajaxorg/ace/compare/v1.33.0...v1.33.1) (2024-04-23)
### Bug Fixes
* account for `this.popup` being potentially undefined in completion mousewheel listener ([#5537](https://github.com/ajaxorg/ace/issues/5537)) ([6c3a9a6](https://github.com/ajaxorg/ace/commit/6c3a9a66a7a0ab0dd493ad2c281c9dd343d5301f))
## [1.33.0](https://github.com/ajaxorg/ace/compare/v1.32.9...v1.33.0) (2024-04-12)
### Features
* Make translation system key based and add annotation type to gutter icon aria labels ([#5524](https://github.com/ajaxorg/ace/issues/5524)) ([bb8256d](https://github.com/ajaxorg/ace/commit/bb8256d5a5b5e989e3fb1bb80f326b8564fbbc20))
### Bug Fixes
* Contrast is too low for searched items ([#5523](https://github.com/ajaxorg/ace/issues/5523)) ([507ae2f](https://github.com/ajaxorg/ace/commit/507ae2f872a2b2f1a14fdffbf6530f4046df44c0))
### [1.32.9](https://github.com/ajaxorg/ace/compare/v1.32.8...v1.32.9) (2024-03-29)
### Bug Fixes
* apply class to autocomplete popup for no suggestions state ([#5522](https://github.com/ajaxorg/ace/issues/5522)) ([a66f861](https://github.com/ajaxorg/ace/commit/a66f8619953eecd85833d97715e479d3b211c4cd))
### [1.32.8](https://github.com/ajaxorg/ace/compare/v1.32.7...v1.32.8) (2024-03-22)
### Bug Fixes
* allow completers to trigger on newline characters ([#5519](https://github.com/ajaxorg/ace/issues/5519)) ([6e870fd](https://github.com/ajaxorg/ace/commit/6e870fd08e06be47f9da971743d13b25c41f99c2))
* don't detach completion popup while typing when prefix is empty ([#5517](https://github.com/ajaxorg/ace/issues/5517)) ([7937e53](https://github.com/ajaxorg/ace/commit/7937e53babb9b327902e9dab4b18c04a907883be))
* scroll cursor line to top editor for long inline preview ([#5514](https://github.com/ajaxorg/ace/issues/5514)) ([529473b](https://github.com/ajaxorg/ace/commit/529473b6959d5f7a70ada1d20feb0c87b432f766))
* SwiftHighlightRules exports ([#5516](https://github.com/ajaxorg/ace/issues/5516)) ([f493ab0](https://github.com/ajaxorg/ace/commit/f493ab03bb50fe089c927b7a50a4a327c8dcec4c))
### [1.32.7](https://github.com/ajaxorg/ace/compare/v1.32.6...v1.32.7) (2024-03-01)
### Bug Fixes
* swap blue/red in cloudeditor themes to reduces usage of red ([#5492](https://github.com/ajaxorg/ace/issues/5492)) ([0e8f549](https://github.com/ajaxorg/ace/commit/0e8f549a16481f8bb7573ac9edaae377cb9e3972))
### [1.32.6](https://github.com/ajaxorg/ace/compare/v1.32.5...v1.32.6) (2024-02-07)
### [1.32.5](https://github.com/ajaxorg/ace/compare/v1.32.4...v1.32.5) (2024-01-30)
### [1.32.4](https://github.com/ajaxorg/ace/compare/v1.32.3...v1.32.4) (2024-01-29)
### Bug Fixes
* Improve contrast of completion popup in CloudEditor theme ([#5473](https://github.com/ajaxorg/ace/issues/5473)) ([273c7f1](https://github.com/ajaxorg/ace/commit/273c7f159ded7dc9403266c6501e16a35e4101c6))
* update JSX mode to reflect React JSX ([#5451](https://github.com/ajaxorg/ace/issues/5451)) ([66789a7](https://github.com/ajaxorg/ace/commit/66789a79ce1b7791c65886d8aecddd7efc0415e8))
### [1.32.3](https://github.com/ajaxorg/ace/compare/v1.32.2...v1.32.3) (2023-12-29)
### Bug Fixes
* improve prefixing for inline preview ([#5439](https://github.com/ajaxorg/ace/issues/5439)) ([51006bb](https://github.com/ajaxorg/ace/commit/51006bba9c60b97251ddb04ed74f68ba4e7f6b54))
* update ghost text if on same line popup ([12f4664](https://github.com/ajaxorg/ace/commit/12f466460d7187cfe37593dab1fbe275403fedd3))
* updated red color in cloud-editor dark theme ([#5432](https://github.com/ajaxorg/ace/issues/5432)) ([142b607](https://github.com/ajaxorg/ace/commit/142b607578f5d071a5026691ff6662c11e9f186b))
### [1.32.2](https://github.com/ajaxorg/ace/compare/v1.32.1...v1.32.2) (2023-12-14)
### Bug Fixes
* **themes:** changed the solarized theme primary color from `[#93](https://github.com/ajaxorg/ace/issues/93)A1A1` to `[#839496](https://github.com/ajaxorg/ace/issues/839496)`. ([#5422](https://github.com/ajaxorg/ace/issues/5422)) ([114a5c1](https://github.com/ajaxorg/ace/commit/114a5c163fd875b4fab332dadfadeeae41e4097a)), closes [#93A1A1](https://github.com/ajaxorg/ace/issues/93A1A1)
### [1.32.1](https://github.com/ajaxorg/ace/compare/v1.32.0...v1.32.1) (2023-12-11)
### Bug Fixes
* don't show loading state when empty completer array is provided ([7a8a929](https://github.com/ajaxorg/ace/commit/7a8a92933b3fde75907612d106643d28efa2d776))
* prevent browser scroll while scrolling over the tooltip ([#5414](https://github.com/ajaxorg/ace/issues/5414)) ([c6475c0](https://github.com/ajaxorg/ace/commit/c6475c00bcfa49dde37ef9de06ebba82ba5ba15d))
* switch aria-selected to aria-current for webkit ([#5416](https://github.com/ajaxorg/ace/issues/5416)) ([bf1a4ea](https://github.com/ajaxorg/ace/commit/bf1a4ea607ed09b5a299390dd2daa5c1d0019e00)), closes [#5403](https://github.com/ajaxorg/ace/issues/5403)
* yaml worker errors at undefined row/column ([06cc12a](https://github.com/ajaxorg/ace/commit/06cc12aad98176d931a1c1cf9a701f4ac0c33de5))
## [1.32.0](https://github.com/ajaxorg/ace/compare/v1.31.2...v1.32.0) (2023-11-30)
### Features
* adding CloudEditor theme ([#5404](https://github.com/ajaxorg/ace/issues/5404)) ([b0ee067](https://github.com/ajaxorg/ace/commit/b0ee067fadaf9593ed2207f363a402eb9ab8d57a))
### Bug Fixes
* autocomplete tests ([#5407](https://github.com/ajaxorg/ace/issues/5407)) ([cf6999d](https://github.com/ajaxorg/ace/commit/cf6999d9cb4103df16dc38a8cbfd40ab2a999e6d))
* set completion popup role to 'menu' for safari ([6845905](https://github.com/ajaxorg/ace/commit/684590546746fa2ef090c10c140e01e43974d8f4))
* stop rendering the completion popup disconnected from the editor for long ghost text ([#5401](https://github.com/ajaxorg/ace/issues/5401)) ([94d68a7](https://github.com/ajaxorg/ace/commit/94d68a73042c61a786d253fd0838e62cc5770a31))
* try to scroll inline preview into view ([#5400](https://github.com/ajaxorg/ace/issues/5400)) ([95af560](https://github.com/ajaxorg/ace/commit/95af5608b655259d12cdbc4ca28cf450f9e649c7))
### [1.31.2](https://github.com/ajaxorg/ace/compare/v1.31.1...v1.31.2) (2023-11-15)
### Bug Fixes
* inline preview with loading state ([05db94f](https://github.com/ajaxorg/ace/commit/05db94f53774f64318de757347f7217043744fe6))
### [1.31.1](https://github.com/ajaxorg/ace/compare/v1.31.0...v1.31.1) (2023-10-30)
### Bug Fixes
* improve yaml folding ([5c80e3c](https://github.com/ajaxorg/ace/commit/5c80e3cdd716b4ad26ee6958c9137278530b7816))
## [1.31.0](https://github.com/ajaxorg/ace/compare/v1.30.0...v1.31.0) (2023-10-23)
### Features
* add nasal language ([#5342](https://github.com/ajaxorg/ace/issues/5342)) ([4fff99e](https://github.com/ajaxorg/ace/commit/4fff99e320539a1472ce0512cd1fd3e5fc7f2ca6))
### Bug Fixes
* doc tooltip not filtering properly ([e5034c7](https://github.com/ajaxorg/ace/commit/e5034c7b58fb47fe57b28dbb001e72a567ef9abe))
## [1.30.0](https://github.com/ajaxorg/ace/compare/v1.29.0...v1.30.0) (2023-10-13)
### Features
* Add support for time units in PRQL ([#5324](https://github.com/ajaxorg/ace/issues/5324)) ([8b9175b](https://github.com/ajaxorg/ace/commit/8b9175bc780fade64bed1570fa1cd34d022b337b))
## [1.29.0](https://github.com/ajaxorg/ace/compare/v1.28.0...v1.29.0) (2023-10-09)
### Features
* allow setting completion.ignoreCaption ([5618046](https://github.com/ajaxorg/ace/commit/56180467e12c300850da89cc13c1c8648fb5e342))
## [1.28.0](https://github.com/ajaxorg/ace/compare/v1.27.0...v1.28.0) (2023-09-22)
### Features
* Keep focus on same item in completion popup when slow completer delivers results. ([#5322](https://github.com/ajaxorg/ace/issues/5322)) ([0983134](https://github.com/ajaxorg/ace/commit/09831343ccd450326cffb4b0f26ce3a8b830c7fb))
## [1.27.0](https://github.com/ajaxorg/ace/compare/v1.26.0...v1.27.0) (2023-09-19)
### Features
* Allow not showing inline preview for completers when `inlineEnabled` is set to `true`. ([#5315](https://github.com/ajaxorg/ace/issues/5315)) ([f3e3330](https://github.com/ajaxorg/ace/commit/f3e333041fc1a687b3ce35a44f1bf00bcc15a236))
## [1.26.0](https://github.com/ajaxorg/ace/compare/v1.25.1...v1.26.0) (2023-09-15)
### Features
* Allow to set setSelectOnHover for Autocomplete ([#5317](https://github.com/ajaxorg/ace/issues/5317)) ([dccbcc2](https://github.com/ajaxorg/ace/commit/dccbcc20288a48403f10aa29b6b9b6181dc8a66f))
### Bug Fixes
* Improve PRQL syntax highlightning ([#5313](https://github.com/ajaxorg/ace/issues/5313)) ([7d677f1](https://github.com/ajaxorg/ace/commit/7d677f1019ea5c81f3d9ae36ed1e71ac7a08fb30))
### [1.25.1](https://github.com/ajaxorg/ace/compare/v1.25.0...v1.25.1) (2023-09-14)
## [1.25.0](https://github.com/ajaxorg/ace/compare/v1.24.2...v1.25.0) (2023-09-14)
### Features
* Add syntax highlighting for PRQL ([#5307](https://github.com/ajaxorg/ace/issues/5307)) ([24862cd](https://github.com/ajaxorg/ace/commit/24862cdc83694bbe541c6f8be6fbaaff80d44bf7))
### [1.24.2](https://github.com/ajaxorg/ace/compare/v1.24.1...v1.24.2) (2023-09-08)
### Bug Fixes
* Added project details in index.html file ([#5300](https://github.com/ajaxorg/ace/issues/5300)) ([6e83505](https://github.com/ajaxorg/ace/commit/6e835059dd13e95178b15ce9b06a2f2444c2e731))
* autocompletion threshold doesn't apply to trigger characters ([84bbc88](https://github.com/ajaxorg/ace/commit/84bbc888e1c0304c0160bb19fc46cf5539d079cf))
* Update php_highlight_rules.js ([#5288](https://github.com/ajaxorg/ace/issues/5288)) ([caedd0c](https://github.com/ajaxorg/ace/commit/caedd0cf22d5a7644ceb418562ebcab801011c88))
### [1.24.1](https://github.com/ajaxorg/ace/compare/v1.24.0...v1.24.1) (2023-08-15)
## [1.24.0](https://github.com/ajaxorg/ace/compare/v1.23.4...v1.24.0) (2023-08-09)
### Features
* Add support for Unicode boundaries ([#5265](https://github.com/ajaxorg/ace/issues/5265)) ([1e6fcf3](https://github.com/ajaxorg/ace/commit/1e6fcf349d222715429ddc9fe6a38ec1f6d72ab1))
* Allow more lines in hidden textarea to improve screen reader experience on Windows ([#5225](https://github.com/ajaxorg/ace/issues/5225)) ([bccff5a](https://github.com/ajaxorg/ace/commit/bccff5ae21b86004c2a4ab4a86a989c61e728ebf))
* Cuttlefish mode ([#5278](https://github.com/ajaxorg/ace/issues/5278)) ([9cddf64](https://github.com/ajaxorg/ace/commit/9cddf64ac51fc5e7c5474e7aeaa2ef8f069220db))
### Bug Fixes
* add missing SQL keywords: IS and IN ([#5263](https://github.com/ajaxorg/ace/issues/5263)) ([c731164](https://github.com/ajaxorg/ace/commit/c731164315a757a5e0380f82eeef105a17b24b03))
* bug in lua.lua example file kitchen-sink ([#5258](https://github.com/ajaxorg/ace/issues/5258)) ([6549570](https://github.com/ajaxorg/ace/commit/6549570310983999a1fd3ce52bc5bf8b4004402f))
* support more environments ([#5266](https://github.com/ajaxorg/ace/issues/5266)) ([b196806](https://github.com/ajaxorg/ace/commit/b196806eb2937e7ee56e42b482b7b3bd5e3c9d79))
### [1.23.4](https://github.com/ajaxorg/ace/compare/v1.23.3...v1.23.4) (2023-07-12)
### Bug Fixes
* filterText triggered selection range removal when completions range was present ([#5249](https://github.com/ajaxorg/ace/issues/5249)) ([b586e4d](https://github.com/ajaxorg/ace/commit/b586e4d574bf780fc38f1ac0d034276272b36ad3))
### [1.23.3](https://github.com/ajaxorg/ace/compare/v1.23.2...v1.23.3) (2023-07-10)
### Bug Fixes
* android bug when deleting multiple lines ([#5248](https://github.com/ajaxorg/ace/issues/5248)) ([bd066ff](https://github.com/ajaxorg/ace/commit/bd066ffef88ca74f5ac32349d3e868cfa875a47b)), closes [#5087](https://github.com/ajaxorg/ace/issues/5087)
* update jshint version to 2.13.6; change esversion to target ECMAScript 11 ([#5243](https://github.com/ajaxorg/ace/issues/5243)) ([301aee9](https://github.com/ajaxorg/ace/commit/301aee91b5974d9fb31d646466ed301c5c3b8249))
### [1.23.2](https://github.com/ajaxorg/ace/compare/v1.23.1...v1.23.2) (2023-07-07)
### Bug Fixes
* **autocomplete:** fix a11y violations ([#5241](https://github.com/ajaxorg/ace/issues/5241)) ([decb615](https://github.com/ajaxorg/ace/commit/decb6154198105289170303b7434c524eaf9fda8))
* bug in guttertooltip when `tooltipsFollowsMouse` set to false ([#5217](https://github.com/ajaxorg/ace/issues/5217)) ([67d318e](https://github.com/ajaxorg/ace/commit/67d318ed25d5b45789462850e6b96aac2931591f))
* typo in function name ([#5229](https://github.com/ajaxorg/ace/issues/5229)) ([6e99055](https://github.com/ajaxorg/ace/commit/6e99055c46f443271161e40fe15372d1d8ae9f42))
### [1.23.1](https://github.com/ajaxorg/ace/compare/v1.23.0...v1.23.1) (2023-06-27)
## [1.23.0](https://github.com/ajaxorg/ace/compare/v1.22.1...v1.23.0) (2023-06-21)
### Features
* **autocomplete:** ellipsis is shown when suggestions is longer than popover width ([#5204](https://github.com/ajaxorg/ace/issues/5204)) ([de4234b](https://github.com/ajaxorg/ace/commit/de4234be62be264b78bd4dd19b09cf20fb4d0f28))
* signal gutterkeydown in keyboard accessibility mode ([#5202](https://github.com/ajaxorg/ace/issues/5202)) ([538b18c](https://github.com/ajaxorg/ace/commit/538b18cf86e21c810910d286c820bac399927cd7))
### Bug Fixes
* Fix vite build and webpack warning ([#5192](https://github.com/ajaxorg/ace/issues/5192)) ([e14902e](https://github.com/ajaxorg/ace/commit/e14902e0c2b281346d062d6a5c84d05bd3590fe3))
* gutter tooltip class fix ([#5211](https://github.com/ajaxorg/ace/issues/5211)) ([5bdb944](https://github.com/ajaxorg/ace/commit/5bdb944714e7787632914aeef521e3e5024a1d1f))
* Improve ARIA labelling fold controls ([#5205](https://github.com/ajaxorg/ace/issues/5205)) ([dad5e6f](https://github.com/ajaxorg/ace/commit/dad5e6f6e445b805f7b470ef7892442a83d342e5))
* regression in setting breakpoints on folded lines ([51326eb](https://github.com/ajaxorg/ace/commit/51326ebfe9b3e97925ab1be05246e0f2646c8687))
### [1.22.1](https://github.com/ajaxorg/ace/compare/v1.22.0...v1.22.1) (2023-06-11)
### Bug Fixes
* don't throw unhandled errors in TabstopManager when EditSession becomes `undefined` ([#5193](https://github.com/ajaxorg/ace/issues/5193)) ([cd55932](https://github.com/ajaxorg/ace/commit/cd55932ac7161fcd45e2ee4f1ea8e22b5ff8c3c4))
* include ace-modes to the npm package ([a074fa4](https://github.com/ajaxorg/ace/commit/a074fa41334314169075b66cd77dd2d9a191c73f))
* jsdoc comment foldings ([#5197](https://github.com/ajaxorg/ace/issues/5197)) ([065af41](https://github.com/ajaxorg/ace/commit/065af4175f7c7426c9e8f798a0ec64c390a03259))
## [1.22.0](https://github.com/ajaxorg/ace/compare/v1.21.1...v1.22.0) (2023-05-22)
### Features
* add odin mode ([#5169](https://github.com/ajaxorg/ace/issues/5169)) ([d455e9b](https://github.com/ajaxorg/ace/commit/d455e9b16efb6030a8b0b6c1189b72516b205b40))
### [1.21.1](https://github.com/ajaxorg/ace/compare/v1.21.0...v1.21.1) (2023-05-16)
### Bug Fixes
* console error when hovering over empty gutter cell with tooltipFollowsMouse set to false ([#5173](https://github.com/ajaxorg/ace/issues/5173)) ([5ff8d4c](https://github.com/ajaxorg/ace/commit/5ff8d4cc064ac647a2f40bf977f88b2972ae17ef))
## [1.21.0](https://github.com/ajaxorg/ace/compare/v1.20.0...v1.21.0) (2023-05-15)
### Features
* Custom empty message when no completion found ([#5158](https://github.com/ajaxorg/ace/issues/5158)) ([204aafa](https://github.com/ajaxorg/ace/commit/204aafa04c268e98655fb83b4877302a0f82fa4d))
* Special trigger characters to start autocomplete ([#5147](https://github.com/ajaxorg/ace/issues/5147)) ([c2cfc5a](https://github.com/ajaxorg/ace/commit/c2cfc5a9f1448f64e62f7652c995a48c4ea31ab3))
### Bug Fixes
* command bar command type ([#5168](https://github.com/ajaxorg/ace/issues/5168)) ([64c8253](https://github.com/ajaxorg/ace/commit/64c8253e3cd4348b7ecd3684dae057c8fd5f79b9))
## [1.20.0](https://github.com/ajaxorg/ace/compare/v1.19.0...v1.20.0) (2023-05-10)
### Features
* Add gutter controls to keyboard accessibility mode ([#5146](https://github.com/ajaxorg/ace/issues/5146)) ([5f2face](https://github.com/ajaxorg/ace/commit/5f2face8febe7c260a42bc30c67195f6a5a46085))
* Inline autocomplete tooltip UX redesign ([#5149](https://github.com/ajaxorg/ace/issues/5149)) ([8d56c84](https://github.com/ajaxorg/ace/commit/8d56c841ef980527a1ebe4cf73442766f5f97208))
## [1.19.0](https://github.com/ajaxorg/ace/compare/v1.18.1...v1.19.0) (2023-05-03)
### Features
* publishing generated styling files to ace-code package ([1fa223e](https://github.com/ajaxorg/ace/commit/1fa223e4ca0df16c9a0e0a6df2996fa010189666))
### [1.18.1](https://github.com/ajaxorg/ace/compare/v1.18.0...v1.18.1) (2023-05-03)
### Bug Fixes
* add mode types, improve type definitions ([e22bd5c](https://github.com/ajaxorg/ace/commit/e22bd5c860451c000187941991c0047db4e701a2))
* hide `$getindent` from the SyntaxMode ([2b1c65b](https://github.com/ajaxorg/ace/commit/2b1c65bceb290db74f26a5c59158f93830bc6111))
* remove '$' fields for types that don't require exposing them ([2db9d4e](https://github.com/ajaxorg/ace/commit/2db9d4e88441f2932ce6c6f91e7f5ed36c590d2f))
* remove or update badly formatted declarations ([1e7b022](https://github.com/ajaxorg/ace/commit/1e7b022908cdf6fef0a28419c464874ce6433e6e))
* replaceRange could now be implemented as an instance of the Range interface, rather than being an instance of the Range class ([e1bdccc](https://github.com/ajaxorg/ace/commit/e1bdcccb4ed3179734aa534b37a9dade2e207f07))
* wrong next state in regex state ([c5ed709](https://github.com/ajaxorg/ace/commit/c5ed7092f0151d4aa00c7060ecf0111fc37bfebb))
## [1.18.0](https://github.com/ajaxorg/ace/compare/v1.17.0...v1.18.0) (2023-04-21)
### Features
* marker groups ([#5113](https://github.com/ajaxorg/ace/issues/5113)) ([01d4605](https://github.com/ajaxorg/ace/commit/01d4605c0dcf7bcbb4f1a09a243f7ef6d16d7d43))
* summary of annotations in folded lines ([#5117](https://github.com/ajaxorg/ace/issues/5117)) ([dc63ba9](https://github.com/ajaxorg/ace/commit/dc63ba900d3641284d7d11cbb5ccad7c3039f3a4))
## [1.17.0](https://github.com/ajaxorg/ace/compare/v1.16.0...v1.17.0) (2023-04-12)
### Features
* Add annotation level information to gutter tooltip ([#5101](https://github.com/ajaxorg/ace/issues/5101)) ([3cd28b8](https://github.com/ajaxorg/ace/commit/3cd28b88a51176c791e045f405cdf842916697ab))
* Add option to prevent keyboard focus trapping ([#5114](https://github.com/ajaxorg/ace/issues/5114)) ([fe5d1bf](https://github.com/ajaxorg/ace/commit/fe5d1bfbf0a3432b78a5e503d1db680181ef48b8))
* Add option to use SVG gutter icons ([#5107](https://github.com/ajaxorg/ace/issues/5107)) ([82eb439](https://github.com/ajaxorg/ace/commit/82eb439709773a71515fbe97c4e89890ea77e752))
* add ResizeObserver to make calling editor.resize optional ([51d5e4d](https://github.com/ajaxorg/ace/commit/51d5e4d4308ba98921b1d6ea8cf946d0e17d0a7a))
### Bug Fixes
* adds missing 'on' method for 'guttermousedown' ([7212042](https://github.com/ajaxorg/ace/commit/721204292907549fd4fd02d6672afd2b63d1e168))
* Fix bracket highlighting for brackets in open/close tags ([#5108](https://github.com/ajaxorg/ace/issues/5108)) ([3c149a9](https://github.com/ajaxorg/ace/commit/3c149a97acedd9c9ad52daebaf944aa26534d37f))
* Improves Liquid Support ([#5098](https://github.com/ajaxorg/ace/issues/5098)) ([0ae8dbb](https://github.com/ajaxorg/ace/commit/0ae8dbb0fe017cfb8321307e5bfe5959eb121754))
## [1.16.0](https://github.com/ajaxorg/ace/compare/v1.14.0...v1.16.0) (2023-03-17)
### Features
* Added Editor API to set the ghost text ([#5036](https://github.com/ajaxorg/ace/issues/5036)) ([958d573](https://github.com/ajaxorg/ace/commit/958d57383c4ebfacd414eb817aecc2e0982d1b36))
* Inline autocompletion ([#5084](https://github.com/ajaxorg/ace/issues/5084)) ([eb834a1](https://github.com/ajaxorg/ace/commit/eb834a1f1ca7f922437a90f2f14d935d75f31ac8))
### Bug Fixes
* add updated monospace font for Windows ([#5091](https://github.com/ajaxorg/ace/issues/5091)) ([a981972](https://github.com/ajaxorg/ace/commit/a9819722cec6ff60b028deaa7b70d7fefabac531))
* Added highlighting for TIES keyword introduced in PostgreSQL 13 ([#5033](https://github.com/ajaxorg/ace/issues/5033)) ([9588086](https://github.com/ajaxorg/ace/commit/95880868c2a9912f7c6a2c3942d67fc2a980094e))
* Added lateral keyword introduced in MySQL 8.0.14 ([#5053](https://github.com/ajaxorg/ace/issues/5053)) ([3250956](https://github.com/ajaxorg/ace/commit/32509568010d8b881cc9f1a6d6bd76e6f69360ea))
* editor shadow appears under the selected line background when horizontal scroll is active ([#5020](https://github.com/ajaxorg/ace/issues/5020)) ([ab4f788](https://github.com/ajaxorg/ace/commit/ab4f788455ae182ae133fa202d737efa5461ff79))
* Fix bug with missing token in latex folding ([#5093](https://github.com/ajaxorg/ace/issues/5093)) ([44b3a3e](https://github.com/ajaxorg/ace/commit/44b3a3ef2de40f5cc71c3dedc1ed8d596cfadeec)), closes [#5090](https://github.com/ajaxorg/ace/issues/5090)
* Implement highlight mode for PL/SQL (Oracle) dialect ([#5037](https://github.com/ajaxorg/ace/issues/5037)) ([159aa70](https://github.com/ajaxorg/ace/commit/159aa70d551530f2866fb0006fad37bd75e60dda))
* Improve MySQL highlighting mode ([#5050](https://github.com/ajaxorg/ace/issues/5050)) ([00f6089](https://github.com/ajaxorg/ace/commit/00f60890a36121d7c705445514dcf79a81055f55))
* Option to determine specific prefixes for quote insertion ([#5067](https://github.com/ajaxorg/ace/issues/5067)) ([34e769c](https://github.com/ajaxorg/ace/commit/34e769c5b29a68a3c4201fecc75d1287c99f9d51)), closes [#5063](https://github.com/ajaxorg/ace/issues/5063)
* Remove broken keybinding from vscode mode ([#5032](https://github.com/ajaxorg/ace/issues/5032)) ([68ff964](https://github.com/ajaxorg/ace/commit/68ff964a214cc2da66e4a35b313ff66dd4490e34))
### [1.15.3](https://github.com/ajaxorg/ace/compare/v1.15.2...v1.15.3) (2023-03-02)
### [1.15.2](https://github.com/ajaxorg/ace/compare/v1.15.1...v1.15.2) (2023-02-16)
### [1.15.1](https://github.com/ajaxorg/ace/compare/v1.15.0...v1.15.1) (2023-02-13)
### Bug Fixes
* Added lateral keyword introduced in MySQL 8.0.14 ([#5053](https://github.com/ajaxorg/ace/issues/5053)) ([3250956](https://github.com/ajaxorg/ace/commit/32509568010d8b881cc9f1a6d6bd76e6f69360ea))
* Implement highlight mode for PL/SQL (Oracle) dialect ([#5037](https://github.com/ajaxorg/ace/issues/5037)) ([159aa70](https://github.com/ajaxorg/ace/commit/159aa70d551530f2866fb0006fad37bd75e60dda))
* Improve MySQL highlighting mode ([#5050](https://github.com/ajaxorg/ace/issues/5050)) ([00f6089](https://github.com/ajaxorg/ace/commit/00f60890a36121d7c705445514dcf79a81055f55))
## [1.15.0](https://github.com/ajaxorg/ace/compare/v1.14.0...v1.15.0) (2023-01-25)
### Features
* Added Editor API to set the ghost text ([#5036](https://github.com/ajaxorg/ace/issues/5036)) ([958d573](https://github.com/ajaxorg/ace/commit/958d57383c4ebfacd414eb817aecc2e0982d1b36))
### Bug Fixes
* Added highlighting for TIES keyword introduced in PostgreSQL 13 ([#5033](https://github.com/ajaxorg/ace/issues/5033)) ([9588086](https://github.com/ajaxorg/ace/commit/95880868c2a9912f7c6a2c3942d67fc2a980094e))
* editor shadow appears under the selected line background when horizontal scroll is active ([#5020](https://github.com/ajaxorg/ace/issues/5020)) ([ab4f788](https://github.com/ajaxorg/ace/commit/ab4f788455ae182ae133fa202d737efa5461ff79))
* Remove broken keybinding from vscode mode ([#5032](https://github.com/ajaxorg/ace/issues/5032)) ([68ff964](https://github.com/ajaxorg/ace/commit/68ff964a214cc2da66e4a35b313ff66dd4490e34))
## [1.14.0](https://github.com/ajaxorg/ace/compare/v1.13.1...v1.14.0) (2022-12-12)
### Features
* Autocomplete accessibility features ([#5008](https://github.com/ajaxorg/ace/issues/5008)) ([3b7bb5e](https://github.com/ajaxorg/ace/commit/3b7bb5e4afbad0f2bdbc7f8487442a5cb78b8284))
### Bug Fixes
* Add missing options to `EditorOptions` ([#5003](https://github.com/ajaxorg/ace/issues/5003)) ([451b63f](https://github.com/ajaxorg/ace/commit/451b63f2243762d6de2fc5b9ee8c580c348b933c))
* added GREATEST|LEAST logical functions added in SQL Server 2022 ([#5009](https://github.com/ajaxorg/ace/issues/5009)) ([e3f3e7a](https://github.com/ajaxorg/ace/commit/e3f3e7ab3efe540ac345325f06278a8ab1871371))
* Better ES6 support for JavaScript Mode ([6fb39e3](https://github.com/ajaxorg/ace/commit/6fb39e38c79dd966233e48ed06be800c59c4c101))
* Fix vim keybindings scroll to the selected line ([#4980](https://github.com/ajaxorg/ace/issues/4980)) ([8562f94](https://github.com/ajaxorg/ace/commit/8562f9493e0ebef865064992f0526fdc6df8535a))
* show 2 context characters of a line when moving to it ([#4998](https://github.com/ajaxorg/ace/issues/4998)) ([743190e](https://github.com/ajaxorg/ace/commit/743190ea71841c0186b2f513b3d1e1a9e30d3de3))
* Update ace.d.ts typings for navigate ([#5011](https://github.com/ajaxorg/ace/issues/5011)) ([a302709](https://github.com/ajaxorg/ace/commit/a30270990cc0041edb6985059915f96524ebb154))
### [1.13.2](https://github.com/ajaxorg/ace/compare/v1.13.1...v1.13.2) (2022-12-07)
### Bug Fixes
* Add missing options to `EditorOptions` ([#5003](https://github.com/ajaxorg/ace/issues/5003)) ([451b63f](https://github.com/ajaxorg/ace/commit/451b63f2243762d6de2fc5b9ee8c580c348b933c))
* Better ES6 support for JavaScript Mode ([6fb39e3](https://github.com/ajaxorg/ace/commit/6fb39e38c79dd966233e48ed06be800c59c4c101))
* Fix vim keybindings scroll to the selected line ([#4980](https://github.com/ajaxorg/ace/issues/4980)) ([8562f94](https://github.com/ajaxorg/ace/commit/8562f9493e0ebef865064992f0526fdc6df8535a))
* show 2 context characters of a line when moving to it ([#4998](https://github.com/ajaxorg/ace/issues/4998)) ([743190e](https://github.com/ajaxorg/ace/commit/743190ea71841c0186b2f513b3d1e1a9e30d3de3))
### [1.13.1](https://github.com/ajaxorg/ace/compare/v1.13.0...v1.13.1) (2022-11-16)
### Bug Fixes
* Change curly braces insertion behavior for Markdown to act the same as for other braces ([#4994](https://github.com/ajaxorg/ace/issues/4994)) ([2760234](https://github.com/ajaxorg/ace/commit/2760234d3d8d1acba72a42df7763482655af5ebc))
* incorrect cursor position for very long lines ([#4996](https://github.com/ajaxorg/ace/issues/4996)) ([e57a9d9](https://github.com/ajaxorg/ace/commit/e57a9d9eef0c056cd38a07c77c460bea39cc9551))
## [1.13.0](https://github.com/ajaxorg/ace/compare/v1.12.5...v1.13.0) (2022-11-11)
### Features
* add highlight mode for Apache JEXL ([#4979](https://github.com/ajaxorg/ace/issues/4979)) ([4e8926e](https://github.com/ajaxorg/ace/commit/4e8926ef9f9207e57529e07cdbe2305b09e712e2))
### Bug Fixes
* Add missing options to `VirtualRendererOptions` and `EditorOptions` ([#4983](https://github.com/ajaxorg/ace/issues/4983)) ([19dd2ec](https://github.com/ajaxorg/ace/commit/19dd2ecc178bef2fedd6a53900f2db58ea7a3c23))
* Fix of scroll while interrupting animation ([#4993](https://github.com/ajaxorg/ace/issues/4993)) ([0092f3f](https://github.com/ajaxorg/ace/commit/0092f3f8c1f0d9c8a0b8bebe58cc3517931697b7))
* rare case when document passed to `dom.scrollbarWidth` doesn't have `documentElement` ([#4981](https://github.com/ajaxorg/ace/issues/4981)) ([df44158](https://github.com/ajaxorg/ace/commit/df441585ef44e17a027141e3ceed648e104e9cf9))
### [1.12.5](https://github.com/ajaxorg/ace/compare/v1.12.4...v1.12.5) (2022-11-01)
### Bug Fixes
* enableLiveAutocompletion documentation ([#4976](https://github.com/ajaxorg/ace/issues/4976)) ([987ab76](https://github.com/ajaxorg/ace/commit/987ab7602e06acc9b08c75914f5c1335d5cdc8cc))
* vim "normal" mode brackets highlighting ([0fbc54c](https://github.com/ajaxorg/ace/commit/0fbc54cc5130b0271928995660413ba0fab678cb))
### [1.12.4](https://github.com/ajaxorg/ace/compare/v1.12.3...v1.12.4) (2022-10-31)
### Bug Fixes
* Open valid url under cursor ([#4970](https://github.com/ajaxorg/ace/issues/4970)) ([bf2913a](https://github.com/ajaxorg/ace/commit/bf2913a71624e94d13727115b2aa0ef0c279c89f))
* Update for Csound 6.18.0 ([#4974](https://github.com/ajaxorg/ace/issues/4974)) ([6886b02](https://github.com/ajaxorg/ace/commit/6886b0233e9e1d8d6cce5d3ade7b27fe4527c940))
* update/add missing demo samples ([#4975](https://github.com/ajaxorg/ace/issues/4975)) ([2b8236e](https://github.com/ajaxorg/ace/commit/2b8236eaf1df10caa9ff45a06902df14947cd968))
### [1.12.3](https://github.com/ajaxorg/ace/compare/v1.12.2...v1.12.3) (2022-10-18)
### Bug Fixes
* Fix syntax error in the custom scroll CSS ([#4968](https://github.com/ajaxorg/ace/issues/4968)) ([f2a424a](https://github.com/ajaxorg/ace/commit/f2a424a649f655b9511b1bb6047097634edb0e3f))
### [1.12.2](https://github.com/ajaxorg/ace/compare/v1.12.1...v1.12.2) (2022-10-18)
### Bug Fixes
* custom scrollbar breaks csp mode ([#4967](https://github.com/ajaxorg/ace/issues/4967)) ([be8eb12](https://github.com/ajaxorg/ace/commit/be8eb1236fb7e1d27cedf033d301f094ec6764e5))
* find all in range bug ([13bd553](https://github.com/ajaxorg/ace/commit/13bd55348dc8de5c547c74ec0e48c52b6db96a26))
* Namespace-relative names for php ([#4963](https://github.com/ajaxorg/ace/issues/4963)) ([96e4066](https://github.com/ajaxorg/ace/commit/96e4066341fb7b82d02ad8272929711073d3bfc4))
### [1.12.1](https://github.com/ajaxorg/ace/compare/v1.12.0...v1.12.1) (2022-10-17)
### Bug Fixes
* php worker rules for T_NAME_FULLY_QUALIFIED ([#4960](https://github.com/ajaxorg/ace/issues/4960)) ([52dbb05](https://github.com/ajaxorg/ace/commit/52dbb0577693e29f124a1f16008b4e11e2ce7c02))
* recognisition of uppercase hex numbers for stylus mode ([#4962](https://github.com/ajaxorg/ace/issues/4962)) ([87e0dc7](https://github.com/ajaxorg/ace/commit/87e0dc7b868798300e874e39304aeda18d3d1a76))
## [1.12.0](https://github.com/ajaxorg/ace/compare/v1.11.2...v1.12.0) (2022-10-15)
### Features
* implement BibTeX mode highlighting ([ab9e191](https://github.com/ajaxorg/ace/commit/ab9e1916cb3363260de58b808bdc21fd6bc01618))
### Bug Fixes
* `MockDom's` `ClassList` `toggle` and `contains` methods return `boolean` instead of `void` ([e8c0a1f](https://github.com/ajaxorg/ace/commit/e8c0a1f35d302966626896aaf84b056e76a8e66e))
* change lua version to 5.3 ([#4954](https://github.com/ajaxorg/ace/issues/4954)) ([fc56af5](https://github.com/ajaxorg/ace/commit/fc56af5936a2ebfdfa0871ca6a68ccf7ecc7dbf0))
* documentation for TokenIterator methods ([#4955](https://github.com/ajaxorg/ace/issues/4955)) ([6bff7b4](https://github.com/ajaxorg/ace/commit/6bff7b43c7ad34dd5fafc81c5de773e9d709026d))
* Fixed comment folding bugs for html (xml like languages) ([#4910](https://github.com/ajaxorg/ace/issues/4910)) ([5279a8a](https://github.com/ajaxorg/ace/commit/5279a8a71719bf5c7099db1774a3d9669d9e5694))
* mode change for vim tests ([236a31e](https://github.com/ajaxorg/ace/commit/236a31e5d69fd4fd874b667b38dd1bf0685f75c5))
* php worker rules for `T_NAME_FULLY_QUALIFIED`, `T_NAME_QUALIFIED`, `T_NAME_RELATIVE` namespaced names tokens ([#4948](https://github.com/ajaxorg/ace/issues/4948)) ([059ff71](https://github.com/ajaxorg/ace/commit/059ff7186ac95d38fa11821488c847d3786d3486))
* tools to work with new ace project structure ([7894c4b](https://github.com/ajaxorg/ace/commit/7894c4bbc6da5eb3521efb3b89b1a189202c2497))
### [1.11.2](https://github.com/ajaxorg/ace/compare/v1.11.1...v1.11.2) (2022-09-26)
### Bug Fixes
* Fixed handling surrogare characters in insert, replace, delete mode in Vim ([72fd4b7](https://github.com/ajaxorg/ace/commit/72fd4b7b616f070be198dc8fc437d48a74637a53))
* Fixed handling surrogate characters in insert-after mode in Vim ([38f893a](https://github.com/ajaxorg/ace/commit/38f893a13b1f1dedea4407a8f3ef1d6098873269))
### [1.11.1](https://github.com/ajaxorg/ace/compare/v1.11.0...v1.11.1) (2022-09-23)
### Bug Fixes
* Discrepancy between keywords used by mode-aql.js in the current version and the version used by arangodb ([1503dd0](https://github.com/ajaxorg/ace/commit/1503dd06f2d651d16af964978fb8c62e0304b6d6))
* The editor can be crashed by passing in undefined into the setValue method ([56e6e56](https://github.com/ajaxorg/ace/commit/56e6e56137ea5717009e3687019f64dae7f88da2))
* Update vim mode ([#4933](https://github.com/ajaxorg/ace/issues/4933)) ([3b89ed0](https://github.com/ajaxorg/ace/commit/3b89ed06069cb45edb59b7442b5cc6c15b33cfa4))
## [1.11.0](https://github.com/ajaxorg/ace/compare/v1.10.1...v1.11.0) (2022-09-20)
### Features
* add gutter indicators for annotations; add custom scrollbar to display gutter indicators ([62fb0d8](https://github.com/ajaxorg/ace/commit/62fb0d8fba813241d01356962ed20ac868a29ede))
### Bug Fixes
* change scroll behaviour for `onmousedown` to immediate scroll to point ([392b224](https://github.com/ajaxorg/ace/commit/392b224ceb4e82b4d906c36aef2ea4953e3d440e))
* Do not try apply highlight indent guide if the file is empty ([#4928](https://github.com/ajaxorg/ace/issues/4928)) ([a90ef27](https://github.com/ajaxorg/ace/commit/a90ef275298b524c493076e47aae13036f6e6271))
* restrict annotation mark max height and optimise marks coords on canvas ([a6e2259](https://github.com/ajaxorg/ace/commit/a6e2259eb0a282c62fd9e6fde31d86b6c14ec06d))
### [1.10.1](https://github.com/ajaxorg/ace/compare/v1.10.0...v1.10.1) (2022-09-06)
### Bug Fixes
* prevent javascript snippets file confusing old packagers ([#4917](https://github.com/ajaxorg/ace/issues/4917)) ([5d7b65c](https://github.com/ajaxorg/ace/commit/5d7b65c30aff0106a7001f68ecdf13a23893eaad))
## [1.10.0](https://github.com/ajaxorg/ace/compare/v1.9.6...v1.10.0) (2022-08-31)
### Features
* editor option for indent guide highlighting ([f1f6517](https://github.com/ajaxorg/ace/commit/f1f6517a30d6819d1c8ca045744cdeb2925ccf0a))
### Bug Fixes
* add mock `getHighlightIndentGuides` and `setHighlightIndentGuides` for old tests to work ([4067512](https://github.com/ajaxorg/ace/commit/4067512a72934b23a0866eca33812425c37a7363))
* added "flex-start" and "flex-end" ([#4912](https://github.com/ajaxorg/ace/issues/4912)) ([3e14988](https://github.com/ajaxorg/ace/commit/3e14988209354f94483307f168705690e15adaf5))
* Fix problematic semicolon in CSS media queries ([#4849](https://github.com/ajaxorg/ace/issues/4849)) ([18a459a](https://github.com/ajaxorg/ace/commit/18a459a26430bfa58e0f798c4bacce6a799c77bd))
* more optimal way to accessing an element's list of classes; mark `highlightIndentGuide` as internal property ([855a874](https://github.com/ajaxorg/ace/commit/855a874ffde4824bb8de6e56cb44fad64d49725b))
* strictly equal instead of loosely ([d4c1ab8](https://github.com/ajaxorg/ace/commit/d4c1ab8ef6ee608e2570b7ca6d1d941c5a6628a9))
* Updated Jshint to 2.13.5 ([#4911](https://github.com/ajaxorg/ace/issues/4911)) ([2401fbd](https://github.com/ajaxorg/ace/commit/2401fbd93f0d61cc01150c1071145e974dd6693f))
### [1.9.6](https://github.com/ajaxorg/ace/compare/v1.9.5...v1.9.6) (2022-08-17)
### Bug Fixes
* better way to extract css for csp environments ([1b0612b](https://github.com/ajaxorg/ace/commit/1b0612b5a5ed33a2f1931e4aa08cb2d54ec8585c))
### [1.9.5](https://github.com/ajaxorg/ace/compare/v1.9.4...v1.9.5) (2022-08-10)
### Bug Fixes
* reverted fix build script CSS extract with `options.compress` ([#4894](https://github.com/ajaxorg/ace/issues/4894)) ([8fa4500](https://github.com/ajaxorg/ace/commit/8fa45008887c957bc9c78c65e805e73240f2b33f))
### [1.9.4](https://github.com/ajaxorg/ace/compare/v1.9.2...v1.9.4) (2022-08-09)
### [1.9.3](https://github.com/ajaxorg/ace/compare/v1.9.2...v1.9.3) (2022-08-08)
### [1.9.2](https://github.com/ajaxorg/ace/compare/v1.9.1...v1.9.2) (2022-08-08)
### [1.9.1](https://github.com/ajaxorg/ace/compare/v1.9.0...v1.9.1) (2022-08-08)
## [1.9.0](https://github.com/ajaxorg/ace/compare/v1.8.1...v1.9.0) (2022-08-08)
### Features
* added ability to limit amount of undos/redos ([#4872](https://github.com/ajaxorg/ace/issues/4872)) ([897ee0a](https://github.com/ajaxorg/ace/commit/897ee0a071ef4341338a285a1d9d8781fe5689de))
* publish Ace source code to ace-code NPM package ([#4881](https://github.com/ajaxorg/ace/issues/4881)) ([66cf041](https://github.com/ajaxorg/ace/commit/66cf0418bedf221a507d9a173583538c97885410))
### Bug Fixes
* Fix determination of anonymous code blocks in Postgres Mode (fixes [#4790](https://github.com/ajaxorg/ace/issues/4790)) ([06f7e22](https://github.com/ajaxorg/ace/commit/06f7e2290543ca6566aab56228a8fc8daddfcf55))
* Fixed Ace typings ([23208f2](https://github.com/ajaxorg/ace/commit/23208f2f19020d1f69b90bc3b02460bda8422072))
* Fixed jsDoc annotations ([e15abb4](https://github.com/ajaxorg/ace/commit/e15abb443abfad2de59c620ce49fc5498ce6d33e)), closes [#4879](https://github.com/ajaxorg/ace/issues/4879)
* refactor of kotlin mode to simplify states and resolve incorrect highlights ([a30a99d](https://github.com/ajaxorg/ace/commit/a30a99df731c2f10c2006181ca58a96e7fc21155))
* returned precise highlight for functions params, generics and types ([967aa6b](https://github.com/ajaxorg/ace/commit/967aa6b05c4a69a5deac1b20c297648444ade7d6))
* Rust identifiers normally recognised now; generics highlight support; doc comments support ([#4868](https://github.com/ajaxorg/ace/issues/4868)) ([bbb5800](https://github.com/ajaxorg/ace/commit/bbb5800b4cf56d2996691edc63edc2783e19f427))
### [1.8.1](https://github.com/ajaxorg/ace/compare/v1.8.0...v1.8.1) (2022-07-21)
### Bug Fixes
* prevent race condition when creating css files in build ([1777bfb](https://github.com/ajaxorg/ace/commit/1777bfb7dca4dcaf575293ac9cacbc284f692351))
## [1.8.0](https://github.com/ajaxorg/ace/compare/v1.7.1...v1.8.0) (2022-07-20)
### Features
* Use mini require ([#4845](https://github.com/ajaxorg/ace/issues/4845)) ([b9fabd4](https://github.com/ajaxorg/ace/commit/b9fabd47c0765d40117809cd3978b95d593370fb))
### Bug Fixes
* add undocumented Target command ([62e8e9e](https://github.com/ajaxorg/ace/commit/62e8e9e4d3b21552dd83d454b7fd55d4981d096a)), closes [#4839](https://github.com/ajaxorg/ace/issues/4839)
* added NSIS 3.08 commands ([acad68c](https://github.com/ajaxorg/ace/commit/acad68cf92f5372257b061e300e31f71df9c62e9)), closes [#4838](https://github.com/ajaxorg/ace/issues/4838)
* **bidihandler:** check for undefined before access length property on `splits` variable ([457b657](https://github.com/ajaxorg/ace/commit/457b65748f331740ded529fd7bbd06b86819fa4e))
* correct highlight of php heredoc strings with one word on line ([ae4564c](https://github.com/ajaxorg/ace/commit/ae4564c2961b006ca849625a0dee1093061eba5a))
* Fixed typo in Nord Dark theme. ([#4843](https://github.com/ajaxorg/ace/issues/4843)) ([38bf666](https://github.com/ajaxorg/ace/commit/38bf6663f43be1c45bfba3dc68c4a4820fb2661d))
* Move session.onChange and placeholder.onChange handlers to be first in the change event handler queue ([bcb51f2](https://github.com/ajaxorg/ace/commit/bcb51f2b2a2ba2e1f30ebf543d97e7450574763f))
* reuse `getTargetDir` function ([b89c4db](https://github.com/ajaxorg/ace/commit/b89c4db3424687856ff9c9e732435c35438b0cb9))
* type declarations ([a8830fc](https://github.com/ajaxorg/ace/commit/a8830fc83708a7e51053038f1c6d7fde23e82e9d))
### [1.7.1](https://github.com/ajaxorg/ace/compare/v1.7.0...v1.7.1) (2022-06-29)
### Bug Fixes
* Fixed accessing properties when err is null in onerror handler ([3b62a07](https://github.com/ajaxorg/ace/commit/3b62a0713e68fd76bfa9c52fa2112b56888d2349))
* Uncaught TypeError: Cannot read properties of undefined in worker code ([ce068ac](https://github.com/ajaxorg/ace/commit/ce068ac29f0056f6a10d0fc99181b8ba3e274cfe))
## [1.7.0](https://github.com/ajaxorg/ace/compare/v1.6.1...v1.7.0) (2022-06-28)
### Features
* Add Robot Framework syntax highlighting ([773c0c5](https://github.com/ajaxorg/ace/commit/773c0c5d8b87fabb643d8c1e2053f536c53318e8)), closes [#4614](https://github.com/ajaxorg/ace/issues/4614)
* Added YAML language linter ([451f915](https://github.com/ajaxorg/ace/commit/451f915e645f8a172098316196ae2e029fc26aed)), closes [#3979](https://github.com/ajaxorg/ace/issues/3979)
### Bug Fixes
* Added two tmthemes gruvbox dark (hard) and light (hard) ([6b1e67f](https://github.com/ajaxorg/ace/commit/6b1e67f844056fd238a35094e8f4e4b197e0a9a4)), closes [#3673](https://github.com/ajaxorg/ace/issues/3673)
* adds ignore browserified dir to eslintignore ([56b591b](https://github.com/ajaxorg/ace/commit/56b591b49673fcd062fd53325f74629d4cf45e3f))
* Allow setAnnotations to use custom className ([f505879](https://github.com/ajaxorg/ace/commit/f505879d0463a8b2781e0e7caaaa857444d51f85)), closes [#4362](https://github.com/ajaxorg/ace/issues/4362)
* Avoid substitutions when Webpack was introduced ([a540323](https://github.com/ajaxorg/ace/commit/a540323e933c6bad164bdc9f103d8de744ee1546)), closes [#4476](https://github.com/ajaxorg/ace/issues/4476)
* Highlighting DISTINCT keyword in SQL ([fb3820a](https://github.com/ajaxorg/ace/commit/fb3820a9c1624c49a149d388bf26aa3d504704bb)), closes [#4399](https://github.com/ajaxorg/ace/issues/4399)
* Make sure completions aren't null or undefined ([a78e127](https://github.com/ajaxorg/ace/commit/a78e127e8fd7d724b96208447caa384783616323)), closes [#4608](https://github.com/ajaxorg/ace/issues/4608)
### [1.6.1](https://github.com/ajaxorg/ace/compare/v1.6.0...v1.6.1) (2022-06-24)
### Bug Fixes
* Highlight unicode characters in Python function and class names ([be6f2d1](https://github.com/ajaxorg/ace/commit/be6f2d125a8ffe70ceb336051da6a161ce9cf1bc))
* Incorrect YAML syntax highlighting for version numbers with multiple periods ([049d761](https://github.com/ajaxorg/ace/commit/049d76131e6122f7397fb30cc341db34baaf2813))
* Incorrect YAML syntax highlighting for version numbers with multiple periods [#4827](https://github.com/ajaxorg/ace/issues/4827) ([915fcaf](https://github.com/ajaxorg/ace/commit/915fcaf542469a7dc0e3e7235f23a66a3abaadb9))
## [1.6.0](https://github.com/ajaxorg/ace/compare/v1.5.3...v1.6.0) (2022-06-10)
### Bug Fixes
* Add class to tooltip DOM element distinguish errors from warnings ([#4810](https://github.com/ajaxorg/ace/issues/4810)) ([d2446d6](https://github.com/ajaxorg/ace/commit/d2446d68e7ace4d1a860de6a5a3e5031f074161b))
* Autocomplete stopped working after upgrade to v1.5.2 ([48e6b60](https://github.com/ajaxorg/ace/commit/48e6b601ad5ae03a99a341843194c3854d2376c2))
* Fix css EOF duplicate errors [#4816](https://github.com/ajaxorg/ace/issues/4816) ([48176f6](https://github.com/ajaxorg/ace/commit/48176f66c8ca0dd239968329b471f55b548ee467))
* Fix overflow button for long lines with one token ([#4818](https://github.com/ajaxorg/ace/issues/4818)) ([3f93451](https://github.com/ajaxorg/ace/commit/3f934510514a25c53edf64bb80911a96b7133908))
### [1.5.3](https://github.com/ajaxorg/ace/compare/v1.5.2...v1.5.3) (2022-05-31)
### Bug Fixes
* Colors for variable, function and constant should be different ([#4802](https://github.com/ajaxorg/ace/issues/4802)) ([9e81bda](https://github.com/ajaxorg/ace/commit/9e81bdafc3d563421cae458259d4c4e1b449a237))
### [1.5.2](https://github.com/ajaxorg/ace/compare/v1.5.1...v1.5.2) (2022-05-30)
### Bug Fixes
* Added es6-shim library to fix old browsers ([#4720](https://github.com/ajaxorg/ace/issues/4720)) ([5ba71a0](https://github.com/ajaxorg/ace/commit/5ba71a0b8b0804d8cb385f7b2ee6b63e9bd1c3b8))
* Added mockdom.before method ([#4724](https://github.com/ajaxorg/ace/issues/4724)) ([ffedba3](https://github.com/ajaxorg/ace/commit/ffedba3e18138d7739285d1a9b945d01d384948e))
* Added support for cjs, mjs and log modes ([#4718](https://github.com/ajaxorg/ace/issues/4718)) ([375498a](https://github.com/ajaxorg/ace/commit/375498a12ff28cf955224baf60d242421817220d))
* Adds missed functions into `php_completions.js` ([#4726](https://github.com/ajaxorg/ace/issues/4726)) ([7d5f4b8](https://github.com/ajaxorg/ace/commit/7d5f4b83f3ecc854e70f1508e9247e39ca9de30a))
* Cannot read property of null for bgTokenizer after session is destroyed ([#4713](https://github.com/ajaxorg/ace/issues/4713)) ([d604f52](https://github.com/ajaxorg/ace/commit/d604f52d60e3ec2dced126337ad46a2cf71bf294))
* Do not render selected word markers for the same range multiple times ([#4727](https://github.com/ajaxorg/ace/issues/4727)) ([cd30f59](https://github.com/ajaxorg/ace/commit/cd30f591e40d5286fdabaa9f688f3c6066fbffff))
* Fixed popup CSS styling ([#4728](https://github.com/ajaxorg/ace/issues/4728)) ([045a3e6](https://github.com/ajaxorg/ace/commit/045a3e652ec37b1ab3b716cdf2bc24967a75eb77))
* Fixed scrolling code lenses into view ([#4717](https://github.com/ajaxorg/ace/issues/4717)) ([710b14a](https://github.com/ajaxorg/ace/commit/710b14a7709d7499a4d182ad707b3cbbb6e73a64))
* Multiple improvements for Ace themes ([#4715](https://github.com/ajaxorg/ace/issues/4715)) ([87ad55d](https://github.com/ajaxorg/ace/commit/87ad55daf243bdc619e15fbf220dc5ded235ed4c))
* Only send postMessage through worker if it's defined ([#4722](https://github.com/ajaxorg/ace/issues/4722)) ([2afa4bf](https://github.com/ajaxorg/ace/commit/2afa4bf91bbc99f29bd0a7c1f0adc600af2ceeae))
* Pass additional arguments for command.exec ([#4723](https://github.com/ajaxorg/ace/issues/4723)) ([3b36762](https://github.com/ajaxorg/ace/commit/3b36762c045246efbc2e11eaa08d20a90142d26f))
* Removed focussing after timeout in text input ([#4716](https://github.com/ajaxorg/ace/issues/4716)) ([f8ea48f](https://github.com/ajaxorg/ace/commit/f8ea48f1fe6362696ed30e01030e75c117ce4323))
* Throw invalid delta error if change is out of range and added V2 for worker and worker client ([#4721](https://github.com/ajaxorg/ace/issues/4721)) ([f269889](https://github.com/ajaxorg/ace/commit/f2698895d6617f1c7ebeed14b7ecbb1c5d71bb51))
* Updated ace typings ([#4714](https://github.com/ajaxorg/ace/issues/4714)) ([d5d6f9a](https://github.com/ajaxorg/ace/commit/d5d6f9a32ad443d02aa89d9f140917637f5f52ab))
### [1.5.1](https://github.com/ajaxorg/ace/compare/v1.5.0...v1.5.1) (2022-05-23)
### Bug Fixes
* Correctly tokenize YAML meta tags with non alphabetical characters after multiline string ([#4706](https://github.com/ajaxorg/ace/issues/4706)) ([0164811](https://github.com/ajaxorg/ace/commit/0164811fd95ecae9a46ce6fd7278e9c8b0b48eed))
* Made commas be tokenized as punctuation operator instead of text in JSON ([#4703](https://github.com/ajaxorg/ace/issues/4703)) ([4c4883a](https://github.com/ajaxorg/ace/commit/4c4883a854836b652dbb798b78f207ae4b1924b8))
* Multiple Partiql and Amazon Ion textual notation fixes ([#4686](https://github.com/ajaxorg/ace/issues/4686)) ([bffba8d](https://github.com/ajaxorg/ace/commit/bffba8d934773bc9236d741f1a1ce2237a971b3e))
* PHP syntax fix for AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG ([#4705](https://github.com/ajaxorg/ace/issues/4705)) ([d59c22b](https://github.com/ajaxorg/ace/commit/d59c22b603eaa9d688249a3cc11812e641f25426))
* Python functions should be highlighted as functions ([#4708](https://github.com/ajaxorg/ace/issues/4708)) ([b2aaf1f](https://github.com/ajaxorg/ace/commit/b2aaf1f5644397959bd8c94e9e705da176242edd))
* Updated PHP mode to support PHP8.1 syntax ([#4696](https://github.com/ajaxorg/ace/issues/4696)) ([33cf1c6](https://github.com/ajaxorg/ace/commit/33cf1c66af970edaf7eb0a468276fca249b8a5c8))
## [1.5.0](https://github.com/ajaxorg/ace/compare/v1.4.14...v1.5.0) (2022-05-12)
### Features
* Added ability to configure certain format options for beautify extension ([20275de](https://github.com/ajaxorg/ace/commit/20275de79c40636d27d5ce293cf528c915338fbd))
### Bug Fixes
* Modify syntax ([b78d772](https://github.com/ajaxorg/ace/commit/b78d77240e1909b9d91fcd2ac35a4c17af05f56b))
* Render bidirectional unicode characters as control characters ([#4693](https://github.com/ajaxorg/ace/issues/4693)) ([4d2ecf0](https://github.com/ajaxorg/ace/commit/4d2ecf08afeb1556f2511a1423729c2549802da8))
2022.01.26 Version 1.4.14
- update vim mode
- remove slow regex in beautify extension
2021.09.30 Version 1.4.13
- added useStrictCSP global option to use in environments where dynamic style creation is disabled
see demo/csp.html for an example of a page which loads external css files instead of generating styles with javascript
- updated vim mode, added support for gqq command
2020.07.06 Version 1.4.12
- removed unused es5-shim
- imporved ruby and vbscript highlighting and folding
- workaround for double space being converted to dot on mobile keyboards
2020.04.15 Version 1.4.10
- added workaround for chrome bug causing memory leak after calling editor.destroy
- added code folding support for vbscript mode
2020.04.01 Version 1.4.9
- added option to disable autoindent
- added new language modes
- fixed backspace not working with some mobile keyboards
2020.01.14 Version 1.4.8
- highlight both matched braces, and highlight unmatched brace in red
- improve snippet manager
- compatibility with webpack file-loader v5
- improve vim mode
2019.10.17 Version 1.4.7
- add placeholder option
2019.09.08 Version 1.4.6
- restore native behavior of ctrl-p on mac (jumptomatching command is moved to cmd-\)
- improve snippet manager
- fix backspace handling on mobile
2019.06.17 Version 1.4.5
- improve scrolling and selection on mobile
- improve type definitions
2019.04.24 Version 1.4.4
- add experimental command prompt
- add chrystal, nim and nginx highlight rules
- fix regression in vim mode on ios
2019.02.21 Version 1.4.3
- add sublime keybindings
- add rtl option
- implement ` and < textobjects in vim mode
2018.11.21 Version 1.4.2
- fix regression in vim mode
- improve keyboard input handling on ipad and IE
- add new syntax highlighters
2018.08.07 Version 1.4.1
- fix regression in autocomplete
2018.08.06 Version 1.4.0
- remove usage of innerHTML
- improved handling of textinput for IME and mobile
- add support for relative line numbers
- improve autocompletion popup
2018.03.26 Version 1.3.3
- fix regession in static-highlight extension
- use css animation for cursor blinking
2018.03.21 Version 1.3.2
- add experimental support for using ace-builds with webpack
2018.02.11 Version 1.3.1
- fixed regression with selectionChange event not firing some times
- improved handling of non-ascii characters in vim normal mode
2018.01.31 Version 1.3.0
- added copy copyWithEmptySelection option
- improved undoManager
- improved settings_menu plugin
- improved handling of files with very long lines
- fixed bug with scrolling editor out of view in transformed elements
2017.10.17 Version 1.2.9
- added support for bidirectional text, with monospace font (Alex Shensis)
- added support for emoji 😊
- new language modes
- Red (Toomas Vooglaid)
- CSound (Nathan Whetsell)
- JSSM (John Haugeland)
- New Themes
- Dracula (Austin Schwartz)
2017.07.02 Version 1.2.8
- Fixed small bugs in searchbox and autocompleter
2017.06.18 Version 1.2.7
- Added Support for arrow keys on external IPad keyboard (Emanuele Tamponi)
- added match counter to searchbox extension
* implemented higlighting of multiline strings in yaml mode (Maxim Trushin)
* improved haml syntax highlighter (Andrés Álvarez)
2016.12.03 Version 1.2.6
- Fixed IME handling on new Chrome
- Support for php 7 in the syntax checker
2016.08.16 Version 1.2.5
- Fixed regression in noconflict mode
2016.07.27 Version 1.2.4
- Maintenance release with several new modes and small bugfixes
2016.01.17 Version 1.2.3
- Bugfixes
- fix memory leak in setSession (Tyler Stalder)
- double click not working on linux/mac
- new language modes
- reStructuredText (Robin Jarry)
- NSIS (Jan T. Sott)
2015.10.28 Version 1.2.1
- new language modes
- Swift
- JSX
2015.07.11 Version 1.2.0
- New Features
- Indented soft wrap (danyaPostfactum)
- Rounded borders on selections
- API Changes
- unified delta types `{start, end, action, lines}` (Alden Daniels https://github.com/ajaxorg/ace/pull/1745)
- "change" event listeners on session and editor get delta objects directly
- new language modes
- SQLServer (Morgan Yarbrough)
2015.04.03 Version 1.1.9
- Small Enhancements and Bugfixes
2014.11.08 Version 1.1.8
- API Changes
- `editor.commands.commandKeyBinding` now contains direct map from keys to commands instead of grouping them by hashid
- New Features
- Improved autoindent for html and php modes (Adam Jimenez)
- Find All from searchbox (Colton Voege)
- new language modes
- Elixir, Elm
2014.09.21 Version 1.1.7
- Bugfixes
- fix several bugs in autocompletion
- workaround for inaccurate getBoundingClientRect on chrome 37
2014.08.17 Version 1.1.6
- Bugfixes
- fix regression in double tap to highlight
- Improved Latex Mode (Daniel Felder)
- API Changes
- editor.destroy destroys editor.session too (call editor.setSession(null) to prevent that)
- new language modes
* Praat (José Joaquín Atria)
* Eiffel (Victorien Elvinger)
* G-code (Adam Joseph Cook)
2014.07.09 Version 1.1.5
- Bugfixes
- fix regression in autocomplete popup
- new language modes
* gitignore (Devon Carew)
2014.07.01 Version 1.1.4
- New Features
- Highlight matching tags (Adam Jimenez)
- Improved jump to matching command (Adam Jimenez)
- new language modes
* AppleScript (Yaogang Lian)
* Vala
2014.03.08 Version 1.1.3
- New Features
- Allow syntax checkers to be loaded from CDN (Derk-Jan Hartman)
- Add ColdFusion behavior (Abram Adams)
- add showLineNumbers option
- Add html syntax checker (danyaPostfactum)
- new language modes
- Gherkin (Patrick Nevels)
- Smarty
2013.12.02 Version 1.1.2
- New Features
- Accessibility Theme for Ace (Peter Xiao)
- use snipetManager for expanding emmet snippets
- update jshint to 2.1.4
- improve php syntax checker (jdalegonzalez)
- add option for autoresizing
- add option for autohiding vertical scrollbar
- improvements to highlighting of xml like languages (danyaPostfactum)
- add support for autocompletion and snippets (gjtorikyan danyaPostfactum and others)
- add option to merge similar changes in undo history
- add scrollPastEnd option
- use html5 dragndrop for text dragging (danyaPostfactum)
- API Changes
- fixed typo in HashHandler commmandManager
- new language modes
- Nix (Zef Hemel)
- Protobuf (Zef Hemel)
- Soy
- Handlebars
2013.06.04 Version 1.1.1
- Improved emacs keybindings (Robert Krahn)
- Added markClean, isClean methods to UndoManager (Joonsoo Jeon)
- Do not allow `Toggle comments` command to remove spaces from indentation
- Softer colors for indent guides in dark themes
- new language modes
- Ada
- Assembly_x86
- Cobol
- D
- ejs
- MATLAB
- MySQL
- Twig
- Verilog
2013.05.01, Version 1.1.0
- API Changes
- Default position of the editor container is changed to relative. Add `.ace_editor {position: absolute}` css rule to restore old behavior
- Changed default line-height to `normal` to not conflict with bootstrap. Use `line-height: inherit` for old behavior.
- Changed marker types accepted by session.addMarker. It now accepts "text"|"line"|"fullLine"|"screenLine"
- Internal classnames used by editor were made more consistent
- Introduced `editor.setOption/getOption/setOptions/getOptions` methods
- Introduced positionToIndex, indexToPosition methods
- New Features
- Improved emacs mode (chetstone)
with Incremental search and Occur modes (Robert Krahn)
- Improved ime handling
- Searchbox (Vlad Zinculescu)
- Added elastic tabstops lite extension (Garen Torikian)
- Added extension for whitespace manipulation
- Added extension for enabling spellchecking from contextmenu
- Added extension for displaying available keyboard shortcuts (Matthew Christopher Kastor-Inare III)
- Added extension for displaying options panel (Matthew Christopher Kastor-Inare III)
- Added modelist extension (Matthew Christopher Kastor-Inare III)
- Improved toggleCommentLines and added ToggleCommentBlock command
- `:;` pairing in CSS mode (danyaPostfactum)
- Added suppoert for Delete and SelectAll from context menu (danyaPostfactum)
- Make wrapping behavior optional
- Selective bracket insertion/skipping
- Added commands for increase/decrease numbers, sort lines (Vlad Zinculescu)
- Folding for Markdown, Lua, LaTeX
- Selective bracket insertion/skipping for C-like languages
- Many new languages
- Scheme (Mu Lei)
- Dot (edwardsp)
- FreeMarker (nguillaumin)
- Tiny Mushcode (h3rb)
- Velocity (Ryan Griffith)
- TOML (Garen Torikian)
- LSL (Nemurimasu Neiro, Builders Brewery)
- Curly (Libo Cannici)
- vbScript (Jan Jongboom)
- R (RStudio)
- ABAP
- Lucene (Graham Scott)
- Haml (Garen Torikian)
- Objective-C (Garen Torikian)
- Makefile (Garen Torikian)
- TypeScript (Garen Torikian)
- Lisp (Garen Torikian)
- Stylus (Garen Torikian)
- Dart (Garen Torikian)
- Live syntax checks
- PHP (danyaPostfactum)
- Lua
- New Themes
- Chaos
- Terminal
2012.09.17, Version 1.0.0
- New Features
- Multiple cursors and selections (https://c9.io/site/blog/2012/08/be-an-armenian-warrior-with-block-selection-on-steroids/)
- Fold buttons displayed in the gutter
- Indent Guides
- Completely reworked vim mode (Sergi Mansilla)
- Improved emacs keybindings
- Autoclosing of html tags (danyaPostfactum)
- 20 New language modes
- Coldfusion (Russ)
- Diff
- GLSL (Ed Mackey)
- Go (Davide Saurino)
- Haxe (Jason O'Neil)
- Jade (Garen Torikian)
- jsx (Syu Kato)
- LaTeX (James Allen)
- Less (John Roepke)
- Liquid (Bernie Telles)
- Lua (Lee Gao)
- LuaPage (Choonster)
- Markdown (Chris Spencer)
- PostgreSQL (John DeSoi)
- Powershell (John Kane)
- Sh (Richo Healey)
- SQL (Jonathan Camile)
- Tcl (Cristoph Hochreiner)
- XQuery (William Candillion)
- Yaml (Meg Sharkey)
* Live syntax checks
- for XQuery and JSON
- New Themes
- Ambiance (Irakli Gozalishvili)
- Dreamweaver (Adam Jimenez)
- Github (bootstraponline)
- Tommorrow themes (https://github.com/chriskempson/tomorrow-theme)
- XCode
- Many Small Enhancements and Bugfixes
2011.08.02, Version 0.2.0
- Split view (Julian Viereck)
- split editor area horizontally or vertivally to show two files at the same
time
- Code Folding (Julian Viereck)
- Unstructured code folding
- Will be the basis for language aware folding
- Mode behaviours (Chris Spencer)
- Adds mode specific hooks which allow transformations of entered text
- Autoclosing of braces, paranthesis and quotation marks in C style modes
- Autoclosing of angular brackets in XML style modes
- New language modes
- Clojure (Carin Meier)
- C# (Rob Conery)
- Groovy (Ben Tilford)
- Scala (Ben Tilford)
- JSON
- OCaml (Sergi Mansilla)
- Perl (Panagiotis Astithas)
- SCSS/SASS (Andreas Madsen)
- SVG
- Textile (Kelley van Evert)
- SCAD (Jacob Hansson)
- Live syntax checks
- Lint for CSS using CSS Lint <http://csslint.net/>
- CoffeeScript
- New Themes
- Crimson Editor (iebuggy)
- Merbivore (Michael Schwartz)
- Merbivore soft (Michael Schwartz)
- Solarized dark/light <http://ethanschoonover.com/solarized> (David Alan Hjelle)
- Vibrant Ink (Michael Schwartz)
- Small Features/Enhancements
- Lots of render performance optimizations (Harutyun Amirjanyan)
- Improved Ruby highlighting (Chris Wanstrath, Trent Ogren)
- Improved PHP highlighting (Thomas Hruska)
- Improved CSS highlighting (Sean Kellogg)
- Clicks which cause the editor to be focused don't reset the selection
- Make padding text layer specific so that print margin and active line
highlight are not affected (Irakli Gozalishvili)
- Added setFontSize method
- Improved vi keybindings (Trent Ogren)
- When unfocused make cursor transparent instead of removing it (Harutyun Amirjanyan)
- Support for matching groups in tokenizer with arrays of tokens (Chris Spencer)
- Bug fixes
- Add support for the new OSX scroll bars
- Properly highlight JavaScript regexp literals
- Proper handling of unicode characters in JavaScript identifiers
- Fix remove lines command on last line (Harutyun Amirjanyan)
- Fix scroll wheel sluggishness in Safari
- Make keyboard infrastructure route keys like []^$ the right way (Julian Viereck)
2011.02.14, Version 0.1.6
- Floating Anchors
- An Anchor is a floating pointer in the document.
- Whenever text is inserted or deleted before the cursor, the position of
the cursor is updated
- Usesd for the cursor and selection
- Basis for bookmarks, multiple cursors and snippets in the future
- Extensive support for Cocoa style keybindings on the Mac <https://github.com/ajaxorg/ace/issues/closed#issue/116/comment/767803>
- New commands:
- center selection in viewport
- remove to end/start of line
- split line
- transpose letters
- Refator markers
- Custom code can be used to render markers
- Markers can be in front or behind the text
- Markers are now stored in the session (was in the renderer)
- Lots of IE8 fixes including copy, cut and selections
- Unit tests can also be run in the browser
<https://github.com/ajaxorg/ace/blob/master/lib/ace/test/tests.html>
- Soft wrap can adapt to the width of the editor (Mike Ratcliffe, Joe Cheng)
- Add minimal node server server.js to run the Ace demo in Chrome
- The top level editor.html demo has been renamed to index.html
- Bug fixes
- Fixed gotoLine to consider wrapped lines when calculating where to scroll to (James Allen)
- Fixed isues when the editor was scrolled in the web page (Eric Allam)
- Highlighting of Python string literals
- Syntax rule for PHP comments
2011.02.08, Version 0.1.5
- Add Coffeescript Mode (Satoshi Murakami)
- Fix word wrap bug (Julian Viereck)
- Fix packaged version of the Eclipse mode
- Loading of workers is more robust
- Fix "click selection"
- Allow tokizing empty lines (Daniel Krech)
- Make PageUp/Down behavior more consistent with native OS (Joe Cheng)
2011.02.04, Version 0.1.4
- Add C/C++ mode contributed by Gastón Kleiman
- Fix exception in key input
2011.02.04, Version 0.1.3
- Let the packaged version play nice with requireJS
- Add Ruby mode contributed by Shlomo Zalman Heigh
- Add Java mode contributed by Tom Tasche
- Fix annotation bug
- Changing a document added a new empty line at the end
================================================
FILE: CNAME
================================================
ace.c9.io
================================================
FILE: CODE_OF_CONDUCT.md
================================================
## Code of Conduct
This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct).
For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact
opensource-codeofconduct@amazon.com with any additional questions or comments.
================================================
FILE: CONTRIBUTING.md
================================================
Contributing
------------
Ace is a community project and wouldn't be what it is without contributions! We actively encourage and support contributions. The Ace source code is released under the BSD License. This license is very simple, and is friendly to all kinds of projects, whether open source or not. Take charge of your editor and add your favorite language highlighting and keybindings!
Feel free to fork and improve/enhance Ace any way you want. If you feel that the editor or the Ace community will benefit from your changes, please open a pull request. Do make sure that your changes are covered by test cases to pass the pull request checks which exists inorder to keep ace robust.
Happy coding, Cloud9
================================================
FILE: LICENSE
================================================
Copyright (c) 2010, Ajax.org B.V.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Ajax.org B.V. nor the
names of its contributors may be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: Makefile
================================================
.PHONY : doc build clean dist
pre_build:
git rev-parse HEAD > .git-ref
mkdir -p build/src
mkdir -p build/demo/kitchen-sink
mkdir -p build/textarea/src
cp -r demo/kitchen-sink/styles.css build/demo/kitchen-sink/styles.css
cp demo/kitchen-sink/logo.png build/demo/kitchen-sink/logo.png
cp -r doc/site/images build/textarea
build: pre_build
./Makefile.dryice.js normal
./Makefile.dryice.js demo
# Minimal build: call Makefile.dryice.js only if our sources changed
basic: build/src/ace.js
build/src/ace.js : ${wildcard lib/*} \
${wildcard lib/*/*} \
${wildcard lib/*/*/*} \
${wildcard lib/*/*/*/*} \
${wildcard lib/*/*/*/*/*} \
${wildcard lib/*/*/*/*/*/*}
./Makefile.dryice.js
doc:
cd doc;\
(test -d node_modules && npm update) || npm install;\
node build.js
clean:
rm -rf build
rm -rf ace-*
rm -f ace-*.tgz
ace.tgz: build
mv build ace-`./version.js`/
cp Readme.md ace-`./version.js`/
cp LICENSE ace-`./version.js`/
tar cvfz ace-`./version.js`.tgz ace-`./version.js`/
dist: clean build ace.tgz
================================================
FILE: Makefile.dryice.js
================================================
#!/usr/bin/env node
/* ***** BEGIN LICENSE BLOCK *****
* Distributed under the BSD license:
*
* Copyright (c) 2010, Ajax.org B.V.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* * Neither the name of Ajax.org B.V. nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
* ***** END LICENSE BLOCK ***** */
/*global Buffer, setImmediate*/
var fs = require("fs");
var path = require("path");
var copy = require('architect-build/copy');
var build = require('architect-build/build');
var {
updateDeclarationModuleNames,
generateDeclaration,
SEPARATE_MODULES
} = require('./tool/ace_declaration_generator');
var ACE_HOME = __dirname;
var BUILD_DIR = ACE_HOME + "/build";
var CACHE = {};
function generateAmdModules() {
var root = ACE_HOME + "/";
function iterate(dir) {
var filenames = fs.readdirSync(root + dir);
filenames.forEach(function(name) {
var path = dir + name;
var stat = fs.statSync(root + path);
var newPath = path.replace("src", "lib/ace");
if (stat.isDirectory()) {
try {
fs.mkdirSync(root + newPath);
} catch(e) {}
iterate(path + "/");
} else if (/\.js/.test(name) && !/worker_client\.js$/.test(name)) {
transform(path, newPath);
}
});
}
function transform(path, newPath) {
var data = fs.readFileSync(root + path, "utf-8");
data = "define(function(require, exports, module){"
+ compileTypescript(data)
+"\n});";
fs.writeFileSync(root + newPath, data, "utf-8");
}
function compileTypescript(code) {
var ts = require("typescript");
return ts.transpileModule(code, {
compilerOptions: {
newLine: "lf",
downlevelIteration: true,
suppressExcessPropertyErrors: true,
module: ts.ModuleKind.CommonJS,
removeComments: false,
sourceMap: false,
inlineSourceMap: false,
target: "ES5"
},
fileName: ""
}).outputText;
}
iterate("src/");
}
function main(args) {
if (args.indexOf("updateModes") !== -1) {
return updateModes();
}
var type = "minimal";
args = args.map(function(x) {
if (x[0] == "-" && x[1] != "-")
return "-" + x;
return x;
}).filter(Boolean);
if (args[2] && (args[2][0] != "-" || args[2].indexOf("h") != -1))
type = args[2];
var i = args.indexOf("--target");
if (i != -1 && args[i+1])
BUILD_DIR = args[i+1];
if (args.indexOf("--h") != -1 || args.indexOf("-h") != -1 || args.indexOf("--help") != -1) {
return showHelp();
}
if (type == "css") {
return extractCss();
}
if (type == "nls") {
return extractNls();
}
if (args.indexOf("--reuse") === -1) {
console.log("updating files in lib/ace");
generateAmdModules();
}
if (type == "minimal") {
buildAce({
compress: args.indexOf("--m") != -1,
noconflict: args.indexOf("--nc") != -1,
shrinkwrap: args.indexOf("--s") != -1
});
} else if (type == "normal") {
ace();
} else if (type == "demo") {
demo();
} else if (type == "full") {
ace();
demo();
} else if (type == "highlighter") {
// TODO
}
}
function showHelp(type) {
console.log("--- Ace Dryice Build Tool ---");
console.log("");
console.log("Options:");
console.log(" minimal Places necessary Ace files out in build dir; uses configuration flags below [default]");
console.log(" normal Runs four Ace builds--minimal, minimal-noconflict, minimal-min, and minimal-noconflict-min");
console.log(" demo Runs demo build of Ace");
console.log(" full all of above");
console.log(" highlighter ");
console.log(" css extract css files");
console.log(" nls extract nls messages");
console.log("args:");
console.log(" --target ./path path to build folder");
console.log("flags:");
console.log(" --h print this help");
console.log(" --m minify");
console.log(" --nc namespace require");
console.log(" --s shrinkwrap (combines all output files into one)");
console.log("");
if (type)
console.log(" output for " + type + " generated in " + BUILD_DIR);
}
function ace() {
console.log('# ace License | Readme | Changelog ---------');
copy.file(ACE_HOME + "/build_support/editor.html", BUILD_DIR + "/editor.html");
copy.file(ACE_HOME + "/LICENSE", BUILD_DIR + "/LICENSE");
copy.file(ACE_HOME + "/CHANGELOG.md", BUILD_DIR + "/CHANGELOG.md");
console.log('# ace ---------');
for (var i = 0; i < 4; i++) {
buildAce({compress: i & 2, noconflict: i & 1, check: true});
}
}
function correctDeclarationsForBuild(path, additionalDeclarations) {
var definitions = fs.readFileSync(path, 'utf8');
var newDefinitions = updateDeclarationModuleNames(definitions);
if (additionalDeclarations) {
newDefinitions = newDefinitions + '\n' + additionalDeclarations;
}
if (/ace\.d\.ts$/.test(path)) {
var aceRequire = "$1\n export function require(name: string): any;";
newDefinitions = newDefinitions.replace(/(declare\smodule\s"ace\-builds"\s{)/, aceRequire);
}
fs.writeFileSync(path, newDefinitions);
}
function buildTypes() {
// ace-builds package has different structure and can't use mode types defined for the ace-code.
var paths = fs.readdirSync(BUILD_DIR + '/src-noconflict');
var typeDir = BUILD_DIR + "/types";
if (!fs.existsSync(typeDir)) {
fs.mkdirSync(typeDir);
}
fs.readdirSync(BUILD_DIR + '/src-noconflict/snippets').forEach(function(path) {
paths.push("snippets/" + path);
});
var moduleNameRegex = /^(keybinding)-/;
var pathModules = [
"declare module 'ace-builds/webpack-resolver';",
"declare module 'ace-builds/esm-resolver';",
"declare module 'ace-builds/src-noconflict/ace';"
].concat(paths.map(function(path) {
if (moduleNameRegex.test(path)) {
var moduleName = path.split('.')[0];
return "declare module 'ace-builds/src-noconflict/" + moduleName + "';";
}
}).filter(Boolean)).join("\n") + "\n";
fs.copyFileSync(ACE_HOME + '/ace-internal.d.ts', BUILD_DIR + '/ace.d.ts');
generateDeclaration(BUILD_DIR + '/ace.d.ts');
fs.copyFileSync(ACE_HOME + '/ace-modes.d.ts', BUILD_DIR + '/ace-modes.d.ts');
correctDeclarationsForBuild(BUILD_DIR + '/ace.d.ts', pathModules);
correctDeclarationsForBuild(BUILD_DIR + '/ace-modes.d.ts');
let allModules = SEPARATE_MODULES;
allModules.push("modules"); // core modules
allModules.forEach(function (key) {
let fileName = '/ace-' + key + '.d.ts';
fs.copyFileSync(ACE_HOME + '/types' + fileName, BUILD_DIR + '/types' + fileName);
correctDeclarationsForBuild(BUILD_DIR + '/types' + fileName);
});
var esmUrls = [];
var loader = paths.map(function(path) {
if (/\.js$/.test(path) && !/^ace\.js$/.test(path)) {
var moduleName = path.split('.')[0].replace(/-/, "/");
if (/^worker/.test(moduleName))
moduleName = "mode" + moduleName.slice(6) + "_worker";
moduleName = moduleName.replace(/keybinding/, "keyboard");
esmUrls.push("ace.config.setModuleLoader('ace/" + moduleName + "', () => import('./src-noconflict/" + path + "'));");
return "ace.config.setModuleUrl('ace/" + moduleName + "', require('file-loader?esModule=false!./src-noconflict/" + path + "'));";
}
}).join('\n');
var esmLoader = esmUrls.join('\n');
fs.writeFileSync(BUILD_DIR + '/webpack-resolver.js', loader, "utf8");
fs.writeFileSync(BUILD_DIR + '/esm-resolver.js', esmLoader, "utf8");
}
function demo() {
console.log('# kitchen sink ---------');
var version = "", ref = "";
try {
version = JSON.parse(fs.readFileSync(ACE_HOME + "/package.json")).version;
ref = fs.readFileSync(ACE_HOME + "/.git-ref").toString();
} catch(e) {}
function changeComments(data) {
return (data
.replace("doc/site/images/ace-logo.png", "demo/kitchen-sink/ace-logo.png")
.replace(/<!\-\-DEVEL[\d\D]*?DEVEL\-\->/g, "")
.replace(/PACKAGE\-\->|<!\-\-PACKAGE/g, "")
.replace(/\/\*DEVEL[\d\D]*?DEVEL\*\//g, "")
.replace(/PACKAGE\*\/|\/\*PACKAGE/g, "")
.replace("%version%", version)
.replace("%commit%", ref)
);
}
require("rimraf").sync(BUILD_DIR + "/demo/kitchen-sink/docs/");
copy(ACE_HOME +"/demo/kitchen-sink/docs/", BUILD_DIR + "/demo/kitchen-sink/docs/");
copy.file(ACE_HOME + "/demo/kitchen-sink/logo.png", BUILD_DIR + "/demo/kitchen-sink/logo.png");
copy.file(ACE_HOME + "/demo/kitchen-sink/styles.css", BUILD_DIR + "/demo/kitchen-sink/styles.css");
copy.file(ACE_HOME + "/kitchen-sink.html", BUILD_DIR + "/kitchen-sink.html", changeComments);
buildSubmodule({}, {
require: ["kitchen-sink/demo"],
projectType: "demo"
}, BUILD_DIR + "/demo/kitchen-sink/demo");
copy(ACE_HOME + "/demo/", BUILD_DIR + "/demo/", {
shallow: true,
exclude: /\s|requirejs/,
include: /\.(js|html)$/,
replace: function(source) {
if (!/^\s*</.test(source))
return source;
var removeRequireJS;
source = source.replace(/<script src="kitchen-sink\/require.js"[\s\S]+?require\(\[([^\]]+).*/, function(e, m) {
removeRequireJS = true;
var scripts = m.split(/,\s*/);
var result = [];
function comment(str) {result.push("<!-- " + str + " -->");}
function script(str) {result.push('<script src="../src/' + str + '.js"></script>');}
scripts.forEach(function(s) {
s = s.replace(/"/g, "");
if (s == "ace/ace") {
comment("load ace");
script("ace");
} else {
var extName = s.match(/[^/]*$/)[0];
comment("load ace " + extName + " extension");
script("ext-" + extName);
}
});
result.push("<script>");
return result.join("\n");
});
if (removeRequireJS) {
source = source.replace(/\s*\}\);?\s*(<\/script>)/, "\n$1");
source = source.replace(/( |^)require\(/gm, "$1ace.require(");
}
source = source.replace(/"\.\.\/build\//g, function(e) {
return '"../';
});
return source;
}
});
}
function jsFileList(path, filter) {
path = ACE_HOME + "/" + path;
if (!filter)
filter = /_test/;
return fs.readdirSync(path).map(function(x) {
if (x.slice(-3) == ".js" && !filter.test(x) && !/\s|BASE|(\b|_)dummy(\b|_)|[\-\.]css\.js$/.test(x))
return x.slice(0, -3);
}).filter(Boolean);
}
function searchFiles(dir, fn) {
var files = fs.readdirSync(dir);
files.forEach(function(name) {
var path = dir + "/" + name;
try {
var stat = fs.statSync(path);
} catch (e) {
return;
}
if (stat.isFile() && /\.js$/.test(path)) {
fn(path);
} else if (stat.isDirectory()) {
if (/node_modules|[#\s]/.test(name)) return;
searchFiles(path, fn);
}
});
}
function workers(path) {
return jsFileList(path).map(function(x) {
if (x.slice(-7) == "_worker")
return x.slice(0, -7);
}).filter(function(x) { return !!x; });
}
function modeList(path) {
path = path || "lib/ace/mode";
return jsFileList(path, /_highlight_rules|_test|_worker|xml_util|_outdent|behaviour|completions/);
}
function buildAceModule(opts, callback) {
// calling buildAceModuleInternal many times in parallel is slow, so we use queue
if (!buildAceModule.queue) {
buildAceModule.queue = [];
buildAceModule.dequeue = function() {
if (buildAceModule.running) return;
var call = buildAceModule.queue.shift();
buildAceModule.running = call;
if (call) {
setImmediate(function() {
buildAceModuleInternal.apply(null, call);
});
}
};
}
buildAceModule.queue.push([opts, function(err, result) {
callback && callback(err, result);
buildAceModule.running = null;
buildAceModule.dequeue();
}]);
if (!buildAceModule.running) {
buildAceModule.dequeue();
} else {
process.nextTick(buildAceModule.dequeue);
}
}
function buildAceModuleInternal(opts, callback) {
var cache = opts.cache == undefined ? CACHE : opts.cache;
var key = opts.require + "|" + opts.projectType;
if (cache && cache.configs && cache.configs[key])
return write(null, cache.configs[key]);
var pathConfig = {
paths: {
ace: ACE_HOME + "/lib/ace",
"kitchen-sink": ACE_HOME + "/demo/kitchen-sink",
build_support: ACE_HOME + "/build_support"
},
root: ACE_HOME
};
function write(err, result) {
if (cache && key && !(cache.configs && cache.configs[key])) {
cache.configs = cache.configs || Object.create(null);
cache.configs[key] = result;
result.sources = result.sources.map(function(pkg) {
return {deps: pkg.deps};
});
}
if (!opts.outputFile)
return callback(err, result);
var code = result.code;
if (opts.compress) {
if (!result.codeMin)
result.codeMin = compress(result.code);
code = result.codeMin;
}
var targetDir = getTargetDir(opts);
var to = /^([\\/]|\w:)/.test(opts.outputFile)
? opts.outputFile
: path.join(opts.outputFolder || targetDir, opts.outputFile);
var filters = [];
var ns = opts.ns || "ace";
if (opts.filters)
filters = filters.concat(opts.filters);
if (opts.noconflict)
filters.push(namespace(ns));
var projectType = opts.projectType;
if (projectType !== "worker") {
filters.push(exportAce(ns, opts.require[0],
opts.noconflict ? ns : "", projectType !== "main"));
}
filters.push(normalizeLineEndings);
filters.forEach(function(f) { code = f(code); });
build.writeToFile({code: code}, {
outputFolder: path.dirname(to),
outputFile: path.basename(to)
}, function() {});
callback && callback(err, result);
}
build(opts.require, {
cache: cache,
quiet: opts.quiet,
pathConfig: pathConfig,
additional: opts.additional,
enableBrowser: true,
keepDepArrays: opts.noconflict || opts.projectType == "worker" ? "" : "all",
noArchitect: true,
compress: false,
ignore: opts.ignore || [],
withRequire: false,
basepath: ACE_HOME,
transforms: [wrapCJS, normalizeLineEndings, includeLoader],
afterRead: [optimizeTextModules]
}, write);
}
function buildCore(options, extra, callback) {
options = extend(extra, options);
options.additional = [{
id: "build_support/mini_require",
order: -1000,
literal: true
}];
options.require =["ace/ace", "ace/loader_build"];
options.projectType = "main";
options.ns = "ace";
buildAceModule(options, callback);
}
function buildSubmodule(options, extra, file, callback) {
options = extend(extra, options);
getLoadedFileList(options, function(coreFiles) {
options.outputFile = file + ".js";
options.ignore = options.ignore || coreFiles;
options.quiet = true;
buildAceModule(options, callback);
});
}
function buildAce(options, callback) {
var snippetFiles = jsFileList("lib/ace/snippets");
var modeNames = modeList();
buildCore(options, {outputFile: "ace.js"}, addCb());
// modes
modeNames.forEach(function(name) {
buildSubmodule(options, {
projectType: "mode",
require: ["ace/mode/" + name]
}, "mode-" + name, addCb());
});
// snippets
modeNames.forEach(function(name) {
buildSubmodule(options, {
require: ["ace/snippets/" + name]
}, "snippets/" + name, addCb());
});
// themes
jsFileList("lib/ace/theme").forEach(function(name) {
buildSubmodule(options, {
projectType: "theme",
require: ["ace/theme/" + name]
}, "theme-" + name, addCb());
});
// keybindings
["vim", "emacs", "sublime", "vscode"].forEach(function(name) {
buildSubmodule(options, {
projectType: "keybinding",
require: ["ace/keyboard/" + name ]
}, "keybinding-" + name, addCb());
});
// extensions
jsFileList("lib/ace/ext").forEach(function(name) {
buildSubmodule(options, {
projectType: "ext",
require: ["ace/ext/" + name]
}, "ext-" + name, addCb());
});
// workers
workers("lib/ace/mode").forEach(function(name) {
buildSubmodule(options, {
projectType: "worker",
require: ["ace/mode/" + name + "_worker"],
ignore: [],
additional: [{
id: "ace/worker/worker",
transforms: [wrapCJS],
order: -1000
}]
}, "worker-" + name, addCb());
});
// worker base
buildSubmodule(options, {
projectType: "worker",
require: ["ace/worker/mirror"],
ignore: [],
additional: [{
id: "ace/worker/worker",
transforms: [wrapCJS],
order: -1000
}]
}, "worker-base", addCb());
//
function addCb() {
addCb.count = (addCb.count || 0) + 1;
return done;
}
function done() {
if (--addCb.count > 0)
return;
if (options.check)
sanityCheck(options, callback);
if (options.noconflict && !options.compress)
buildTypes();
// call extractCss only once during a build
if (cssUpdated) {
console.log("Finished building " + getTargetDir(options));
return;
} else {
cssUpdated = true;
extractCss(function() {
if (callback)
return callback();
console.log("Finished building " + getTargetDir(options));
});
}
}
}
var cssUpdated = false;
function extractCss(callback) {
var images = {};
var cssImports = {};
var fileName = "";
var extensions = jsFileList("src/ext");
var keybinding = jsFileList("src/keyboard");
var themes = jsFileList("src/theme");
var dom = require("./src/lib/dom");
var index = 0;
dom.importCssString = function(value, id) {
if (!id) id = fileName + (index++);
cssImports[id] = value;
};
var loadFile = function(path) {
fileName = path;
require(path);
};
themes.forEach(function(name) {
cssImports = {};
loadFile("./src/theme/" + name);
delete require.cache[require.resolve("./src/theme/" + name)];
var themeCss = "";
for (var i in cssImports) {
themeCss += cssImports[i];
}
themeCss = extractImages(themeCss, name, "..");
build.writeToFile({code: themeCss}, {
outputFolder: BUILD_DIR + "/css/theme",
outputFile: name + ".css"
}, function() {});
});
cssImports = {};
loadFile("./src/ace");
extensions.forEach(function(name) {
loadFile("./src/ext/" + name);
});
keybinding.forEach(function(name) {
loadFile("./src/keyboard/" + name);
});
var css = "";
for (var i in cssImports) {
css += "\n/*" + i + "*/";
css += "\n" + cssImports[i];
}
css = extractImages(css, "main", ".").replace(/^\s*/gm, "");
build.writeToFile({code: css}, {
outputFolder: BUILD_DIR + "/css",
outputFile: "ace.css"
}, function() {
saveImages();
callback && callback();
});
function extractImages(css, name, directory) {
var imageCounter = 0;
return css.replace(
/url\(\s*"data:([^"\\]|\\.)+"\s*\)|url\(\s*'data:([^'\\]|\\.)+'\s*\)|url\(data:[^)]+\)/g,
function(url) {
var data = url.slice(4, -1).trim();
if (/["']/.test(data[0])) {
data = data.slice(1, -1).replace(/\\(.)/g, "$1");
}
data = data.slice(5);
var i = data.indexOf(",");
if (i == -1) {
console.error(url);
return url;
}
var buffer = Buffer.from(data.slice(i + 1), "base64");
imageCounter++;
var imageName;
if (/^image\/svg\+xml/.test(data))
imageName = name + "-" + imageCounter + ".svg";
else
imageName = name + "-" + imageCounter + ".png";
images[imageName] = buffer;
return "url(\"" + directory + "/" + imageName + "\")";
}
);
}
function saveImages() {
for (var imageName in images) {
fs.writeFileSync(BUILD_DIR + "/css/" + imageName, images[imageName]);
}
}
}
function extractNls() {
var defaultData = require(__dirname + "/src/lib/default_english_messages").defaultEnglishMessages;
searchFiles(__dirname + "/src", function(path) {
if (/_test/.test(path)) return;
var text = fs.readFileSync(path, "utf8");
var matches = text.match(/nls\s*\(\s*("([^"\\]|\\.)+"|'([^'\\]|\\.)+'),\s*("([^"\\]|\\.)+"|'([^'\\]|\\.)+')/g);
matches && matches.forEach(function(m) {
var match = m.match(/("([^"\\]|\\.)+"|'([^'\\]|\\.)+)/g);
var key = match[0].replace(/["']|["']$/g, "");
var defaultString = match[1].replace(/["']|["']$/g, "");
// If the key not yet in the default file, add it:
if (defaultData[key] !== undefined) return;
defaultData[key] = defaultString;
});
});
fs.writeFileSync(__dirname + "/src/lib/default_english_messages.js", "var defaultEnglishMessages = " + JSON.stringify(defaultData, null, 4) + "\n\nexports.defaultEnglishMessages = defaultEnglishMessages;", "utf8");
fs.readdirSync(__dirname + "/translations").forEach(function(x) {
if (!/\.json$/.test(x)) return;
var path = __dirname + "/translations/" + x;
var existingStr = fs.readFileSync(path, "utf8");
var existing = JSON.parse(existingStr);
for (var i in defaultData) {
existing[i] = existing[i] || "";
}
fs.writeFileSync(path, JSON.stringify(existing, null, 4), "utf8");
console.log("Saved " + x);
});
}
function getLoadedFileList(options, callback, result) {
if (!result) {
return buildCore({}, {}, function(e, result) {
getLoadedFileList(options, callback, result);
});
}
var deps = Object.create(null);
result.sources.forEach(function(pkg) {
pkg.deps && pkg.deps.forEach(function(p) {
if (!deps[p]) deps[p] = 1;
});
});
if (options.projectType == "theme")
delete deps["ace/theme/textmate"];
deps["ace/ace"] = 1;
callback(Object.keys(deps));
}
function normalizeLineEndings(module) {
if (typeof module == "string")
module = {source: module};
return module.source = module.source.replace(/\r\n/g, "\n");
}
function includeLoader(module) {
var pattern = '"include loader_build";';
if (module.source && module.source.indexOf(pattern) != -1) {
module.deps.push("ace/loader_build");
module.source = module.source.replace(pattern, 'require("./loader_build")(exports)');
}
}
function optimizeTextModules(sources) {
var textModules = {};
return sources.filter(function(pkg) {
if (!pkg.id) {
return true;
}
else if (pkg.id.indexOf("text!") > -1) {
detectTextModules(pkg);
return false;
}
else {
pkg.source = rewriteTextImports(pkg.source, pkg.deps);
return true;
}
}).map(function(pkg) {
if (pkg && pkg.deps) {
pkg.deps = pkg.deps && pkg.deps.filter(function(p) {
return p.indexOf("text!") == -1;
});
}
return pkg;
});
function rewriteTextImports(text, deps) {
return text.replace(/ require\(['"](?:ace|[.\/]+)\/requirejs\/text!(.*?)['"]\)/g, function(_, call) {
if (call) {
var dep;
deps.some(function(d) {
if (d.split("/").pop() == call.split("/").pop()) {
dep = d;
return true;
}
});
call = textModules[dep];
if (call)
return " " + call;
}
});
}
function detectTextModules(pkg) {
var input = pkg.source.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
if (/\.css$/.test(pkg.id)) {
// remove unnecessary whitespace from css
input = input.replace(/\n\s+/g, "\n");
input = '"' + input.replace(/\n/g, '\\\n') + '"';
} else {
// but don't break other files!
input = '"' + input.replace(/\n/g, '\\n\\\n') + '"';
}
textModules[pkg.id] = input;
}
}
function namespace(ns) {
return function(text) {
text = text
.toString()
.replace(/ACE_NAMESPACE\s*=\s*""/, 'ACE_NAMESPACE = "' + ns +'"')
.replace(/\bdefine\(/g, function(def, index, source) {
if (/(^|[;}),])\s*$/.test(source.slice(0, index)))
return ns + "." + def;
return def;
});
return text;
};
}
function exportAce(ns, modules, requireBase, extModules) {
requireBase = requireBase || "window";
return function(text) {
/*globals REQUIRE_NS, MODULES, self*/
var template = function() {
(function() {
REQUIRE_NS.require(MODULES, function(a) {
if (a) {
a.config.init(true);
a.define = REQUIRE_NS.define;
}
var global = (function () {
return this;
})();
if (!global && typeof window != "undefined") global = window; // can happen in strict mode
if (!global && typeof self != "undefined") global = self; // can happen in webworker
if (!global.NS)
global.NS = a;
for (var key in a) if (a.hasOwnProperty(key))
global.NS[key] = a[key];
global.NS["default"] = global.NS;
if (typeof module == "object" && typeof exports == "object" && module) {
module.exports = global.NS;
}
});
})();
};
if (extModules) {
template = function() {
(function() {
REQUIRE_NS.require(MODULES, function(m) {
if (typeof module == "object" && typeof exports == "object" && module) {
module.exports = m;
}
});
})();
};
}
text = text.replace(/function init\(packaged\) {/, "init(true);$&\n");
if (typeof modules == "string")
modules = [modules];
return (text.replace(/;\s*$/, "") + ";" + template
.toString()
.replace(/MODULES/g, JSON.stringify(modules))
.replace(/REQUIRE_NS/g, requireBase)
.replace(/NS/g, ns)
.slice(13, -1)
);
};
}
function updateModes() {
modeList().forEach(function(m) {
var filepath = __dirname + "/lib/ace/mode/" + m + ".js";
var source = fs.readFileSync(filepath, "utf8");
if (!/this.\$id\s*=\s*"/.test(source))
source = source.replace(/\n([ \t]*)(\}\).call\(\w*Mode.prototype\))/, '\n$1 this.$id = "";\n$1$2');
source = source.replace(/(this.\$id\s*=\s*)"[^"]*"/, '$1"ace/mode/' + m + '"');
fs.writeFileSync(filepath, source, "utf8");
});
}
function generateThemesModule(themes) {
var themelist = [
'define(function(require, exports, module) {',
'\n\nmodule.exports.themes = ' + JSON.stringify(themes, null, ' '),
';\n\n});'
].join('');
fs.writeFileSync(__dirname + '/lib/ace/ext/themelist_utils/themes.js', themelist, 'utf8');
}
function wrapCJS(module) {
if (module.loaderModule || module.noRequire || module.literal) return;
module.source = module.source.replace(/^#.*\n/, "");
if (!isCJS(module.source)) return;
module.source = `define(function(require, exports, module) {${module.source}\n});`;
}
function isCJS(source) {
var firstDefineCall = source.match(/define\(\s*[^)]*/);
if (firstDefineCall) {
// check if it is a normal define or some crazy umd trick
if (/define\(\s*(function\s*\(|{)/.test(firstDefineCall[0])) return;
if (/define\(\s*\[[^\]]*\],\s*\(?function\(/.test(firstDefineCall[0])) return;
if (/typeof define/.test(source)) return;
}
if (/"no use strict"/.test(source)) return;
return true;
}
function compress(text) {
var uglify = require("dryice").copy.filter.uglifyjs;
uglify.options.mangle_toplevel = {except: ["ACE_NAMESPACE", "requirejs"]};
uglify.options.beautify = {ascii_only: true, inline_script: true};
return asciify(uglify(text));
// copy.filter.uglifyjs.options.ascii_only = true; doesn't work with some uglify.js versions
function asciify(text) {
return text.replace(/[\x00-\x08\x0b\x0c\x0e\x19\x80-\uffff]/g, function(c) {
c = c.charCodeAt(0).toString(16);
if (c.length == 1)
return "\\x0" + c;
if (c.length == 2)
return "\\x" + c;
if (c.length == 3)
return "\\u0" + c;
return "\\u" + c;
});
}
}
function extend(base, extra) {
Object.keys(extra).forEach(function(k) {
base[k] = extra[k];
});
return base;
}
function getTargetDir(opts) {
var targetDir = BUILD_DIR + "/src";
if (opts.compress)
targetDir += "-min";
if (opts.noconflict)
targetDir += "-noconflict";
return targetDir;
}
function sanityCheck(opts, callback) {
var targetDir = getTargetDir(opts);
require("child_process").execFile(process.execPath, ["-e", "(" + function() {
window = global;
require("./ace");
if (typeof ace.edit != "function")
process.exit(1);
require("fs").readdirSync(".").forEach(function(p) {
if (!/ace\.js$/.test(p) && /\.js$/.test(p))
require("./" + p);
});
process.exit(0);
} + ")()"], {
cwd: targetDir
}, function(err, stdout) {
if (callback) return callback(err, stdout);
if (err)
throw err;
});
}
if (!module.parent)
main(process.argv);
else {
exports.buildAce = buildAce;
exports.jsFileList = jsFileList;
exports.modeList = modeList;
}
================================================
FILE: Readme.md
================================================
Ace (Ajax.org Cloud9 Editor)
============================
[](https://github.com/ajaxorg/ace/actions)
[](https://www.npmjs.com/package/ace-builds)
_Note_: The new site at http://ace.c9.io contains all the info below along with an embedding guide and all the other resources you need to get started with Ace.
Ace is a standalone code editor written in JavaScript. Our goal is to create a browser based editor that matches and extends the features, usability and performance of existing native editors such as TextMate, Vim or Eclipse. It can be easily embedded in any web page or JavaScript application. Ace is developed as the primary editor for [Cloud9 IDE](https://c9.io/) and the successor of the Mozilla Skywriter (Bespin) Project.
Features
--------
* Syntax highlighting for over 120 languages (TextMate/Sublime/_.tmlanguage_ files can be imported)
* Over 20 themes (TextMate/Sublime/_.tmtheme_ files can be imported)
* Automatic indent and outdent
* An optional command line
* Handles huge documents (at last check, 4,000,000 lines is the upper limit)
* Fully customizable key bindings including vim and Emacs modes
* Search and replace with regular expressions
* Highlight matching parentheses
* Toggle between soft tabs and real tabs
* Displays hidden characters
* Drag and drop text using the mouse
* Line wrapping
* Code folding
* Multiple cursors and selections
* Live syntax checker (currently JavaScript/CoffeeScript/CSS/XQuery)
* Cut, copy, and paste functionality
Take Ace for a spin!
--------------------
Check out the Ace live [demo](http://ace.c9.io/build/kitchen-sink.html) or get a [Cloud9 IDE account](https://c9.io/) to experience Ace while editing one of your own GitHub projects.
If you want, you can use Ace as a textarea replacement thanks to the [Ace Bookmarklet](http://ajaxorg.github.io/ace/build/demo/bookmarklet/index.html).
Embedding Ace
-------------
Ace can be easily embedded into any existing web page. You can either use one of pre-packaged versions of [ace](https://github.com/ajaxorg/ace-builds/) (just copy one of `src*` subdirectories somewhere into your project), or use requireJS to load contents of [lib/ace](https://github.com/ajaxorg/ace/tree/master/lib/ace) as `ace`
The easiest version is simply:
```html
<div id="editor">some text</div>
<script src="src/ace.js" type="text/javascript" charset="utf-8"></script>
<script>
var editor = ace.edit("editor");
</script>
```
*Exploring configuration options [Configuring-Ace](https://github.com/ajaxorg/ace/wiki/Configuring-Ace/)*
With "editor" being the id of the DOM element, which should be converted to an editor. Note that this element must be explicitly sized and positioned `absolute` or `relative` for Ace to work. e.g.
```css
#editor {
position: absolute;
width: 500px;
height: 400px;
}
```
To change the theme simply include the Theme's JavaScript file
```html
<script src="src/theme-twilight.js" type="text/javascript" charset="utf-8"></script>
```
and configure the editor to use the theme:
```javascript
editor.setTheme("ace/theme/twilight");
```
By default the editor only supports plain text mode; many other languages are available as separate modules. After including the mode's JavaScript file:
```html
<script src="src/mode-javascript.js" type="text/javascript" charset="utf-8"></script>
```
The mode can then be used like this:
```javascript
var JavaScriptMode = ace.require("ace/mode/javascript").Mode;
editor.session.setMode(new JavaScriptMode());
```
to destroy editor use
```javascript
editor.destroy();
editor.container.remove();
```
Documentation
-------------
Additional usage information, including events to listen to and extending syntax highlighters, can be found [on the main Ace website](http://ace.c9.io).
You can also find API documentation at [https://ajaxorg.github.io/ace-api-docs/](https://ajaxorg.github.io/ace-api-docs/).
Also check out the sample code for the kitchen sink [demo app](https://github.com/ajaxorg/ace/blob/master/demo/kitchen-sink/demo.js).
If you still need help, feel free to ask a question on our [discussions page](https://github.com/ajaxorg/ace/discussions).
Running Ace
-----------
After the checkout Ace works out of the box. No build step is required. To try it out, simply start the bundled mini HTTP server using Node.JS
```bash
node ./static.js
```
The editor can then be opened at http://localhost:8888/kitchen-sink.html.
To open the editor with a file:/// URL see [the wiki](https://github.com/ajaxorg/ace/wiki/Running-Ace-from-file).
Building Ace
-----------
You do not generally need to build ACE. The [ace-builds repository](https://github.com/ajaxorg/ace-builds/) endeavours to maintain the latest build, and you can just copy one of _src*_ subdirectories somewhere into your project.
However, all you need is Node.js and npm installed to package ACE. Just run `npm install` in the ace folder to install dependencies:
```bash
npm install
node ./Makefile.dryice.js
```
To package Ace, we use the dryice build tool developed by the Mozilla Skywriter team. Call `node Makefile.dryice.js` on the command-line to start the packing. This build script accepts the following options
```bash
-m minify build files with uglify-js
-nc namespace require and define calls with "ace"
-bm builds the bookmarklet version
--target ./path specify relative path for output folder (default value is "./build")
```
To generate all the files in the ace-builds repository, run `node Makefile.dryice.js full --target ../ace-builds`
Running the Unit Tests
----------------------
The Ace unit tests can run on node.js. Assuming you have already done `npm install`, just call:
```bash
npm run test
```
You can also run the tests in your browser by serving:
http://localhost:8888/src/test/tests.html
This makes debugging failing tests much easier.
Contributing
-----------------------------
Ace is a community project and wouldn't be what it is without contributions! We actively encourage and support contributions. The Ace source code is released under the BSD License. This license is very simple, and is friendly to all kinds of projects, whether open source or not. Take charge of your editor and add your favorite language highlighting and keybindings!
Feel free to fork and improve/enhance Ace any way you want. If you feel that the editor or the Ace community will benefit from your changes, please open a pull request. For more information on our contributing guidelines, see [CONTRIBUTING.md](https://github.com/ajaxorg/ace/blob/master/CONTRIBUTING.md).
================================================
FILE: _config.yml
================================================
# Config file for Jekyll, which is used by GH pages to build the Ace website.
# Some files in the docs folder can cause Jekyll to trip up so we ignore those.
# https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/about-github-pages-and-jekyll
exclude:
- "demo/kitchen-sink/docs"
================================================
FILE: ace-internal.d.ts
================================================
export namespace Ace {
type Anchor = import("./src/anchor").Anchor;
type Editor = import("./src/editor").Editor;
type EditSession = import("./src/edit_session").EditSession;
type Document = import("./src/document").Document;
type Fold = import("./src/edit_session/fold").Fold;
type FoldLine = import("./src/edit_session/fold_line").FoldLine;
type Range = import("./src/range").Range;
type VirtualRenderer = import("./src/virtual_renderer").VirtualRenderer;
type UndoManager = import("./src/undomanager").UndoManager;
type Tokenizer = import("./src/tokenizer").Tokenizer;
type TokenIterator = import("./src/token_iterator").TokenIterator;
type Selection = import("./src/selection").Selection;
type Autocomplete = import("./src/autocomplete").Autocomplete;
type InlineAutocomplete = import("./src/ext/inline_autocomplete").InlineAutocomplete;
type CompletionProvider = import("./src/autocomplete").CompletionProvider;
type AcePopup = import("./src/autocomplete/popup").AcePopup;
type AceInline = import("./src/autocomplete/inline").AceInline;
type MouseEvent = import("./src/mouse/mouse_event").MouseEvent;
type RangeList = import("./src/range_list").RangeList;
type FilteredList = import("./src/autocomplete").FilteredList;
type LineWidgets = import("./src/line_widgets").LineWidgets;
type SearchBox = import("./src/ext/searchbox").SearchBox;
type Occur = import("./src/occur").Occur;
type DefaultHandlers = import("./src/mouse/default_handlers").DefaultHandlers;
type GutterHandler = import("./src/mouse/default_gutter_handler").GutterHandler;
type DragdropHandler = import("./src/mouse/dragdrop_handler").DragdropHandler;
type AppConfig = import("./src/lib/app_config").AppConfig;
type Config = typeof import("./src/config");
type GutterTooltip = import( "./src/mouse/default_gutter_handler").GutterTooltip;
type GutterKeyboardEvent = import( "./src/keyboard/gutter_handler").GutterKeyboardEvent;
type HoverTooltip = import("./src/tooltip").HoverTooltip;
type Tooltip = import("./src/tooltip").Tooltip;
type TextInput = import("./src/keyboard/textinput").TextInput;
type DiffChunk = import("./src/ext/diff/base_diff_view").DiffChunk;
type AfterLoadCallback = (err: Error | null, module: unknown) => void;
type LoaderFunction = (moduleName: string, afterLoad: AfterLoadCallback) => void;
export interface ConfigOptions {
packaged: boolean,
workerPath: string | null,
modePath: string | null,
themePath: string | null,
basePath: string,
suffix: string,
$moduleUrls: { [url: string]: string },
loadWorkerFromBlob: boolean,
sharedPopups: boolean,
useStrictCSP: boolean | null
}
interface Theme {
cssClass?: string;
cssText?: string;
$id?: string;
padding?: number | string;
isDark?: boolean;
}
interface ScrollBar {
setVisible(visible: boolean): void;
[key: string]: any;
}
interface HScrollbar extends ScrollBar {
setWidth(width: number): void;
}
interface VScrollbar extends ScrollBar {
setHeight(width: number): void;
}
interface LayerConfig {
width: number,
padding: number,
firstRow: number,
firstRowScreen: number,
lastRow: number,
lineHeight: number,
characterWidth: number,
minHeight: number,
maxHeight: number,
offset: number,
height: number,
gutterOffset: number
}
interface HardWrapOptions {
/** First row of the range to process */
startRow: number;
/** Last row of the range to process */
endRow: number;
/** Whether to merge short adjacent lines that fit within the limit */
allowMerge?: boolean;
/** Maximum column width for line wrapping (defaults to editor's print margin) */
column?: number;
}
interface CommandBarOptions {
maxElementsOnTooltip: number;
alwaysShow: boolean;
showDelay: number;
hideDelay: number;
}
interface ScreenCoordinates {
row: number,
column: number,
side?: 1 | -1,
offsetX?: number
}
interface Folding {
$foldData: FoldLine[];
/**
* Looks up a fold at a given row/column. Possible values for side:
* -1: ignore a fold if fold.start = row/column
* +1: ignore a fold if fold.end = row/column
**/
getFoldAt(row: number, column: number, side?: number): Ace.Fold;
/**
* Returns all folds in the given range. Note, that this will return folds
**/
getFoldsInRange(range: Ace.Range | Ace.Delta): Ace.Fold[];
getFoldsInRangeList(ranges: Ace.Range[] | Ace.Range): Ace.Fold[];
/**
* Returns all folds in the document
*/
getAllFolds(): Ace.Fold[];
/**
* Returns the string between folds at the given position.
* E.g.
* foo<fold>b|ar<fold>wolrd -> "bar"
* foo<fold>bar<fold>wol|rd -> "world"
* foo<fold>bar<fo|ld>wolrd -> <null>
*
* where | means the position of row/column
*
* The trim option determs if the return string should be trimed according
* to the "side" passed with the trim value:
*
* E.g.
* foo<fold>b|ar<fold>wolrd -trim=-1> "b"
* foo<fold>bar<fold>wol|rd -trim=+1> "rld"
* fo|o<fold>bar<fold>wolrd -trim=00> "foo"
*/
getFoldStringAt(row: number, column: number, trim?: number, foldLine?: Ace.FoldLine): string | null;
getFoldLine(docRow: number, startFoldLine?: Ace.FoldLine): null | Ace.FoldLine;
/**
* Returns the fold which starts after or contains docRow
*/
getNextFoldLine(docRow: number, startFoldLine?: Ace.FoldLine): null | Ace.FoldLine;
getFoldedRowCount(first: number, last: number): number;
$addFoldLine(foldLine: FoldLine): Ace.FoldLine;
/**
* Adds a new fold.
* @returns {Ace.Fold}
* The new created Fold object or an existing fold object in case the
* passed in range fits an existing fold exactly.
*/
addFold(placeholder: Ace.Fold | string, range?: Ace.Range): Ace.Fold;
$modified: boolean;
addFolds(folds: Ace.Fold[]): void;
removeFold(fold: Ace.Fold): void;
removeFolds(folds: Ace.Fold[]): void;
expandFold(fold: Ace.Fold): void;
expandFolds(folds: Ace.Fold[]): void;
unfold(location?: number | null | Ace.Point | Ace.Range | Ace.Range[], expandInner?: boolean): Ace.Fold[] | undefined;
/**
* Checks if a given documentRow is folded. This is true if there are some
* folded parts such that some parts of the line is still visible.
**/
isRowFolded(docRow: number, startFoldRow?: Ace.FoldLine): boolean;
getRowFoldEnd(docRow: number, startFoldRow?: Ace.FoldLine): number;
getRowFoldStart(docRow: number, startFoldRow?: Ace.FoldLine): number;
getFoldDisplayLine(foldLine: Ace.FoldLine, endRow?: number | null, endColumn?: number | null, startRow?: number | null, startColumn?: number | null): string;
getDisplayLine(row: number, endColumn: number | null, startRow: number | null, startColumn: number | null): string;
$cloneFoldData(): Ace.FoldLine[];
toggleFold(tryToUnfold?: boolean): void;
getCommentFoldRange(row: number, column: number, dir?: number): Ace.Range | undefined;
foldAll(startRow?: number | null, endRow?: number | null, depth?: number | null, test?: Function): void;
foldToLevel(level: number): void;
foldAllComments(): void;
$foldStyles: {
manual: number;
markbegin: number;
markbeginend: number;
};
$foldStyle: string;
setFoldStyle(style: string): void;
$setFolding(foldMode: Ace.FoldMode): void;
$foldMode: any;
foldWidgets: any[];
getFoldWidget: any;
getFoldWidgetRange: any;
$updateFoldWidgets: any;
$tokenizerUpdateFoldWidgets: any;
getParentFoldRangeData(row: number, ignoreCurrent?: boolean): {
range?: Ace.Range;
firstRange?: Ace.Range;
};
onFoldWidgetClick(row: number, e: any): void;
$toggleFoldWidget(row: number, options: any): Fold | any;
/**
*
* @param {boolean} [toggleParent]
*/
toggleFoldWidget(toggleParent?: boolean): void;
updateFoldWidgets(delta: Ace.Delta): void;
tokenizerUpdateFoldWidgets(e: any): void;
}
interface BracketMatch {
findMatchingBracket: (position: Point, chr?: string) => Point;
getBracketRange: (pos: Point) => null | Range;
/**
* Returns:
* * null if there is no any bracket at `pos`;
* * two Ranges if there is opening and closing brackets;
* * one Range if there is only one bracket
*/
getMatchingBracketRanges: (pos: Point, isBackwards?: boolean) => null | Range[];
$brackets: {
")": string;
"(": string;
"]": string;
"[": string;
"{": string;
"}": string;
"<": string;
">": string;
};
$findOpeningBracket: (bracket: string, position: Point, typeRe?: RegExp) => Point | null;
$findClosingBracket: (bracket: string, position: Point, typeRe?: RegExp) => Point | null;
/**
* Returns [[Range]]'s for matching tags and tag names, if there are any
*/
getMatchingTags: (pos: Point) => {
closeTag: Range;
closeTagName: Range;
openTag: Range;
openTagName: Range;
};
$findTagName: (iterator: any) => any;
$findClosingTag: (iterator: any, token: any) => {
openTag: Range;
closeTag: Range;
openTagName: Range;
closeTagName: Range;
};
$findOpeningTag: (iterator: any, token: any) => {
openTag: Range;
closeTag: Range;
openTagName: Range;
closeTagName: Range;
};
}
interface IRange {
start: Point;
end: Point;
}
interface LineWidget {
editor?: Editor,
el?: HTMLElement;
rowCount?: number;
hidden?: boolean;
_inDocument?: boolean;
column?: number;
row: number;
$oldWidget?: LineWidget,
session?: EditSession,
html?: string,
text?: string,
className?: string,
coverGutter?: boolean,
pixelHeight?: number,
$fold?: Fold,
type?: any,
destroy?: () => void;
coverLine?: boolean,
fixedWidth?: boolean,
fullWidth?: boolean,
screenWidth?: number,
rowsAbove?: number,
lenses?: CodeLenseCommand[],
}
type NewLineMode = 'auto' | 'unix' | 'windows';
interface EditSessionOptions {
wrap: "off" | "free" | "printmargin" | boolean | number;
wrapMethod: 'code' | 'text' | 'auto';
indentedSoftWrap: boolean;
firstLineNumber: number;
useWorker: boolean;
useSoftTabs: boolean;
tabSize: number;
navigateWithinSoftTabs: boolean;
foldStyle: 'markbegin' | 'markbeginend' | 'manual';
overwrite: boolean;
newLineMode: NewLineMode;
mode: SyntaxMode | string;
}
interface VirtualRendererOptions {
animatedScroll: boolean;
showInvisibles: boolean;
showPrintMargin: boolean;
printMarginColumn: number;
printMargin: boolean | number;
showGutter: boolean;
fadeFoldWidgets: boolean;
showFoldWidgets: boolean;
showLineNumbers: boolean;
displayIndentGuides: boolean;
highlightIndentGuides: boolean;
highlightGutterLine: boolean;
hScrollBarAlwaysVisible: boolean;
vScrollBarAlwaysVisible: boolean;
fontSize: string | number;
fontFamily: string;
maxLines: number;
minLines: number;
scrollPastEnd: number;
fixedWidthGutter: boolean;
customScrollbar: boolean;
theme: string;
hasCssTransforms: boolean;
maxPixelHeight: number;
useSvgGutterIcons: boolean;
showFoldedAnnotations: boolean;
useResizeObserver: boolean;
}
interface MouseHandlerOptions {
scrollSpeed: number;
dragDelay: number;
dragEnabled: boolean;
focusTimeout: number;
}
interface EditorOptions extends EditSessionOptions,
MouseHandlerOptions,
VirtualRendererOptions {
selectionStyle: "fullLine" | "screenLine" | "text" | "line";
highlightActiveLine: boolean;
highlightSelectedWord: boolean;
readOnly: boolean;
copyWithEmptySelection: boolean;
cursorStyle: 'ace' | 'slim' | 'smooth' | 'wide';
mergeUndoDeltas: true | false | 'always';
behavioursEnabled: boolean;
wrapBehavioursEnabled: boolean;
enableAutoIndent: boolean;
enableBasicAutocompletion: boolean | Completer[];
enableLiveAutocompletion: boolean | Completer[];
liveAutocompletionDelay: number;
liveAutocompletionThreshold: number;
enableSnippets: boolean;
autoScrollEditorIntoView: boolean;
keyboardHandler: string | null;
placeholder: string;
value: string;
session: EditSession;
relativeLineNumbers: boolean;
enableMultiselect: boolean;
enableKeyboardAccessibility: boolean;
enableCodeLens: boolean;
textInputAriaLabel: string;
enableMobileMenu: boolean;
}
interface EventsBase {
[key: string]: any;
}
interface EditSessionEvents {
/**
* Emitted when the document changes.
* @param delta
*/
"change": (delta: Delta, emitter: EditSession) => void;
/**
* Emitted when the tab size changes, via [[EditSession.setTabSize]].
*/
"changeTabSize": (e: undefined, emitter: EditSession) => void;
/**
* Emitted when the ability to overwrite text changes, via [[EditSession.setOverwrite]].
* @param overwrite
*/
"changeOverwrite": (overwrite: boolean, emitter: EditSession) => void;
/**
* Emitted when the gutter changes, either by setting or removing breakpoints, or when the gutter decorations change.
* @param e
*/
"changeBreakpoint": (e: { row?: number, breakpoint?: boolean }, emitter: EditSession) => void;
/**
* Emitted when a front marker changes.
*/
"changeFrontMarker": (e: undefined, emitter: EditSession) => void;
/**
* Emitted when a back marker changes.
*/
"changeBackMarker": (e: undefined, emitter: EditSession) => void;
/**
* Emitted when an annotation changes, like through [[EditSession.setAnnotations]].
*/
"changeAnnotation": (e: {}, emitter: EditSession) => void;
/**
* Emitted when a background tokenizer asynchronously processes new rows.
*/
"tokenizerUpdate": (e: { data: { first: number, last: number } }, emitter: EditSession) => void;
/**
* Emitted when the current mode changes.
* @param e
*/
"changeMode": (e: any, emitter: EditSession) => void;
/**
* Emitted when the wrap mode changes.
* @param e
*/
"changeWrapMode": (e: any, emitter: EditSession) => void;
/**
* Emitted when the wrapping limit changes.
* @param e
*/
"changeWrapLimit": (e: any, emitter: EditSession) => void;
/**
* Emitted when a code fold is added or removed.
* @param e
*/
"changeFold": (e: any, emitter: EditSession) => void;
/**
* Emitted when the scroll top changes.
* @param scrollTop The new scroll top value
**/
"changeScrollTop": (scrollTop: number, emitter: EditSession) => void;
/**
* Emitted when the scroll left changes.
* @param scrollLeft The new scroll left value
**/
"changeScrollLeft": (scrollLeft: number, emitter: EditSession) => void;
"changeEditor": (e: { editor?: Editor, oldEditor?: Editor }, emitter: EditSession) => void;
"changeSelection": (e: undefined, emitter: EditSession) => void;
"startOperation": (op: { command?: { name?: string }, args?: any }, emitter: EditSession) => void;
"endOperation": (op: any, emitter: EditSession) => void;
"beforeEndOperation": (e: undefined, emitter: EditSession) => void;
}
interface EditorEvents {
"change": (delta: Delta, emitter: Editor) => void;
"changeSelection": (e: undefined, emitter: Editor) => void;
"input": (e: undefined, emitter: Editor) => void;
/**
* Emitted whenever the [[EditSession]] changes.
* @param e An object with two properties, `oldSession` and `session`, that represent the old and new [[EditSession]]s.
**/
"changeSession": (e: { oldSession: EditSession, session: EditSession }, emitter: Editor) => void;
"blur": (e: any, emitter: Editor) => void;
"mousedown": (e: MouseEvent, emitter: Editor) => void;
"mousemove": (e: MouseEvent & { scrollTop?: any }, emitter: Editor) => void;
"changeStatus": (e: any, emitter: Editor) => void;
"keyboardActivity": (e: any, emitter: Editor) => void;
"mousewheel": (e: MouseEvent, emitter: Editor) => void;
"mouseup": (e: MouseEvent, emitter: Editor) => void;
"beforeEndOperation": (e: any, emitter: Editor) => void;
"nativecontextmenu": (e: any, emitter: Editor) => void;
"destroy": (e: any, emitter: Editor) => void;
"focus": (e: any, emitter: Editor) => void;
/**
* Emitted when text is copied.
* @param text The copied text
**/
"copy": (e: { text: string }, emitter: Editor) => void;
/**
* Emitted when text is pasted.
**/
"paste": (e: { text: string, event?: ClipboardEvent }, emitter: Editor) => void;
/**
* Emitted when the selection style changes, via [[Editor.setSelectionStyle]].
* @param data Contains one property, `data`, which indicates the new selection style
**/
"changeSelectionStyle": (data: "fullLine" | "screenLine" | "text" | "line", emitter: Editor) => void;
"changeMode": (e: { mode?: Ace.SyntaxMode, oldMode?: Ace.SyntaxMode }, emitter: Editor) => void;
//from searchbox extension
"findSearchBox": (e: { match: boolean }, emitter: Editor) => void;
//from code_lens extension
"codeLensClick": (e: any, emitter: Editor) => void;
"select": (e: undefined, emitter: Editor) => void;
"gutterkeydown": (e: GutterKeyboardEvent, emitter: Editor) => void;
"gutterclick": (e: MouseEvent, emitter: Editor) => void;
"showGutterTooltip": (e: GutterTooltip, emitter: Editor) => void;
"hideGutterTooltip": (e: GutterTooltip, emitter: Editor) => void;
"compositionStart": (e: undefined, emitter: Editor) => void;
}
interface AcePopupEvents {
"click": (e: MouseEvent, emitter: AcePopup) => void;
"dblclick": (e: MouseEvent, emitter: AcePopup) => void;
"tripleclick": (e: MouseEvent, emitter: AcePopup) => void;
"quadclick": (e: MouseEvent, emitter: AcePopup) => void;
"show": (e: undefined, emitter: AcePopup) => void;
"hide": (e: undefined, emitter: AcePopup) => void;
"select": (hide: boolean, emitter: AcePopup) => void;
"changeHoverMarker": (e: any, emitter: AcePopup) => void;
}
interface DocumentEvents {
/**
* Fires whenever the document changes.
* Several methods trigger different `"change"` events. Below is a list of each action type, followed by each property that's also available:
* * `"insert"`
* * `range`: the [[Range]] of the change within the document
* * `lines`: the lines being added
* * `"remove"`
* * `range`: the [[Range]] of the change within the document
* * `lines`: the lines being removed
*
**/
"change": (e: Delta, emitter: Document) => void;
"changeNewLineMode": (e: undefined, emitter: Document) => void;
}
interface AnchorEvents {
/**
* Fires whenever the anchor position changes.
* Both of these objects have a `row` and `column` property corresponding to the position.
* Events that can trigger this function include [[Anchor.setPosition `setPosition()`]].
* @param {Object} e An object containing information about the anchor position. It has two properties:
* - `old`: An object describing the old Anchor position
* - `value`: An object describing the new Anchor position
**/
"change": (e: { old: Point, value: Point }, emitter: Anchor) => void;
}
interface BackgroundTokenizerEvents {
/**
* Fires whenever the background tokeniziers between a range of rows are going to be updated.
* @param e An object containing two properties, `first` and `last`, which indicate the rows of the region being updated.
**/
"update": (e: {
data: { first: number, last: number }
}, emitter: import("./src/background_tokenizer").BackgroundTokenizer) => void;
}
interface SelectionEvents {
/**
* Emitted when the cursor position changes.
**/
"changeCursor": (e: undefined, emitter: Selection) => void;
/**
* Emitted when the cursor selection changes.
**/
"changeSelection": (e: undefined, emitter: Selection) => void;
}
interface MultiSelectionEvents extends SelectionEvents {
"multiSelect": (e: undefined, emitter: Selection) => void;
"addRange": (e: { range: Range }, emitter: Selection) => void;
"removeRange": (e: { ranges: Range[] }, emitter: Selection) => void;
"singleSelect": (e: undefined, emitter: Selection) => void;
}
interface PlaceHolderEvents {
"cursorEnter": (e: any, emitter: import("./src/placeholder").PlaceHolder) => void;
"cursorLeave": (e: any, emitter: import("./src/placeholder").PlaceHolder) => void;
}
interface GutterEvents {
"changeGutterWidth": (width: number, emitter: import("./src/layer/gutter").Gutter) => void;
"afterRender": (e: undefined, emitter: import("./src/layer/gutter").Gutter) => void;
}
interface TextEvents {
"changeCharacterSize": (e: any, emitter: import("./src/layer/text").Text) => void;
}
interface VirtualRendererEvents {
"afterRender": (e: any, emitter: VirtualRenderer) => void;
"beforeRender": (e: any, emitter: VirtualRenderer) => void;
"themeLoaded": (e: { theme: string | Theme }, emitter: VirtualRenderer) => void;
"themeChange": (e: { theme: string | Theme }, emitter: VirtualRenderer) => void;
"scrollbarVisibilityChanged": (e: undefined, emitter: VirtualRenderer) => void;
"changeCharacterSize": (e: any, emitter: VirtualRenderer) => void;
"resize": (e: any, emitter: VirtualRenderer) => void;
"autosize": (e: undefined, emitter: VirtualRenderer) => void;
}
type EmitParameters<T extends (...args: any[]) => any> =
T extends (first: infer First, ...rest: any[]) => any
? [First]
: [];
export class EventEmitter<T extends { [K in keyof T]: (...args: any[]) => any }> {
once<K extends keyof T>(name: K, callback: T[K]): void;
setDefaultHandler(name: string, callback: Function): void;
removeDefaultHandler(name: string, callback: Function): void;
on<K extends keyof T>(name: K, callback: T[K], capturing?: boolean): T[K];
addEventListener<K extends keyof T>(name: K, callback: T[K], capturing?: boolean): T[K];
off<K extends keyof T>(name: K, callback: T[K]): void;
removeListener<K extends keyof T>(name: K, callback: T[K]): void;
removeEventListener<K extends keyof T>(name: K, callback: T[K]): void;
removeAllListeners(name?: string): void;
_signal<K extends keyof T>(eventName: K, ...args: EmitParameters<T[K]>): void;
_emit<K extends keyof T>(eventName: K, ...args: EmitParameters<T[K]>): void;
_dispatchEvent<K extends keyof T>(eventName: K, ...args: EmitParameters<T[K]>): void;
}
interface SearchOptions {
/**The string or regular expression you're looking for*/
needle: string | RegExp;
preventScroll: boolean;
/**Whether to search backwards from where cursor currently is*/
backwards: boolean;
/**The starting [[Range]] or cursor position to begin the search*/
start: Range;
/**Whether or not to include the current line in the search*/
skipCurrent: boolean;
/**The [[Range]] to search within. Set this to `null` for the whole document*/
range: Range | null;
preserveCase: boolean;
/**Whether the search is a regular expression or not*/
regExp: boolean;
/**Whether the search matches only on whole words*/
wholeWord: boolean;
/**Whether the search ought to be case-sensitive*/
caseSensitive: boolean;
/**Whether to wrap the search back to the beginning when it hits the end*/
wrap: boolean;
re: any;
/**true, if needle has \n or \r\n*/
$isMultiLine: boolean;
/**
* internal property, determine if browser supports unicode flag
* @private
* */
$supportsUnicodeFlag: boolean;
}
interface Point {
row: number;
column: number;
}
type Position = Point;
interface Delta {
action: 'insert' | 'remove';
start: Point;
end: Point;
lines: string[];
id?: number,
folds?: Fold[]
}
interface Annotation {
row: number;
column: number;
text: string;
type: string;
}
export interface MarkerGroupItem {
range: Range;
className: string;
}
type MarkerGroup = import("./src/marker_group").MarkerGroup;
export interface Command {
name?: string;
bindKey?: string | { mac?: string, win?: string };
readOnly?: boolean;
exec?: (editor?: Editor | any, args?: any) => void;
isAvailable?: (editor: Editor) => boolean;
description?: string,
multiSelectAction?: "forEach" | "forEachLine" | Function,
scrollIntoView?: true | "cursor" | "center" | "selectionPart" | "animate" | "selection" | "none",
aceCommandGroup?: string,
passEvent?: boolean,
level?: number,
action?: string,
}
type CommandLike = Command | ((editor: Editor) => void) | ((sb: SearchBox) => void);
type KeyboardHandler = Partial<import("./src/keyboard/hash_handler").HashHandler> & {
attach?: (editor: Editor) => void;
detach?: (editor: Editor) => void;
getStatusText?: (editor?: any, data?: any) => string;
}
export interface MarkerLike {
range?: Range;
type: string;
renderer?: MarkerRenderer;
clazz: string;
inFront?: boolean;
id?: number;
update?: (html: string[],
// TODO maybe define Marker class
marker: any,
session: EditSession,
config: any) => void;
[key: string]: any;
}
type MarkerRenderer = (html: string[],
range: Range,
left: number,
top: number,
config: any) => void;
interface Token {
type: string;
value: string;
index?: number;
start?: number;
}
type BaseCompletion = import("./src/autocomplete").BaseCompletion;
type SnippetCompletion = import("./src/autocomplete").SnippetCompletion;
type ValueCompletion = import("./src/autocomplete").ValueCompletion;
type Completion = import("./src/autocomplete").Completion;
type HighlightRule = ({ defaultToken: string } | { include: string } | { todo: string } | {
token: string | string[] | ((value: string) => string);
regex: string | RegExp;
next?: string | (() => void);
push?: string;
comment?: string;
caseInsensitive?: boolean;
nextState?: string;
}) & { [key: string]: any };
type HighlightRulesMap = Record<string, HighlightRule[]>;
type KeywordMapper = (keyword: string) => string;
interface HighlightRules {
$rules: HighlightRulesMap;
$embeds: string[];
$keywords: any[];
$keywordList: string[];
addRules(rules: HighlightRulesMap, prefix?: string): void;
getRules(): HighlightRulesMap;
embedRules(rules: (new () => HighlightRules) | HighlightRulesMap, prefix: string, escapeRules?: boolean, append?: boolean): void;
getEmbeds(): string[];
normalizeRules(): void;
createKeywordMapper(map: Record<string, string>, defaultToken?: string, ignoreCase?: boolean, splitChar?: string): KeywordMapper;
}
type FoldWidget = "start" | "end" | ""
interface FoldMode {
foldingStartMarker: RegExp;
foldingStopMarker?: RegExp;
getFoldWidget(session: EditSession, foldStyle: string, row: number): FoldWidget;
getFoldWidgetRange(session: EditSession, foldStyle: string, row: number): Range | undefined;
indentationBlock(session: EditSession, row: number, column?: number): Range | undefined;
openingBracketBlock(session: EditSession, bracket: string, row: number, column: number, typeRe?: RegExp): Range | undefined;
closingBracketBlock(session: EditSession, bracket: string, row: number, column: number, typeRe?: RegExp): Range | undefined;
}
type BehaviorAction = (state: string | string[], action: string, editor: Editor, session: EditSession, text: string | Range) => ({
text: string,
selection: number[]
} | Range) & { [key: string]: any } | undefined;
type BehaviorMap = Record<string, Record<string, BehaviorAction>>;
interface Behaviour {
$behaviours: { [behaviour: string]: any }
add(name: string, action: string, callback: BehaviorAction): void;
addBehaviours(behaviours: BehaviorMap): void;
remove(name: string): void;
inherit(mode: SyntaxMode | (new () => SyntaxMode), filter: string[]): void;
getBehaviours(filter?: string[]): BehaviorMap;
}
interface Outdent {
checkOutdent(line: string, input: string): boolean;
autoOutdent(doc: Document, row: number): number | undefined;
}
interface SyntaxMode {
/**
* quotes used by language mode
*/
$quotes: { [quote: string]: string };
HighlightRules: {
new(config?: any): HighlightRules
}; //TODO: fix this
foldingRules?: FoldMode;
$behaviour?: Behaviour;
$defaultBehaviour?: Behaviour;
/**
* characters that indicate the start of a line comment
*/
lineCommentStart?: string;
/**
* characters that indicate the start and end of a block comment
*/
blockComment?: { start: string, end: string }
tokenRe?: RegExp;
nonTokenRe?: RegExp;
/**
* An object containing conditions to determine whether to apply matching quote or not.
*/
$pairQuotesAfter: { [quote: string]: RegExp }
$tokenizer: Tokenizer;
$highlightRules: HighlightRules;
$embeds?: string[];
$modes?: SyntaxMode[];
$keywordList?: string[];
$highlightRuleConfig?: any;
completionKeywords: string[];
transformAction: BehaviorAction;
path?: string;
getTokenizer(): Tokenizer;
toggleCommentLines(state: string | string[],
session: EditSession,
startRow: number,
endRow: number): void;
toggleBlockComment(state: string | string[],
session: EditSession,
range: Range,
cursor: Point): void;
getNextLineIndent(state: string | string[], line: string, tab: string): string;
checkOutdent(state: string | string[], line: string, input: string): boolean;
autoOutdent(state: string | string[], doc: EditSession, row: number): void;
// TODO implement WorkerClient types
createWorker(session: EditSession): any;
createModeDelegates(mapping: { [key: string]: string }): void;
getKeywords(append?: boolean): Array<string | RegExp>;
getCompletions(state: string | string[],
session: EditSession,
pos: Point,
prefix: string): Completion[];
$getIndent(line: string): string;
$createKeywordList(): string[];
$delegator(method: string, args: IArguments, defaultHandler: any): any;
}
interface OptionsBase {
[key: string]: any;
}
class OptionsProvider<T> {
setOptions(optList: Partial<T>): void;
getOptions(optionNames?: Array<keyof T> | Partial<T>): Partial<T>;
setOption<K extends keyof T>(name: K, value: T[K]): void;
getOption<K extends keyof T>(name: K): T[K];
}
type KeyBinding = import("./src/keyboard/keybinding").KeyBinding;
interface CommandMap {
[name: string]: Command;
}
type execEventHandler = (obj: {
editor: Editor,
command: Command,
args: any[]
}, emitter: CommandManager) => void;
interface CommandManagerEvents {
"exec": execEventHandler
"afterExec": execEventHandler;
"commandUnavailable": execEventHandler;
}
type CommandManager = import("./src/commands/command_manager").CommandManager;
interface SavedSelection {
start: Point;
end: Point;
isBackwards: boolean;
}
var Selection: {
new(session: EditSession): Selection;
}
type CompleterCallback = (error: any, completions: Completion[]) => void;
interface Completer {
/** Regular expressions defining valid identifier characters for completion triggers */
identifierRegexps?: Array<RegExp>,
/** Main completion method that provides suggestions for the given context */
getCompletions(editor: Editor,
session: EditSession,
position: Point,
prefix: string,
callback: CompleterCallback): void;
/** Returns documentation tooltip for a completion item */
getDocTooltip?(item: Completion): void | string | Completion;
/** Called when a completion item becomes visible */
onSeen?: (editor: Ace.Editor, completion: Completion) => void;
/** Called when a completion item is inserted */
onInsert?: (editor: Ace.Editor, completion: Completion) => void;
/** Cleanup method called when completion is cancelled */
cancel?(): void;
/** Unique identifier for this completer */
id?: string;
/** Characters that trigger autocompletion when typed */
triggerCharacters?: string[];
/** Whether to hide inline preview text */
hideInlinePreview?: boolean;
/** Custom insertion handler for completion items */
insertMatch?: (editor: Editor, data: Completion) => void;
}
interface CompletionOptions {
matches?: Completion[];
}
type CompletionProviderOptions = {
exactMatch?: boolean;
ignoreCaption?: boolean;
}
type GatherCompletionRecord = {
prefix: string;
matches: Completion[];
finished: boolean;
}
type CompletionCallbackFunction = (err: Error | undefined, data: GatherCompletionRecord) => void;
type CompletionProviderCallback = (this: import("./src/autocomplete").Autocomplete, err: Error | undefined, completions: import("./src/autocomplete").FilteredList, finished: boolean) => void;
type AcePopupNavigation = "up" | "down" | "start" | "end";
interface EditorMultiSelectProperties {
inMultiSelectMode?: boolean,
/**
* Updates the cursor and marker layers.
**/
updateSelectionMarkers: () => void,
/**
* Adds the selection and cursor.
* @param orientedRange A range containing a cursor
**/
addSelectionMarker: (orientedRange: Ace.Range & { marker?: any }) => Ace.Range & { marker?: any },
/**
* Removes the selection marker.
* @param range The selection range added with [[Editor.addSelectionMarker `addSelectionMarker()`]].
**/
removeSelectionMarker: (range: Ace.Range & { marker?: any }) => void,
removeSelectionMarkers: (ranges: (Ace.Range & { marker?: any })[]) => void,
$onAddRange: (e: any) => void,
$onRemoveRange: (e: any) => void,
$onMultiSelect: (e: any) => void,
$onSingleSelect: (e: any) => void,
$onMultiSelectExec: (e: any) => void,
/**
* Executes a command for each selection range.
* @param cmd The command to execute
* @param [args] Any arguments for the command
**/
forEachSelection: (cmd: Object, args?: string, options?: Object) => void,
/**
* Removes all the selections except the last added one.
**/
exitMultiSelectMode: () => void,
getSelectedText: () => string,
$checkMultiselectChange: (e: any, anchor: Ace.Anchor) => void,
/**
* Finds and selects all the occurrences of `needle`.
* @param needle The text to find
* @param options The search options
* @param additive keeps
* @returns {Number} The cumulative count of all found matches
**/
findAll: (needle?: string, options?: Partial<Ace.SearchOptions>, additive?: boolean) => number,
/**
* Adds a cursor above or below the active cursor.
* @param dir The direction of lines to select: -1 for up, 1 for down
* @param [skip] If `true`, removes the active selection range
*/
selectMoreLines: (dir: number, skip?: boolean) => void,
/**
* Transposes the selected ranges.
* @param {Number} dir The direction to rotate selections
**/
transposeSelections: (dir: number) => void,
/**
* Finds the next occurrence of text in an active selection and adds it to the selections.
* @param {Number} dir The direction of lines to select: -1 for up, 1 for down
* @param {Boolean} [skip] If `true`, removes the active selection range
* @param {Boolean} [stopAtFirst]
**/
selectMore: (dir: number, skip?: boolean, stopAtFirst?: boolean) => void,
/**
* Aligns the cursors or selected text.
**/
alignCursors: () => void,
$reAlignText: (lines: string[], forceLeft: boolean) => string[],
multiSelect?: any,
$multiselectOnSessionChange?: any,
$blockSelectEnabled?: boolean,
}
/**
* Provider interface for code lens functionality
*/
interface CodeLenseProvider {
/**
* Compute code lenses for the given edit session
* @param session The edit session to provide code lenses for
* @param callback Callback function that receives errors and code lenses
*/
provideCodeLenses: (session: EditSession, callback: (err: any, payload: CodeLense[]) => void) => void;
}
/**
* Represents a command associated with a code lens
*/
interface CodeLenseCommand {
/**
* Command identifier that will be executed
*/
id?: string,
/**
* Display title for the code lens
*/
title: string,
/**
* Argument(s) to pass to the command when executed
*/
arguments?: any,
}
/**
* Represents a code lens - an actionable UI element displayed above a code line
*/
interface CodeLense {
/**
* Starting position where the code lens should be displayed
*/
start: Point,
/**
* Command to execute when the code lens is activated
*/
command?: CodeLenseCommand
}
interface CodeLenseEditorExtension {
codeLensProviders?: CodeLenseProvider[];
$codeLensClickHandler?: any;
$updateLenses?: () => void;
$updateLensesOnInput?: () => void;
}
interface ElasticTabstopsEditorExtension {
elasticTabstops?: import("./src/ext/elastic_tabstops_lite").ElasticTabstopsLite;
}
interface TextareaEditorExtension {
setDisplaySettings?: (settings: any) => void;
}
interface PromptEditorExtension {
cmdLine?: Editor;
}
interface OptionsEditorExtension {
$options?: any;
}
interface MultiSelectProperties {
ranges: Ace.Range[] | null;
rangeList: Ace.RangeList | null;
/**
* Adds a range to a selection by entering multiselect mode, if necessary.
* @param {Ace.Range} range The new range to add
* @param {Boolean} [$blockChangeEvents] Whether or not to block changing events
**/
addRange(range: Ace.Range, $blockChangeEvents?: boolean): any;
inMultiSelectMode: boolean;
/**
* @param {Ace.Range} [range]
**/
toSingleRange(range?: Ace.Range): void;
/**
* Removes a Range containing pos (if it exists).
* @param {Ace.Point} pos The position to remove, as a `{row, column}` object
**/
substractPoint(pos: Ace.Point): any;
/**
* Merges overlapping ranges ensuring consistency after changes
**/
mergeOverlappingRanges(): void;
/**
* @param {Ace.Range} range
*/
$onAddRange(range: Ace.Range): void;
rangeCount: number;
/**
*
* @param {Ace.Range[]} removed
*/
$onRemoveRange(removed: Ace.Range[]): void;
/**
* adds multicursor support to selection
*/
$initRangeList(): void;
/**
* Returns a concatenation of all the ranges.
* @returns {Ace.Range[]}
**/
getAllRanges(): Ace.Range[];
/**
* Splits all the ranges into lines.
**/
splitIntoLines(): void;
/**
*/
joinSelections(): void;
/**
**/
toggleBlockSelection(): void;
/**
*
* Gets list of ranges composing rectangular block on the screen
*
* @param {Ace.ScreenCoordinates} screenCursor The cursor to use
* @param {Ace.ScreenCoordinates} screenAnchor The anchor to use
* @param {Boolean} [includeEmptyLines] If true, this includes ranges inside the block which are empty due to clipping
* @returns {Ace.Range[]}
**/
rectangularRangeBlock(screenCursor: Ace.ScreenCoordinates, screenAnchor: Ace.ScreenCoordinates, includeEmptyLines?: boolean): Ace.Range[];
_eventRegistry?: any;
index?: number;
}
type AcePopupEventsCombined = Ace.EditorEvents & Ace.AcePopupEvents;
type AcePopupWithEditor = Ace.EventEmitter<AcePopupEventsCombined> & Ace.Editor;
type InlineAutocompleteAction = "prev" | "next" | "first" | "last";
type TooltipCommandFunction<T> = (editor: Ace.Editor) => T;
export interface TooltipCommand extends Ace.Command {
enabled?: TooltipCommandFunction<boolean> | boolean,
getValue?: TooltipCommandFunction<any>,
type: "button" | "text" | "checkbox"
iconCssClass?: string,
cssClass?: string
}
export type CommandBarTooltip = import("./src/ext/command_bar").CommandBarTooltip;
export type TokenizeResult = Array<Array<{
className?: string,
value: string,
}>>
export interface StaticHighlightOptions {
/** Syntax mode (e.g., 'ace/mode/javascript'). Auto-detected from CSS class if not provided */
mode?: string | SyntaxMode,
/** Color theme (e.g., 'ace/theme/textmate'). Defaults to 'ace/theme/textmate' */
theme?: string | Theme,
/** Whether to trim whitespace from code content */
trim?: boolean,
/** Starting line number for display */
firstLineNumber?: number,
/** Whether to show line numbers gutter */
showGutter?: boolean
}
export interface Operation {
command: {
name?: string;
};
args: any;
selectionBefore?: Range | Range[];
selectionAfter?: Range | Range[];
docChanged?: boolean;
selectionChanged?: boolean;
}
export interface CommandBarEvents {
"hide": (e: undefined, emitter: import("./src/ext/command_bar").CommandBarTooltip) => void;
"show": (e: undefined, emitter: import("./src/ext/command_bar").CommandBarTooltip) => void;
"alwaysShow": (e: boolean, emitter: import("./src/ext/command_bar").CommandBarTooltip) => void;
}
export interface FontMetricsEvents {
"changeCharacterSize": (e: { data: { height: number, width: number } }, emitter: import("./src/layer/font_metrics").FontMetrics) => void;
}
export interface OptionPanelEvents {
"setOption": (e: { name: string, value: any }, emitter: import("./src/ext/options").OptionPanel) => void;
}
export interface ScrollbarEvents {
"scroll": (e: { data: number }, emitter: ScrollBar) => void;
}
export interface TextInputAriaOptions {
activeDescendant?: string;
role?: string;
setLabel?: boolean;
inline?: boolean;
}
}
export const version: string;
export const config: Ace.Config;
export function require(name: string): any;
export function edit(el?: string | (Element & {
env?: any;
value?: any;
}) | null, options?: Partial<Ace.EditorOptions>): Ace.Editor;
export function createEditSession(text: Ace.Document | string, mode?: Ace.SyntaxMode | string): Ace.EditSession;
export const VirtualRenderer: {
new(container: HTMLElement, theme?: string): Ace.VirtualRenderer;
};
export const EditSession: {
new(text: string | Ace.Document, mode?: Ace.SyntaxMode): Ace.EditSession;
};
export const UndoManager: {
new(): Ace.UndoManager;
};
export const Editor: {
new(renderer: Ace.VirtualRenderer, session?: Ace.EditSession, options?: Partial<Ace.EditorOptions>): Ace.Editor;
};
export const Range: {
new(startRow: number, startColumn: number, endRow: number, endColumn: number): Ace.Range;
fromPoints(start: Ace.Point, end: Ace.Point): Ace.Range;
comparePoints(p1: Ace.Point, p2: Ace.Point): number;
};
export type InlineAutocomplete = Ace.InlineAutocomplete;
export type CommandBarTooltip = Ace.CommandBarTooltip;
declare global {
interface Element {
setAttribute(name: string, value: boolean): void;
setAttribute(name: string, value: number): void;
}
}
declare module "./src/anchor" {
export interface Anchor extends Ace.EventEmitter<Ace.AnchorEvents> {
markerId?: number;
document: Ace.Document;
}
}
declare module "./src/autocomplete" {
export interface Autocomplete {
popup: Ace.AcePopup;
emptyMessage?: Function,
}
export interface CompletionProvider {
completions: Ace.FilteredList;
}
}
declare module "./src/background_tokenizer" {
export interface BackgroundTokenizer extends Ace.EventEmitter<Ace.BackgroundTokenizerEvents> {
}
}
declare module "./src/document" {
export interface Document extends Ace.EventEmitter<Ace.DocumentEvents> {
}
}
declare module "./src/editor" {
export interface Editor extends Ace.EditorMultiSelectProperties, Ace.OptionsProvider<Ace.EditorOptions>,
Ace.EventEmitter<Ace.EditorEvents>, Ace.CodeLenseEditorExtension, Ace.ElasticTabstopsEditorExtension,
Ace.TextareaEditorExtension, Ace.PromptEditorExtension, Ace.OptionsEditorExtension {
session: Ace.EditSession;
$mergeUndoDeltas?: any,
$highlightSelectedWord?: boolean,
$updatePlaceholder?: Function,
$cursorStyle?: string,
$readOnly?: any,
$highlightActiveLine?: any,
$enableAutoIndent?: any,
$copyWithEmptySelection?: any
$selectionStyle?: string,
env?: any;
widgetManager?: Ace.LineWidgets,
completer?: Ace.Autocomplete | Ace.InlineAutocomplete,
completers: Ace.Completer[],
$highlightTagPending?: boolean,
showKeyboardShortcuts?: () => void,
showSettingsMenu?: () => void,
searchBox?: Ace.SearchBox,
_eventRegistry?: any,
$textInputAriaLabel?: string
}
}
declare module "./src/edit_session" {
type TextMarker = import("./src/layer/text_markers").TextMarker;
type TextMarkers = typeof import("./src/layer/text_markers").editSessionTextMarkerMixin & {
$textMarkers: TextMarker[];
$textMarkerId: number;
$scheduleForRemove: Set<string>;
};
export interface EditSession extends Ace.EventEmitter<Ace.EditSessionEvents>,
Ace.OptionsProvider<Ace.EditSessionOptions>,
Ace.Folding, Ace.BracketMatch, TextMarkers {
doc: Ace.Document,
$highlightLineMarker?: {
start: Ace.Point,
end: Ace.Point,
id?: number
}
$useSoftTabs?: boolean,
$tabSize?: number,
$useWorker?: boolean,
$wrapAsCode?: boolean,
$indentedSoftWrap?: boolean,
$bracketHighlight?: any,
$selectionMarker?: number,
lineWidgetsWidth?: number,
$getWidgetScreenLength?: () => number,
_changedWidgets?: any,
$options: any,
$wrapMethod?: any,
$enableVarChar?: any,
$wrap?: any,
$navigateWithinSoftTabs?: boolean,
$selectionMarkers?: any[],
gutterRenderer?: any,
$firstLineNumber?: number,
$emacsMark?: any,
selectionMarkerCount?: number,
multiSelect?: any,
$occurHighlight?: any,
$occur?: Ace.Occur,
$occurMatchingLines?: any,
$useEmacsStyleLineStart?: boolean,
$selectLongWords?: boolean,
curOp: Ace.Operation | null,
getSelectionMarkers(): any[],
}
}
declare module "./src/edit_session/fold" {
export interface Fold {
collapseChildren?: number;
}
}
declare module "./src/placeholder" {
export interface PlaceHolder extends Ace.EventEmitter<Ace.PlaceHolderEvents> {
}
}
declare module "./src/scrollbar" {
export interface VScrollBar extends Ace.EventEmitter<Ace.ScrollbarEvents> {
}
export interface HScrollBar extends Ace.EventEmitter<Ace.ScrollbarEvents> {
}
}
declare module "./src/scrollbar_custom" {
export interface VScrollBar extends Ace.EventEmitter<Ace.ScrollbarEvents> {
}
export interface HScrollBar extends Ace.EventEmitter<Ace.ScrollbarEvents> {
}
}
declare module "./src/line_widgets" {
export interface LineWidgets {
lineWidgets: Ace.LineWidget[];
editor: Ace.Editor;
}
}
declare module "./src/selection" {
export interface Selection extends Ace.EventEmitter<Ace.MultiSelectionEvents>, Ace.MultiSelectProperties {
}
}
declare module "./src/range" {
export interface Range {
id?: number;
cursor?: Ace.Point;
isBackwards?: boolean;
}
}
declare module "./src/virtual_renderer" {
export interface VirtualRenderer extends Ace.EventEmitter<Ace.VirtualRendererEvents>, Ace.OptionsProvider<Ace.VirtualRendererOptions> {
$customScrollbar?: boolean,
$extraHeight?: number,
$showGutter?: boolean,
$showPrintMargin?: boolean,
$printMarginColumn?: number,
$animatedScroll?: boolean,
$isMousePressed?: boolean,
textarea: HTMLTextAreaElement,
$hScrollBarAlwaysVisible?: boolean,
$vScrollBarAlwaysVisible?: boolean
$maxLines?: number,
$scrollPastEnd?: number,
enableKeyboardAccessibility?: boolean,
$highlightGutterLine?: boolean,
$minLines?: number,
$maxPixelHeight?: number,
$gutterWidth?: number,
showInvisibles?: boolean,
$hasCssTransforms?: boolean,
$blockCursor?: boolean,
$useTextareaForIME?: boolean,
theme?: any,
$theme?: any,
destroyed?: boolean,
session: Ace.EditSession,
keyboardFocusClassName?: string,
}
}
declare module "./src/snippets" {
interface SnippetManager extends Ace.EventEmitter<any> {
}
}
declare module "./src/ext/command_bar" {
export interface CommandBarTooltip extends Ace.EventEmitter<Ace.CommandBarEvents> {
$shouldHideMoreOptions?: boolean,
}
}
declare module "./src/commands/command_manager" {
export interface CommandManager extends Ace.EventEmitter<Ace.CommandManagerEvents> {
$checkCommandState?: boolean
}
}
declare module "./src/autocomplete/popup" {
export interface AcePopup extends Ace.AcePopupWithEditor {
setSelectOnHover: (val: boolean) => void,
setRow: (line: number) => void,
getRow: () => number,
getHoveredRow: () => number,
filterText: string,
isOpen: boolean,
isTopdown: boolean,
autoSelect: boolean,
data: Ace.Completion[],
setData: (data: Ace.Completion[], filterText?: string) => void,
getData: (row: number) => Ace.Completion,
hide: () => void,
anchor: "top" | "bottom",
anchorPosition: Ace.Point,
tryShow: (pos: any, lineHeight: number, anchor: "top" | "bottom", forceShow?: boolean) => boolean,
$borderSize: number,
show: (pos: any, lineHeight: number, topdownOnly?: boolean) => void,
goTo: (where: Ace.AcePopupNavigation) => void,
getTextLeftOffset: () => number,
$imageSize: number,
anchorPos: any,
isMouseOver?: boolean,
selectedNode?: HTMLElement,
}
}
declare module "./src/layer/cursor" {
export interface Cursor {
timeoutId?: number;
}
}
declare module "./src/layer/gutter" {
export interface Gutter extends Ace.EventEmitter<Ace.GutterEvents> {
$useSvgGutterIcons?: boolean,
$showFoldedAnnotations?: boolean,
}
}
declare module "./src/layer/text" {
type TextMarkersMixin = typeof import("./src/layer/text_markers").textMarkerMixin;
export interface Text extends Ace.EventEmitter<Ace.TextEvents>, TextMarkersMixin {
config: Ace.LayerConfig
}
}
declare module "./src/lib/app_config" {
export interface AppConfig extends Ace.EventEmitter<any> {
}
}
declare module "./src/mouse/mouse_event" {
export interface MouseEvent {
time?: number;
}
}
declare module "./src/mouse/mouse_handler" {
export interface MouseHandler {
cancelDrag?: boolean
//from DefaultHandlers
$clickSelection?: Ace.Range,
mousedownEvent?: Ace.MouseEvent,
startSelect?: (pos?: Ace.Point, waitForClickSelection?: boolean) => void,
select?: () => void
$lastScroll?: { t: number, vx: number, vy: number, allowed: number }
selectEnd?: () => void
$tooltip?: Ace.GutterTooltip
}
}
declare module "./src/ext/options" {
export interface OptionPanel extends Ace.EventEmitter<Ace.OptionPanelEvents> {
}
}
declare module "./src/layer/font_metrics" {
export interface FontMetrics extends Ace.EventEmitter<Ace.FontMetricsEvents> {
}
}
declare module "./src/tooltip" {
export interface HoverTooltip {
row: number;
}
}
declare module "./src/mouse/default_gutter_handler" {
export interface GutterHandler {
}
}
declare module "./src/ext/diff/base_diff_view" {
export interface BaseDiffView extends Ace.OptionsProvider<import("ace-code/src/ext/diff").DiffViewOptions> {
}
}
================================================
FILE: ace-modes.d.ts
================================================
declare module "ace-code/src/mode/abap_highlight_rules" {
export const AbapHighlightRules: new () => import("ace-code").Ace.HighlightRules;
}
declare module "ace-code/src/mode/abap" {
export const Mode: new () => import("ace-code").Ace.SyntaxMode;
}
declare module "ace-code/src/mode/abc_highlight_rules" {
export const ABCHighlightRules: new () => import("ace-code").Ace.HighlightRules;
}
declare module "ace-code/src/mode/abc" {
export const Mode: new () => import("ace-code").Ace.SyntaxMode;
}
declare module "ace-code/src/mode/actionscript_highlight_rules" {
export const ActionScriptHighlightRules: new () => import("ace-code").Ace.HighlightRules;
}
declare module "ace-code/src/mode/actionscript" {
export const Mode: new () => import("ace-code").Ace.SyntaxMode;
}
declare module "ace-code/src/mode/ada_highlight_rules" {
export const AdaHighlightRules: new () => import("ace-code").Ace.HighlightRules;
}
declare module "ace-code/src/mode/ada" {
export const Mode: new () => import("ace-code").Ace.SyntaxMode;
}
declare module "ace-code/src/mode/alda_highlight_rules" {
export const AldaHighlightRules: new () => import("ace-code").Ace.HighlightRules;
}
declare module "ace-code/src/mode/alda" {
export const Mode: new () => import("ace-code").Ace.SyntaxMode;
}
declare module "ace-code/src/mode/apache_conf_highlight_rules" {
export const ApacheConfHighlightRules: new () => import("ace-code").Ace.HighlightRules;
}
declare module "ace-code/src/mode/apache_conf" {
export const Mode: new () => import("ace-code").Ace.SyntaxMode;
}
declare module "ace-code/src/mode/apex_highlight_rules" {
export const ApexHighlightRules: new () => import("ace-code").Ace.HighlightRules;
}
declare module "ace-code/src/mode/apex" {
export const Mode: new () => import("ace-code").Ace.SyntaxMode;
}
declare module "ace-code/src/mode/applescript_highlight_rules" {
export const AppleScriptHighlightRules: new () => import("ace-code").Ace.Hi
gitextract_tcf14d4c/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── add-to-website.yml │ │ ├── bug-report.yml │ │ ├── config.yml │ │ ├── documentation.yml │ │ └── feature-request.yml │ ├── PULL_REQUEST_TEMPLATE.md │ └── workflows/ │ ├── backwards-compatibility-commenter.yml │ ├── close-stale-issues.yml │ ├── issue-reprioritization.yml │ ├── link-comment.yml │ ├── nodejs.yml │ └── publish.yml ├── .gitignore ├── CHANGELOG.md ├── CNAME ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── Makefile ├── Makefile.dryice.js ├── Readme.md ├── _config.yml ├── ace-internal.d.ts ├── ace-modes.d.ts ├── ace.d.ts ├── amplify.yml ├── build_support/ │ ├── editor.html │ └── mini_require.js ├── demo/ │ ├── autocompletion.html │ ├── autoresize.html │ ├── code_lens.html │ ├── csp.html │ ├── diff/ │ │ ├── examples/ │ │ │ ├── editor.16.js │ │ │ ├── editor.17.js │ │ │ └── editor.40.js │ │ └── index.html │ ├── emmet.html │ ├── i18n.html │ ├── inline_autocompletion.html │ ├── keyboard_shortcuts.html │ ├── kitchen-sink/ │ │ ├── demo.js │ │ ├── dev_util.js │ │ ├── doclist.js │ │ ├── docs/ │ │ │ ├── Dockerfile │ │ │ ├── Makefile │ │ │ ├── abap.abap │ │ │ ├── abc.abc │ │ │ ├── actionscript.as │ │ │ ├── ada.ada │ │ │ ├── alda.alda │ │ │ ├── apex.apex │ │ │ ├── aql.aql │ │ │ ├── asciidoc.asciidoc │ │ │ ├── asl.dsl │ │ │ ├── assembly_arm32.s │ │ │ ├── assembly_x86.asm │ │ │ ├── astro.astro │ │ │ ├── autohotkey.ahk │ │ │ ├── basic.bas │ │ │ ├── batchfile.bat │ │ │ ├── bibtex.bib │ │ │ ├── c9search.c9search_results │ │ │ ├── c_cpp.cpp │ │ │ ├── cirru.cirru │ │ │ ├── clojure.clj │ │ │ ├── clue.clue │ │ │ ├── cobol.CBL │ │ │ ├── coffee.coffee │ │ │ ├── coldfusion.cfm │ │ │ ├── crystal.cr │ │ │ ├── csharp.cs │ │ │ ├── csound_document.csd │ │ │ ├── csound_orchestra.orc │ │ │ ├── csound_score.sco │ │ │ ├── css.css │ │ │ ├── csv.csv │ │ │ ├── curly.curly │ │ │ ├── cuttlefish.conf │ │ │ ├── d.d │ │ │ ├── dart.dart │ │ │ ├── diff.diff │ │ │ ├── django.djt │ │ │ ├── dot.dot │ │ │ ├── drools.drl │ │ │ ├── edifact.edi │ │ │ ├── eiffel.e │ │ │ ├── ejs.ejs │ │ │ ├── elixir.ex │ │ │ ├── elm.elm │ │ │ ├── erlang.erl │ │ │ ├── flix.flix │ │ │ ├── forth.frt │ │ │ ├── fortran.f │ │ │ ├── fsharp.fsi │ │ │ ├── fsl.fsl │ │ │ ├── ftl.ftl │ │ │ ├── gcode.gcode │ │ │ ├── gherkin.feature │ │ │ ├── glsl.glsl │ │ │ ├── gobstones.gbs │ │ │ ├── golang.go │ │ │ ├── graphqlschema.gql │ │ │ ├── groovy.groovy │ │ │ ├── haml.haml │ │ │ ├── handlebars.hbs │ │ │ ├── haskell.hs │ │ │ ├── haskell_cabal.cabal │ │ │ ├── haxe.hx │ │ │ ├── hjson.hjson │ │ │ ├── htaccess │ │ │ ├── html.html │ │ │ ├── html_elixir.eex │ │ │ ├── html_ruby.erb │ │ │ ├── ini.ini │ │ │ ├── io.io │ │ │ ├── ion.ion │ │ │ ├── jack.jack │ │ │ ├── jade.jade │ │ │ ├── java.java │ │ │ ├── javascript.js │ │ │ ├── jexl.jexl │ │ │ ├── json.json │ │ │ ├── json5.json5 │ │ │ ├── jsoniq.jq │ │ │ ├── jsp.jsp │ │ │ ├── jssm.jssm │ │ │ ├── jsx.jsx │ │ │ ├── julia.jl │ │ │ ├── kotlin.kt │ │ │ ├── latex.tex │ │ │ ├── latte.latte │ │ │ ├── less.less │ │ │ ├── liquid.liquid │ │ │ ├── lisp.lisp │ │ │ ├── livescript.ls │ │ │ ├── logiql.logic │ │ │ ├── logtalk.lgt │ │ │ ├── lsl.lsl │ │ │ ├── lua.lua │ │ │ ├── luapage.lp │ │ │ ├── lucene.lucene │ │ │ ├── markdown.md │ │ │ ├── mask.mask │ │ │ ├── matlab.matlab │ │ │ ├── maze.mz │ │ │ ├── mediawiki.wiki │ │ │ ├── mel.mel │ │ │ ├── mips.s │ │ │ ├── mixal.mixal │ │ │ ├── mushcode.mc │ │ │ ├── mysql.mysql │ │ │ ├── nasal.nas │ │ │ ├── nginx.nginx │ │ │ ├── nim.nim │ │ │ ├── nix.nix │ │ │ ├── nsis.nsi │ │ │ ├── nunjucks.nunjucks │ │ │ ├── objectivec.m │ │ │ ├── ocaml.ml │ │ │ ├── odin.odin │ │ │ ├── partiql.partiql │ │ │ ├── pascal.pas │ │ │ ├── perl.pl │ │ │ ├── pgsql.pgsql │ │ │ ├── php.php │ │ │ ├── php_laravel_blade.blade.php │ │ │ ├── pig.pig │ │ │ ├── plaintext.txt │ │ │ ├── plsql.plsql │ │ │ ├── powershell.ps1 │ │ │ ├── praat.praat │ │ │ ├── prisma.prisma │ │ │ ├── prolog.plg │ │ │ ├── properties.properties │ │ │ ├── protobuf.proto │ │ │ ├── prql.prql │ │ │ ├── puppet.epp │ │ │ ├── python.py │ │ │ ├── qml.qml │ │ │ ├── r.r │ │ │ ├── raku.raku │ │ │ ├── razor.cshtml │ │ │ ├── rdoc.Rd │ │ │ ├── red.red │ │ │ ├── rhtml.Rhtml │ │ │ ├── robot.robot │ │ │ ├── rst.rst │ │ │ ├── ruby.rb │ │ │ ├── rust.rs │ │ │ ├── sac.sac │ │ │ ├── sass.sass │ │ │ ├── scad.scad │ │ │ ├── scala.scala │ │ │ ├── scheme.scm │ │ │ ├── scrypt.scrypt │ │ │ ├── scss.scss │ │ │ ├── sh.sh │ │ │ ├── sjs.sjs │ │ │ ├── slim.slim │ │ │ ├── smarty.smarty │ │ │ ├── smithy.smithy │ │ │ ├── snippets.snippets │ │ │ ├── soy_template.soy │ │ │ ├── space.space │ │ │ ├── sparql.rq │ │ │ ├── sql.sql │ │ │ ├── sqlserver.sqlserver │ │ │ ├── stylus.styl │ │ │ ├── swift.swift │ │ │ ├── tcl.tcl │ │ │ ├── terraform.tf │ │ │ ├── tex.tex │ │ │ ├── text.txt │ │ │ ├── textile.textile │ │ │ ├── toml.toml │ │ │ ├── tsv.tsv │ │ │ ├── tsx.tsx │ │ │ ├── turtle.ttl │ │ │ ├── twig.twig │ │ │ ├── typescript.ts │ │ │ ├── vala.vala │ │ │ ├── vbscript.vbs │ │ │ ├── velocity.vm │ │ │ ├── verilog.v │ │ │ ├── vhdl.vhd │ │ │ ├── visualforce.vfp │ │ │ ├── vue.vue │ │ │ ├── wollok.wlk │ │ │ ├── xml.xml │ │ │ ├── xquery.xq │ │ │ ├── yaml.yaml │ │ │ ├── zeek.zeek │ │ │ └── zig.zig │ │ ├── file_drop.js │ │ ├── inline_editor.js │ │ ├── layout.js │ │ ├── require.js │ │ ├── styles.css │ │ ├── token_tooltip.js │ │ └── util.js │ ├── modelist.html │ ├── r.js/ │ │ ├── build.js │ │ └── editor.html │ ├── requirejs+build.html │ ├── scrollable-page.html │ ├── settings_menu.html │ ├── shadow-dom.html │ ├── show_own_source.js │ ├── static-highlighter/ │ │ ├── client.html │ │ └── server.js │ ├── static-highlighter.html │ ├── statusbar.html │ ├── test_ace_builds/ │ │ ├── index.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── test_package/ │ │ ├── index.ts │ │ ├── package.json │ │ └── tsconfig.json │ ├── toolbar.html │ ├── transform.html │ ├── webpack/ │ │ ├── demo.js │ │ ├── demo.ts │ │ ├── index.html │ │ ├── package.json │ │ └── webpack.config.js │ └── xml.xml ├── doc/ │ ├── README.md │ ├── additionalObjs.json │ ├── build.js │ ├── index.md │ ├── package.json │ ├── site/ │ │ ├── css/ │ │ │ └── font-awesome.css │ │ ├── iphone.css │ │ ├── js/ │ │ │ ├── ga.js │ │ │ └── main.js │ │ └── style.css │ └── template/ │ ├── jade/ │ │ ├── common_layout.jade │ │ ├── layout.jade │ │ └── lib.jade │ └── resources/ │ ├── csses/ │ │ └── ace_api.css │ └── javascripts/ │ ├── bbq.js │ ├── bootstrap.js │ ├── clicker.js │ ├── disqus-ext.js │ ├── jquery-scrollspy.js │ ├── jquery.collapse.js │ ├── jquery.cookie.js │ ├── plugins.js │ ├── prettify-extension.js │ ├── prettify.js │ └── ux.js ├── experiments/ │ ├── animate_folding.html │ ├── basic_animation.html │ ├── capture.html │ ├── cut_copy.html │ ├── debug_mem_leak.html │ ├── dom.html │ ├── triple_click.html │ ├── worker.html │ └── worker.js ├── index.html ├── kitchen-sink.html ├── package.json ├── src/ │ ├── ace.js │ ├── ace_test.js │ ├── anchor.js │ ├── anchor_test.js │ ├── apply_delta.js │ ├── autocomplete/ │ │ ├── inline.js │ │ ├── inline_screenreader.js │ │ ├── inline_test.js │ │ ├── popup.js │ │ ├── popup_test.js │ │ ├── text_completer.js │ │ └── util.js │ ├── autocomplete.js │ ├── autocomplete_test.js │ ├── background_tokenizer.js │ ├── background_tokenizer_test.js │ ├── bidihandler.js │ ├── clipboard.js │ ├── commands/ │ │ ├── command_manager.js │ │ ├── command_manager_test.js │ │ ├── default_commands.js │ │ ├── incremental_search_commands.js │ │ ├── multi_select_commands.js │ │ └── occur_commands.js │ ├── config.js │ ├── config_test.js │ ├── css/ │ │ └── editor-css.js │ ├── document.js │ ├── document_test.js │ ├── edit_session/ │ │ ├── bracket_match.js │ │ ├── fold.js │ │ ├── fold_line.js │ │ └── folding.js │ ├── edit_session.js │ ├── edit_session_test.js │ ├── editor.js │ ├── editor_change_document_test.js │ ├── editor_commands_test.js │ ├── editor_highlight_selected_word_test.js │ ├── editor_navigation_test.js │ ├── editor_options_test.js │ ├── editor_text_edit_test.js │ ├── ext/ │ │ ├── beautify.js │ │ ├── beautify_test.js │ │ ├── code_lens.js │ │ ├── code_lens_test.js │ │ ├── command_bar.js │ │ ├── command_bar_test.js │ │ ├── diff/ │ │ │ ├── base_diff_view.js │ │ │ ├── diff_test.js │ │ │ ├── gutter_decorator.js │ │ │ ├── inline_diff_view.js │ │ │ ├── providers/ │ │ │ │ └── default.js │ │ │ ├── scroll_diff_decorator.js │ │ │ ├── split_diff_view.js │ │ │ └── styles-css.js │ │ ├── diff.js │ │ ├── diff_test.js │ │ ├── elastic_tabstops_lite.js │ │ ├── emmet.js │ │ ├── emmet_test.js │ │ ├── error_marker.js │ │ ├── error_marker_test.js │ │ ├── hardwrap.js │ │ ├── hardwrap_test.js │ │ ├── inline_autocomplete.js │ │ ├── inline_autocomplete_test.js │ │ ├── keybinding_menu.js │ │ ├── language_tools.js │ │ ├── linking.js │ │ ├── menu_tools/ │ │ │ ├── get_editor_keyboard_shortcuts.js │ │ │ ├── overlay_page.js │ │ │ └── settings_menu.css.js │ │ ├── modelist.js │ │ ├── options.js │ │ ├── prompt.js │ │ ├── rtl.js │ │ ├── searchbox-css.js │ │ ├── searchbox.js │ │ ├── settings_menu.js │ │ ├── simple_tokenizer.js │ │ ├── simple_tokenizer_test.js │ │ ├── spellcheck.js │ │ ├── split.js │ │ ├── static-css.js │ │ ├── static_highlight.js │ │ ├── static_highlight_test.js │ │ ├── statusbar.js │ │ ├── textarea.js │ │ ├── themelist.js │ │ ├── whitespace.js │ │ ├── whitespace_test.js │ │ ├── whitespaces_in_selection.js │ │ └── whitespaces_in_selection_test.js │ ├── incremental_search.js │ ├── incremental_search_test.js │ ├── keyboard/ │ │ ├── emacs.js │ │ ├── emacs_test.js │ │ ├── gutter_handler.js │ │ ├── gutter_handler_test.js │ │ ├── hash_handler.js │ │ ├── keybinding.js │ │ ├── keybinding_test.js │ │ ├── sublime.js │ │ ├── sublime_test.js │ │ ├── textarea.js │ │ ├── textinput.js │ │ ├── textinput_test.js │ │ ├── vim.js │ │ ├── vim_ace_test.js │ │ ├── vim_test.js │ │ └── vscode.js │ ├── layer/ │ │ ├── cursor.js │ │ ├── decorators.js │ │ ├── font_metrics.js │ │ ├── gutter.js │ │ ├── gutter_test.js │ │ ├── lines.js │ │ ├── marker.js │ │ ├── text.js │ │ ├── text_markers.js │ │ ├── text_markers_test.js │ │ ├── text_test.js │ │ └── text_util.js │ ├── lib/ │ │ ├── app_config.js │ │ ├── bidiutil.js │ │ ├── deep_copy.js │ │ ├── default_english_messages.js │ │ ├── dom.js │ │ ├── es6-shim.js │ │ ├── event.js │ │ ├── event_emitter.js │ │ ├── event_emitter_test.js │ │ ├── fixoldbrowsers.js │ │ ├── keys.js │ │ ├── lang.js │ │ ├── net.js │ │ ├── oop.js │ │ ├── report_error.js │ │ ├── scroll.js │ │ └── useragent.js │ ├── line_widgets.js │ ├── marker_group.js │ ├── marker_group_test.js │ ├── mode/ │ │ ├── _test/ │ │ │ ├── Readme.md │ │ │ ├── highlight_rules_test.js │ │ │ ├── text_alda.txt │ │ │ ├── text_asciidoc.txt │ │ │ ├── text_coffee.txt │ │ │ ├── text_coldfusion.txt │ │ │ ├── text_curly.txt │ │ │ ├── text_ejs.txt │ │ │ ├── text_gobstones.txt │ │ │ ├── text_html.txt │ │ │ ├── text_javascript.txt │ │ │ ├── text_livescript.txt │ │ │ ├── text_lucene.txt │ │ │ ├── text_markdown.txt │ │ │ ├── text_php.txt │ │ │ ├── text_prisma.txt │ │ │ ├── text_razor.txt │ │ │ ├── text_ruby.txt │ │ │ ├── text_rust.txt │ │ │ ├── text_verilog.txt │ │ │ ├── text_wollok.txt │ │ │ ├── text_xml.txt │ │ │ ├── text_yaml.txt │ │ │ ├── tokens_abap.json │ │ │ ├── tokens_abc.json │ │ │ ├── tokens_actionscript.json │ │ │ ├── tokens_ada.json │ │ │ ├── tokens_alda.json │ │ │ ├── tokens_apex.json │ │ │ ├── tokens_aql.json │ │ │ ├── tokens_asciidoc.json │ │ │ ├── tokens_asl.json │ │ │ ├── tokens_assembly_x86.json │ │ │ ├── tokens_autohotkey.json │ │ │ ├── tokens_basic.json │ │ │ ├── tokens_batchfile.json │ │ │ ├── tokens_bibtex.json │ │ │ ├── tokens_c9search.json │ │ │ ├── tokens_c_cpp.json │ │ │ ├── tokens_cirru.json │ │ │ ├── tokens_clojure.json │ │ │ ├── tokens_cobol.json │ │ │ ├── tokens_coffee.json │ │ │ ├── tokens_coldfusion.json │ │ │ ├── tokens_crystal.json │ │ │ ├── tokens_csharp.json │ │ │ ├── tokens_csound_document.json │ │ │ ├── tokens_csound_orchestra.json │ │ │ ├── tokens_csound_score.json │ │ │ ├── tokens_csp.json │ │ │ ├── tokens_css.json │ │ │ ├── tokens_csv.json │ │ │ ├── tokens_curly.json │ │ │ ├── tokens_d.json │ │ │ ├── tokens_dart.json │ │ │ ├── tokens_diff.json │ │ │ ├── tokens_django.json │ │ │ ├── tokens_dot.json │ │ │ ├── tokens_drools.json │ │ │ ├── tokens_edifact.json │ │ │ ├── tokens_eiffel.json │ │ │ ├── tokens_ejs.json │ │ │ ├── tokens_elixir.json │ │ │ ├── tokens_elm.json │ │ │ ├── tokens_erlang.json │ │ │ ├── tokens_flix.json │ │ │ ├── tokens_forth.json │ │ │ ├── tokens_fortran.json │ │ │ ├── tokens_fsharp.json │ │ │ ├── tokens_fsl.json │ │ │ ├── tokens_ftl.json │ │ │ ├── tokens_gcode.json │ │ │ ├── tokens_gherkin.json │ │ │ ├── tokens_gitignore.json │ │ │ ├── tokens_glsl.json │ │ │ ├── tokens_gobstones.json │ │ │ ├── tokens_golang.json │ │ │ ├── tokens_graphqlschema.json │ │ │ ├── tokens_groovy.json │ │ │ ├── tokens_haml.json │ │ │ ├── tokens_handlebars.json │ │ │ ├── tokens_haskell.json │ │ │ ├── tokens_haskell_cabal.json │ │ │ ├── tokens_haxe.json │ │ │ ├── tokens_hjson.json │ │ │ ├── tokens_html.json │ │ │ ├── tokens_html_elixir.json │ │ │ ├── tokens_html_ruby.json │ │ │ ├── tokens_ini.json │ │ │ ├── tokens_io.json │ │ │ ├── tokens_ion.json │ │ │ ├── tokens_jack.json │ │ │ ├── tokens_jade.json │ │ │ ├── tokens_java.json │ │ │ ├── tokens_javascript.json │ │ │ ├── tokens_jexl.json │ │ │ ├── tokens_json.json │ │ │ ├── tokens_json5.json │ │ │ ├── tokens_jsp.json │ │ │ ├── tokens_jssm.json │ │ │ ├── tokens_jsx.json │ │ │ ├── tokens_julia.json │ │ │ ├── tokens_kotlin.json │ │ │ ├── tokens_latex.json │ │ │ ├── tokens_latte.json │ │ │ ├── tokens_less.json │ │ │ ├── tokens_liquid.json │ │ │ ├── tokens_lisp.json │ │ │ ├── tokens_livescript.json │ │ │ ├── tokens_logiql.json │ │ │ ├── tokens_logtalk.json │ │ │ ├── tokens_lsl.json │ │ │ ├── tokens_lua.json │ │ │ ├── tokens_luapage.json │ │ │ ├── tokens_lucene.json │ │ │ ├── tokens_markdown.json │ │ │ ├── tokens_mask.json │ │ │ ├── tokens_matlab.json │ │ │ ├── tokens_maze.json │ │ │ ├── tokens_mediawiki.json │ │ │ ├── tokens_mel.json │ │ │ ├── tokens_mips.json │ │ │ ├── tokens_mixal.json │ │ │ ├── tokens_mushcode.json │ │ │ ├── tokens_mysql.json │ │ │ ├── tokens_nasal.json │ │ │ ├── tokens_nginx.json │ │ │ ├── tokens_nim.json │ │ │ ├── tokens_nix.json │ │ │ ├── tokens_nsis.json │ │ │ ├── tokens_nunjucks.json │ │ │ ├── tokens_objectivec.json │ │ │ ├── tokens_ocaml.json │ │ │ ├── tokens_odin.json │ │ │ ├── tokens_partiql.json │ │ │ ├── tokens_pascal.json │ │ │ ├── tokens_perl.json │ │ │ ├── tokens_pgsql.json │ │ │ ├── tokens_php.json │ │ │ ├── tokens_php_laravel_blade.json │ │ │ ├── tokens_pig.json │ │ │ ├── tokens_plsql.json │ │ │ ├── tokens_powershell.json │ │ │ ├── tokens_praat.json │ │ │ ├── tokens_prisma.json │ │ │ ├── tokens_prolog.json │ │ │ ├── tokens_properties.json │ │ │ ├── tokens_protobuf.json │ │ │ ├── tokens_puppet.json │ │ │ ├── tokens_python.json │ │ │ ├── tokens_qml.json │ │ │ ├── tokens_r.json │ │ │ ├── tokens_raku.json │ │ │ ├── tokens_razor.json │ │ │ ├── tokens_rdoc.json │ │ │ ├── tokens_red.json │ │ │ ├── tokens_rhtml.json │ │ │ ├── tokens_robot.json │ │ │ ├── tokens_rst.json │ │ │ ├── tokens_ruby.json │ │ │ ├── tokens_rust.json │ │ │ ├── tokens_sac.json │ │ │ ├── tokens_sass.json │ │ │ ├── tokens_scad.json │ │ │ ├── tokens_scala.json │ │ │ ├── tokens_scheme.json │ │ │ ├── tokens_scrypt.json │ │ │ ├── tokens_scss.json │ │ │ ├── tokens_sh.json │ │ │ ├── tokens_sjs.json │ │ │ ├── tokens_slim.json │ │ │ ├── tokens_smarty.json │ │ │ ├── tokens_smithy.json │ │ │ ├── tokens_snippets.json │ │ │ ├── tokens_soy_template.json │ │ │ ├── tokens_space.json │ │ │ ├── tokens_sparql.json │ │ │ ├── tokens_sql.json │ │ │ ├── tokens_sqlserver.json │ │ │ ├── tokens_stylus.json │ │ │ ├── tokens_svg.json │ │ │ ├── tokens_swift.json │ │ │ ├── tokens_tcl.json │ │ │ ├── tokens_terraform.json │ │ │ ├── tokens_tex.json │ │ │ ├── tokens_text.json │ │ │ ├── tokens_textile.json │ │ │ ├── tokens_toml.json │ │ │ ├── tokens_tsv.json │ │ │ ├── tokens_tsx.json │ │ │ ├── tokens_turtle.json │ │ │ ├── tokens_twig.json │ │ │ ├── tokens_typescript.json │ │ │ ├── tokens_vala.json │ │ │ ├── tokens_vbscript.json │ │ │ ├── tokens_velocity.json │ │ │ ├── tokens_verilog.json │ │ │ ├── tokens_vhdl.json │ │ │ ├── tokens_visualforce.json │ │ │ ├── tokens_vue.json │ │ │ ├── tokens_wollok.json │ │ │ ├── tokens_xml.json │ │ │ ├── tokens_yaml.json │ │ │ └── tokens_zeek.json │ │ ├── abap.js │ │ ├── abap_highlight_rules.js │ │ ├── abc.js │ │ ├── abc_highlight_rules.js │ │ ├── actionscript.js │ │ ├── actionscript_highlight_rules.js │ │ ├── ada.js │ │ ├── ada_highlight_rules.js │ │ ├── ada_test.js │ │ ├── alda.js │ │ ├── alda_highlight_rules.js │ │ ├── apache_conf.js │ │ ├── apache_conf_highlight_rules.js │ │ ├── apex.js │ │ ├── apex_highlight_rules.js │ │ ├── applescript.js │ │ ├── applescript_highlight_rules.js │ │ ├── aql.js │ │ ├── aql_highlight_rules.js │ │ ├── asciidoc.js │ │ ├── asciidoc_highlight_rules.js │ │ ├── asl.js │ │ ├── asl_highlight_rules.js │ │ ├── assembly_arm32.js │ │ ├── assembly_arm32_highlight_rules.js │ │ ├── assembly_x86.js │ │ ├── assembly_x86_highlight_rules.js │ │ ├── astro.js │ │ ├── astro_highlight_rules.js │ │ ├── autohotkey.js │ │ ├── autohotkey_highlight_rules.js │ │ ├── basic.js │ │ ├── basic_highlight_rules.js │ │ ├── batchfile.js │ │ ├── batchfile_highlight_rules.js │ │ ├── behaviour/ │ │ │ ├── behaviour_test.js │ │ │ ├── css.js │ │ │ ├── cstyle.js │ │ │ ├── html.js │ │ │ ├── javascript.js │ │ │ ├── liquid.js │ │ │ ├── xml.js │ │ │ └── xquery.js │ │ ├── behaviour.js │ │ ├── bibtex.js │ │ ├── bibtex_highlight_rules.js │ │ ├── c9search.js │ │ ├── c9search_highlight_rules.js │ │ ├── c_cpp.js │ │ ├── c_cpp_highlight_rules.js │ │ ├── cirru.js │ │ ├── cirru_highlight_rules.js │ │ ├── clojure.js │ │ ├── clojure_highlight_rules.js │ │ ├── clue.js │ │ ├── clue_highlight_rules.js │ │ ├── cobol.js │ │ ├── cobol_highlight_rules.js │ │ ├── coffee.js │ │ ├── coffee_highlight_rules.js │ │ ├── coldfusion.js │ │ ├── coldfusion_highlight_rules.js │ │ ├── coldfusion_test.js │ │ ├── crystal.js │ │ ├── crystal_highlight_rules.js │ │ ├── csharp.js │ │ ├── csharp_highlight_rules.js │ │ ├── csound_document.js │ │ ├── csound_document_highlight_rules.js │ │ ├── csound_orchestra.js │ │ ├── csound_orchestra_highlight_rules.js │ │ ├── csound_preprocessor_highlight_rules.js │ │ ├── csound_score.js │ │ ├── csound_score_highlight_rules.js │ │ ├── csp.js │ │ ├── csp_highlight_rules.js │ │ ├── css.js │ │ ├── css_completions.js │ │ ├── css_highlight_rules.js │ │ ├── css_test.js │ │ ├── csv.js │ │ ├── csv_highlight_rules.js │ │ ├── curly.js │ │ ├── curly_highlight_rules.js │ │ ├── cuttlefish.js │ │ ├── cuttlefish_highlight_rules.js │ │ ├── d.js │ │ ├── d_highlight_rules.js │ │ ├── dart.js │ │ ├── dart_highlight_rules.js │ │ ├── diff.js │ │ ├── diff_highlight_rules.js │ │ ├── django.js │ │ ├── doc_comment_highlight_rules.js │ │ ├── dockerfile.js │ │ ├── dockerfile_highlight_rules.js │ │ ├── dot.js │ │ ├── dot_highlight_rules.js │ │ ├── drools.js │ │ ├── drools_highlight_rules.js │ │ ├── edifact.js │ │ ├── edifact_highlight_rules.js │ │ ├── eiffel.js │ │ ├── eiffel_highlight_rules.js │ │ ├── ejs.js │ │ ├── elixir.js │ │ ├── elixir_highlight_rules.js │ │ ├── elm.js │ │ ├── elm_highlight_rules.js │ │ ├── erlang.js │ │ ├── erlang_highlight_rules.js │ │ ├── flix.js │ │ ├── flix_highlight_rules.js │ │ ├── folding/ │ │ │ ├── asciidoc.js │ │ │ ├── basic.js │ │ │ ├── basic_test.js │ │ │ ├── c9search.js │ │ │ ├── coffee.js │ │ │ ├── coffee_test.js │ │ │ ├── csharp.js │ │ │ ├── cstyle.js │ │ │ ├── cstyle_test.js │ │ │ ├── diff.js │ │ │ ├── drools.js │ │ │ ├── drools_test.js │ │ │ ├── fold_mode.js │ │ │ ├── fold_mode_test.js │ │ │ ├── haskell_cabal.js │ │ │ ├── html.js │ │ │ ├── html_test.js │ │ │ ├── ini.js │ │ │ ├── java.js │ │ │ ├── javascript.js │ │ │ ├── javascript_test.js │ │ │ ├── latex.js │ │ │ ├── latex_test.js │ │ │ ├── lua.js │ │ │ ├── lua_test.js │ │ │ ├── markdown.js │ │ │ ├── mixed.js │ │ │ ├── nunjucks.js │ │ │ ├── nunjucks_test.js │ │ │ ├── php.js │ │ │ ├── php_test.js │ │ │ ├── pythonic.js │ │ │ ├── pythonic_test.js │ │ │ ├── ruby.js │ │ │ ├── ruby_test.js │ │ │ ├── sql.js │ │ │ ├── sqlserver.js │ │ │ ├── vbscript.js │ │ │ ├── vbscript_test.js │ │ │ ├── velocity.js │ │ │ ├── xml.js │ │ │ ├── xml_test.js │ │ │ ├── yaml.js │ │ │ └── yaml_test.js │ │ ├── forth.js │ │ ├── forth_highlight_rules.js │ │ ├── fortran.js │ │ ├── fortran_highlight_rules.js │ │ ├── fsharp.js │ │ ├── fsharp_highlight_rules.js │ │ ├── fsl.js │ │ ├── fsl_highlight_rules.js │ │ ├── ftl.js │ │ ├── ftl_highlight_rules.js │ │ ├── gcode.js │ │ ├── gcode_highlight_rules.js │ │ ├── gherkin.js │ │ ├── gherkin_highlight_rules.js │ │ ├── gitignore.js │ │ ├── gitignore_highlight_rules.js │ │ ├── glsl.js │ │ ├── glsl_highlight_rules.js │ │ ├── gobstones.js │ │ ├── gobstones_highlight_rules.js │ │ ├── golang.js │ │ ├── golang_highlight_rules.js │ │ ├── graphqlschema.js │ │ ├── graphqlschema_highlight_rules.js │ │ ├── groovy.js │ │ ├── groovy_highlight_rules.js │ │ ├── haml.js │ │ ├── haml_highlight_rules.js │ │ ├── handlebars.js │ │ ├── handlebars_highlight_rules.js │ │ ├── haskell.js │ │ ├── haskell_cabal.js │ │ ├── haskell_cabal_highlight_rules.js │ │ ├── haskell_highlight_rules.js │ │ ├── haxe.js │ │ ├── haxe_highlight_rules.js │ │ ├── hjson.js │ │ ├── hjson_highlight_rules.js │ │ ├── html.js │ │ ├── html_completions.js │ │ ├── html_elixir.js │ │ ├── html_elixir_highlight_rules.js │ │ ├── html_highlight_rules.js │ │ ├── html_ruby.js │ │ ├── html_ruby_highlight_rules.js │ │ ├── html_test.js │ │ ├── ini.js │ │ ├── ini_highlight_rules.js │ │ ├── io.js │ │ ├── io_highlight_rules.js │ │ ├── ion.js │ │ ├── ion_highlight_rules.js │ │ ├── jack.js │ │ ├── jack_highlight_rules.js │ │ ├── jade.js │ │ ├── jade_highlight_rules.js │ │ ├── java.js │ │ ├── java_highlight_rules.js │ │ ├── javascript.js │ │ ├── javascript_highlight_rules.js │ │ ├── javascript_test.js │ │ ├── jexl.js │ │ ├── jexl_highlight_rules.js │ │ ├── js_regex_highlight_rules.js │ │ ├── jsdoc_comment_highlight_rules.js │ │ ├── json.js │ │ ├── json5.js │ │ ├── json5_highlight_rules.js │ │ ├── json_highlight_rules.js │ │ ├── jsp.js │ │ ├── jsp_highlight_rules.js │ │ ├── jssm.js │ │ ├── jssm_highlight_rules.js │ │ ├── jsx.js │ │ ├── jsx_highlight_rules.js │ │ ├── julia.js │ │ ├── julia_highlight_rules.js │ │ ├── kotlin.js │ │ ├── kotlin_highlight_rules.js │ │ ├── latex.js │ │ ├── latex_highlight_rules.js │ │ ├── latte.js │ │ ├── latte_highlight_rules.js │ │ ├── less.js │ │ ├── less_highlight_rules.js │ │ ├── liquid.js │ │ ├── liquid_highlight_rules.js │ │ ├── lisp.js │ │ ├── lisp_highlight_rules.js │ │ ├── livescript.js │ │ ├── logiql.js │ │ ├── logiql_highlight_rules.js │ │ ├── logiql_test.js │ │ ├── logtalk.js │ │ ├── logtalk_highlight_rules.js │ │ ├── lsl.js │ │ ├── lsl_highlight_rules.js │ │ ├── lua.js │ │ ├── lua_highlight_rules.js │ │ ├── luapage.js │ │ ├── luapage_highlight_rules.js │ │ ├── lucene.js │ │ ├── lucene_highlight_rules.js │ │ ├── makefile.js │ │ ├── makefile_highlight_rules.js │ │ ├── markdown.js │ │ ├── markdown_highlight_rules.js │ │ ├── mask.js │ │ ├── mask_highlight_rules.js │ │ ├── matching_brace_outdent.js │ │ ├── matching_parens_outdent.js │ │ ├── matlab.js │ │ ├── matlab_highlight_rules.js │ │ ├── maze.js │ │ ├── maze_highlight_rules.js │ │ ├── mediawiki.js │ │ ├── mediawiki_highlight_rules.js │ │ ├── mel.js │ │ ├── mel_highlight_rules.js │ │ ├── mips.js │ │ ├── mips_highlight_rules.js │ │ ├── mixal.js │ │ ├── mixal_highlight_rules.js │ │ ├── mushcode.js │ │ ├── mushcode_highlight_rules.js │ │ ├── mysql.js │ │ ├── mysql_highlight_rules.js │ │ ├── nasal.js │ │ ├── nasal_highlight_rules.js │ │ ├── nginx.js │ │ ├── nginx_highlight_rules.js │ │ ├── nim.js │ │ ├── nim_highlight_rules.js │ │ ├── nix.js │ │ ├── nix_highlight_rules.js │ │ ├── nsis.js │ │ ├── nsis_highlight_rules.js │ │ ├── nunjucks.js │ │ ├── nunjucks_highlight_rules.js │ │ ├── objectivec.js │ │ ├── objectivec_highlight_rules.js │ │ ├── ocaml.js │ │ ├── ocaml_highlight_rules.js │ │ ├── odin.js │ │ ├── odin_highlight_rules.js │ │ ├── odin_test.js │ │ ├── partiql.js │ │ ├── partiql_highlight_rules.js │ │ ├── pascal.js │ │ ├── pascal_highlight_rules.js │ │ ├── perl.js │ │ ├── perl_highlight_rules.js │ │ ├── pgsql.js │ │ ├── pgsql_highlight_rules.js │ │ ├── php.js │ │ ├── php_completions.js │ │ ├── php_highlight_rules.js │ │ ├── php_laravel_blade.js │ │ ├── php_laravel_blade_highlight_rules.js │ │ ├── php_test.js │ │ ├── pig.js │ │ ├── pig_highlight_rules.js │ │ ├── plain_text.js │ │ ├── plain_text_test.js │ │ ├── plsql.js │ │ ├── plsql_highlight_rules.js │ │ ├── powershell.js │ │ ├── powershell_highlight_rules.js │ │ ├── praat.js │ │ ├── praat_highlight_rules.js │ │ ├── prisma.js │ │ ├── prisma_highlight_rules.js │ │ ├── prolog.js │ │ ├── prolog_highlight_rules.js │ │ ├── properties.js │ │ ├── properties_highlight_rules.js │ │ ├── protobuf.js │ │ ├── protobuf_highlight_rules.js │ │ ├── prql.js │ │ ├── prql_highlight_rules.js │ │ ├── puppet.js │ │ ├── puppet_highlight_rules.js │ │ ├── python.js │ │ ├── python_highlight_rules.js │ │ ├── python_test.js │ │ ├── qml.js │ │ ├── qml_highlight_rules.js │ │ ├── r.js │ │ ├── r_highlight_rules.js │ │ ├── raku.js │ │ ├── raku_highlight_rules.js │ │ ├── razor.js │ │ ├── razor_completions.js │ │ ├── razor_highlight_rules.js │ │ ├── rdoc.js │ │ ├── rdoc_highlight_rules.js │ │ ├── red.js │ │ ├── red_highlight_rules.js │ │ ├── redshift.js │ │ ├── redshift_highlight_rules.js │ │ ├── rhtml.js │ │ ├── rhtml_highlight_rules.js │ │ ├── robot.js │ │ ├── robot_highlight_rules.js │ │ ├── rst.js │ │ ├── rst_highlight_rules.js │ │ ├── ruby.js │ │ ├── ruby_highlight_rules.js │ │ ├── ruby_test.js │ │ ├── rust.js │ │ ├── rust_highlight_rules.js │ │ ├── sac.js │ │ ├── sac_highlight_rules.js │ │ ├── sass.js │ │ ├── sass_highlight_rules.js │ │ ├── scad.js │ │ ├── scad_highlight_rules.js │ │ ├── scala.js │ │ ├── scala_highlight_rules.js │ │ ├── scheme.js │ │ ├── scheme_highlight_rules.js │ │ ├── scrypt.js │ │ ├── scrypt_highlight_rules.js │ │ ├── scss.js │ │ ├── scss_highlight_rules.js │ │ ├── sh.js │ │ ├── sh_highlight_rules.js │ │ ├── sjs.js │ │ ├── sjs_highlight_rules.js │ │ ├── slim.js │ │ ├── slim_highlight_rules.js │ │ ├── smarty.js │ │ ├── smarty_highlight_rules.js │ │ ├── smithy.js │ │ ├── smithy_highlight_rules.js │ │ ├── snippets.js │ │ ├── soy_template.js │ │ ├── soy_template_highlight_rules.js │ │ ├── space.js │ │ ├── space_highlight_rules.js │ │ ├── sparql.js │ │ ├── sparql_highlight_rules.js │ │ ├── sql.js │ │ ├── sql_highlight_rules.js │ │ ├── sqlserver.js │ │ ├── sqlserver_highlight_rules.js │ │ ├── stylus.js │ │ ├── stylus_highlight_rules.js │ │ ├── svg.js │ │ ├── svg_highlight_rules.js │ │ ├── swift.js │ │ ├── swift_highlight_rules.js │ │ ├── tcl.js │ │ ├── tcl_highlight_rules.js │ │ ├── terraform.js │ │ ├── terraform_highlight_rules.js │ │ ├── tex.js │ │ ├── tex_highlight_rules.js │ │ ├── text.js │ │ ├── text_highlight_rules.js │ │ ├── text_test.js │ │ ├── textile.js │ │ ├── textile_highlight_rules.js │ │ ├── toml.js │ │ ├── toml_highlight_rules.js │ │ ├── tsv.js │ │ ├── tsv_highlight_rules.js │ │ ├── tsx.js │ │ ├── tsx_highlight_rules.js │ │ ├── turtle.js │ │ ├── turtle_highlight_rules.js │ │ ├── twig.js │ │ ├── twig_highlight_rules.js │ │ ├── typescript.js │ │ ├── typescript_highlight_rules.js │ │ ├── vala.js │ │ ├── vala_highlight_rules.js │ │ ├── vbscript.js │ │ ├── vbscript_highlight_rules.js │ │ ├── vbscript_test.js │ │ ├── velocity.js │ │ ├── velocity_highlight_rules.js │ │ ├── verilog.js │ │ ├── verilog_highlight_rules.js │ │ ├── vhdl.js │ │ ├── vhdl_highlight_rules.js │ │ ├── visualforce.js │ │ ├── visualforce_highlight_rules.js │ │ ├── vue.js │ │ ├── vue_highlight_rules.js │ │ ├── wollok.js │ │ ├── wollok_highlight_rules.js │ │ ├── xml.js │ │ ├── xml_highlight_rules.js │ │ ├── xml_test.js │ │ ├── yaml.js │ │ ├── yaml_highlight_rules.js │ │ ├── zeek.js │ │ ├── zeek_highlight_rules.js │ │ ├── zig.js │ │ └── zig_highlight_rules.js │ ├── mouse/ │ │ ├── default_gutter_handler.js │ │ ├── default_gutter_handler_test.js │ │ ├── default_handlers.js │ │ ├── dragdrop_handler.js │ │ ├── fold_handler.js │ │ ├── mouse_event.js │ │ ├── mouse_handler.js │ │ ├── mouse_handler_test.js │ │ ├── multi_select_handler.js │ │ └── touch_handler.js │ ├── multi_select.js │ ├── multi_select_test.js │ ├── occur.js │ ├── occur_test.js │ ├── placeholder.js │ ├── placeholder_test.js │ ├── range.js │ ├── range_list.js │ ├── range_list_test.js │ ├── range_test.js │ ├── renderloop.js │ ├── scrollbar.js │ ├── scrollbar_custom.js │ ├── scrollbar_test.js │ ├── search.js │ ├── search_highlight.js │ ├── search_test.js │ ├── selection.js │ ├── selection_test.js │ ├── snippets/ │ │ ├── abc.js │ │ ├── abc.snippets.js │ │ ├── actionscript.js │ │ ├── actionscript.snippets.js │ │ ├── c_cpp.js │ │ ├── c_cpp.snippets.js │ │ ├── clojure.js │ │ ├── clojure.snippets.js │ │ ├── coffee.js │ │ ├── coffee.snippets.js │ │ ├── csound_document.js │ │ ├── csound_document.snippets.js │ │ ├── csound_orchestra.js │ │ ├── csound_orchestra.snippets.js │ │ ├── css.js │ │ ├── css.snippets.js │ │ ├── dart.js │ │ ├── dart.snippets.js │ │ ├── diff.js │ │ ├── diff.snippets.js │ │ ├── django.js │ │ ├── django.snippets.js │ │ ├── drools.js │ │ ├── drools.snippets.js │ │ ├── edifact.js │ │ ├── edifact.snippets.js │ │ ├── erlang.js │ │ ├── erlang.snippets.js │ │ ├── fsl.js │ │ ├── fsl.snippets.js │ │ ├── gobstones.js │ │ ├── gobstones.snippets.js │ │ ├── graphqlschema.js │ │ ├── graphqlschema.snippets.js │ │ ├── haml.js │ │ ├── haml.snippets.js │ │ ├── haskell.js │ │ ├── haskell.snippets.js │ │ ├── html.js │ │ ├── html.snippets.js │ │ ├── io.js │ │ ├── java.js │ │ ├── java.snippets.js │ │ ├── javascript.js │ │ ├── javascript.snippets.js │ │ ├── jsp.js │ │ ├── jsp.snippets.js │ │ ├── liquid.js │ │ ├── liquid.snippets.js │ │ ├── lsl.js │ │ ├── lsl.snippets.js │ │ ├── lua.js │ │ ├── lua.snippets.js │ │ ├── makefile.js │ │ ├── makefile.snippets.js │ │ ├── markdown.js │ │ ├── markdown.snippets.js │ │ ├── maze.js │ │ ├── maze.snippets.js │ │ ├── perl.js │ │ ├── perl.snippets.js │ │ ├── php.js │ │ ├── php.snippets.js │ │ ├── python.js │ │ ├── python.snippets.js │ │ ├── r.js │ │ ├── r.snippets.js │ │ ├── razor.js │ │ ├── razor.snippets.js │ │ ├── robot.js │ │ ├── robot.snippets.js │ │ ├── rst.js │ │ ├── rst.snippets.js │ │ ├── ruby.js │ │ ├── ruby.snippets.js │ │ ├── sh.js │ │ ├── sh.snippets.js │ │ ├── snippets.js │ │ ├── snippets.snippets.js │ │ ├── sql.js │ │ ├── sql.snippets.js │ │ ├── sqlserver.js │ │ ├── sqlserver.snippets.js │ │ ├── tcl.js │ │ ├── tcl.snippets.js │ │ ├── tex.js │ │ ├── tex.snippets.js │ │ ├── textile.js │ │ ├── textile.snippets.js │ │ ├── vala.js │ │ ├── velocity.js │ │ ├── velocity.snippets.js │ │ ├── wollok.js │ │ └── wollok.snippets.js │ ├── snippets.js │ ├── snippets_test.js │ ├── split.js │ ├── test/ │ │ ├── all.js │ │ ├── all_browser.js │ │ ├── assertions.js │ │ ├── asyncjs/ │ │ │ └── assert.js │ │ ├── benchmark.js │ │ ├── mockdom.js │ │ ├── mockdom_test.js │ │ ├── mockrenderer.js │ │ ├── run.js │ │ ├── test_list.js │ │ ├── tests.html │ │ ├── update_test_list.js │ │ └── user.js │ ├── theme/ │ │ ├── ambiance-css.js │ │ ├── ambiance.js │ │ ├── chaos-css.js │ │ ├── chaos.js │ │ ├── chrome-css.js │ │ ├── chrome.js │ │ ├── cloud9_day-css.js │ │ ├── cloud9_day.js │ │ ├── cloud9_night-css.js │ │ ├── cloud9_night.js │ │ ├── cloud9_night_low_color-css.js │ │ ├── cloud9_night_low_color.js │ │ ├── cloud_editor-css.js │ │ ├── cloud_editor.js │ │ ├── cloud_editor_dark-css.js │ │ ├── cloud_editor_dark.js │ │ ├── clouds-css.js │ │ ├── clouds.js │ │ ├── clouds_midnight-css.js │ │ ├── clouds_midnight.js │ │ ├── cobalt-css.js │ │ ├── cobalt.js │ │ ├── crimson_editor-css.js │ │ ├── crimson_editor.js │ │ ├── dawn-css.js │ │ ├── dawn.js │ │ ├── dracula-css.js │ │ ├── dracula.js │ │ ├── dreamweaver-css.js │ │ ├── dreamweaver.js │ │ ├── eclipse-css.js │ │ ├── eclipse.js │ │ ├── github-css.js │ │ ├── github.js │ │ ├── github_dark-css.js │ │ ├── github_dark.js │ │ ├── github_light_default-css.js │ │ ├── github_light_default.js │ │ ├── gob-css.js │ │ ├── gob.js │ │ ├── gruvbox-css.js │ │ ├── gruvbox.js │ │ ├── gruvbox_dark_hard-css.js │ │ ├── gruvbox_dark_hard.js │ │ ├── gruvbox_light_hard-css.js │ │ ├── gruvbox_light_hard.js │ │ ├── idle_fingers-css.js │ │ ├── idle_fingers.js │ │ ├── iplastic-css.js │ │ ├── iplastic.js │ │ ├── katzenmilch-css.js │ │ ├── katzenmilch.js │ │ ├── kr_theme-css.js │ │ ├── kr_theme.js │ │ ├── kuroir-css.js │ │ ├── kuroir.js │ │ ├── merbivore-css.js │ │ ├── merbivore.js │ │ ├── merbivore_soft-css.js │ │ ├── merbivore_soft.js │ │ ├── mono_industrial-css.js │ │ ├── mono_industrial.js │ │ ├── monokai-css.js │ │ ├── monokai.js │ │ ├── nord_dark-css.js │ │ ├── nord_dark.js │ │ ├── one_dark-css.js │ │ ├── one_dark.js │ │ ├── pastel_on_dark-css.js │ │ ├── pastel_on_dark.js │ │ ├── solarized_dark-css.js │ │ ├── solarized_dark.js │ │ ├── solarized_light-css.js │ │ ├── solarized_light.js │ │ ├── sqlserver-css.js │ │ ├── sqlserver.js │ │ ├── terminal-css.js │ │ ├── terminal.js │ │ ├── textmate-css.js │ │ ├── textmate.js │ │ ├── tomorrow-css.js │ │ ├── tomorrow.js │ │ ├── tomorrow_night-css.js │ │ ├── tomorrow_night.js │ │ ├── tomorrow_night_blue-css.js │ │ ├── tomorrow_night_blue.js │ │ ├── tomorrow_night_bright-css.js │ │ ├── tomorrow_night_bright.js │ │ ├── tomorrow_night_eighties-css.js │ │ ├── tomorrow_night_eighties.js │ │ ├── twilight-css.js │ │ ├── twilight.js │ │ ├── vibrant_ink-css.js │ │ ├── vibrant_ink.js │ │ ├── xcode-css.js │ │ └── xcode.js │ ├── token_iterator.js │ ├── token_iterator_test.js │ ├── tokenizer.js │ ├── tokenizer_dev.js │ ├── tokenizer_test.js │ ├── tooltip.js │ ├── tooltip_test.js │ ├── undomanager.js │ ├── undomanager_test.js │ ├── unicode.js │ ├── virtual_renderer.js │ ├── virtual_renderer_test.js │ └── worker/ │ └── worker_client.js ├── static.js ├── tool/ │ ├── Readme.md │ ├── ace_declaration_generator.js │ ├── add_mode.js │ ├── esm_resolver_generator.js │ ├── lib.js │ ├── mode_creator.html │ ├── mode_creator.js │ ├── modes-declaration-generator.js │ ├── package.json │ ├── perf-test.html │ ├── regexp_to_keywords.js │ ├── regexp_tokenizer.js │ ├── regexp_tokenizer_test.js │ ├── release-api-docs.sh │ ├── release.sh │ ├── templates/ │ │ ├── dummy.JSON-tmLanguage │ │ ├── highlight_rules.js │ │ ├── mode.js │ │ ├── snippets.js │ │ ├── theme.css │ │ └── theme.js │ ├── test-ace-builds-package.sh │ ├── test-npm-package.sh │ ├── tmlanguage.js │ ├── tmsnippets.js │ ├── tmtheme.js │ ├── tmthemes/ │ │ ├── Active4D.tmTheme │ │ ├── Amy.tmTheme │ │ ├── Blackboard.tmTheme │ │ ├── Clouds.tmTheme │ │ ├── Cobalt.tmTheme │ │ ├── Dawn.tmTheme │ │ ├── Dreamweaver.tmTheme │ │ ├── Eiffel.tmTheme │ │ ├── GitHub.tmTheme │ │ ├── IDLE.tmTheme │ │ ├── Katzenmilch.tmTheme │ │ ├── LAZY.tmTheme │ │ ├── LICENSE │ │ ├── Merbivore.tmTheme │ │ ├── Monokai.tmTheme │ │ ├── Solarized-dark.tmTheme │ │ ├── Solarized-light.tmTheme │ │ ├── SpaceCadet.tmTheme │ │ ├── Sunburst.tmTheme │ │ ├── Tomorrow-Night-Blue.tmTheme │ │ ├── Tomorrow-Night-Bright.tmTheme │ │ ├── Tomorrow-Night-Eighties.tmTheme │ │ ├── Tomorrow-Night.tmTheme │ │ ├── Tomorrow.tmTheme │ │ ├── Twilight.tmTheme │ │ ├── Xcode_default.tmTheme │ │ ├── Zenburnesque.tmTheme │ │ ├── gruvboxDarkHard.tmTheme │ │ ├── gruvboxLightHard.tmTheme │ │ ├── iPlastic.tmTheme │ │ ├── idleFingers.tmTheme │ │ ├── krTheme.tmTheme │ │ └── monoindustrial.tmTheme │ ├── unicode.js │ ├── update_deps.js │ └── wrap_keyword_regexp.js ├── translations/ │ ├── Readme.md │ ├── am.json │ ├── es.json │ └── ru.json ├── tsconfig.json ├── types/ │ ├── ace-ext.d.ts │ ├── ace-lib.d.ts │ ├── ace-modules.d.ts │ ├── ace-snippets.d.ts │ └── ace-theme.d.ts └── version.js
Showing preview only (231K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3272 symbols across 226 files)
FILE: Makefile.dryice.js
function generateAmdModules (line 48) | function generateAmdModules() {
function main (line 93) | function main(args) {
function showHelp (line 146) | function showHelp(type) {
function ace (line 169) | function ace() {
function correctDeclarationsForBuild (line 182) | function correctDeclarationsForBuild(path, additionalDeclarations) {
function buildTypes (line 195) | function buildTypes() {
function demo (line 254) | function demo() {
function jsFileList (line 327) | function jsFileList(path, filter) {
function searchFiles (line 338) | function searchFiles(dir, fn) {
function workers (line 356) | function workers(path) {
function modeList (line 363) | function modeList(path) {
function buildAceModule (line 368) | function buildAceModule(opts, callback) {
function buildAceModuleInternal (line 397) | function buildAceModuleInternal(opts, callback) {
function buildCore (line 480) | function buildCore(options, extra, callback) {
function buildSubmodule (line 493) | function buildSubmodule(options, extra, file, callback) {
function buildAce (line 503) | function buildAce(options, callback) {
function extractCss (line 595) | function extractCss(callback) {
function extractNls (line 687) | function extractNls() {
function getLoadedFileList (line 720) | function getLoadedFileList(options, callback, result) {
function normalizeLineEndings (line 738) | function normalizeLineEndings(module) {
function includeLoader (line 744) | function includeLoader(module) {
function optimizeTextModules (line 752) | function optimizeTextModules(sources) {
function namespace (line 806) | function namespace(ns) {
function exportAce (line 821) | function exportAce(ns, modules, requireBase, extModules) {
function updateModes (line 877) | function updateModes() {
function generateThemesModule (line 889) | function generateThemesModule(themes) {
function wrapCJS (line 898) | function wrapCJS(module) {
function isCJS (line 907) | function isCJS(source) {
function compress (line 919) | function compress(text) {
function extend (line 939) | function extend(base, extra) {
function getTargetDir (line 946) | function getTargetDir(opts) {
function sanityCheck (line 955) | function sanityCheck(opts, callback) {
FILE: ace-internal.d.ts
type Anchor (line 2) | type Anchor = import("./src/anchor").Anchor;
type Editor (line 3) | type Editor = import("./src/editor").Editor;
type EditSession (line 4) | type EditSession = import("./src/edit_session").EditSession;
type Document (line 5) | type Document = import("./src/document").Document;
type Fold (line 6) | type Fold = import("./src/edit_session/fold").Fold;
type FoldLine (line 7) | type FoldLine = import("./src/edit_session/fold_line").FoldLine;
type Range (line 8) | type Range = import("./src/range").Range;
type VirtualRenderer (line 9) | type VirtualRenderer = import("./src/virtual_renderer").VirtualRenderer;
type UndoManager (line 10) | type UndoManager = import("./src/undomanager").UndoManager;
type Tokenizer (line 11) | type Tokenizer = import("./src/tokenizer").Tokenizer;
type TokenIterator (line 12) | type TokenIterator = import("./src/token_iterator").TokenIterator;
type Selection (line 13) | type Selection = import("./src/selection").Selection;
type Autocomplete (line 14) | type Autocomplete = import("./src/autocomplete").Autocomplete;
type InlineAutocomplete (line 15) | type InlineAutocomplete = import("./src/ext/inline_autocomplete").Inline...
type CompletionProvider (line 16) | type CompletionProvider = import("./src/autocomplete").CompletionProvider;
type AcePopup (line 17) | type AcePopup = import("./src/autocomplete/popup").AcePopup;
type AceInline (line 18) | type AceInline = import("./src/autocomplete/inline").AceInline;
type MouseEvent (line 19) | type MouseEvent = import("./src/mouse/mouse_event").MouseEvent;
type RangeList (line 20) | type RangeList = import("./src/range_list").RangeList;
type FilteredList (line 21) | type FilteredList = import("./src/autocomplete").FilteredList;
type LineWidgets (line 22) | type LineWidgets = import("./src/line_widgets").LineWidgets;
type SearchBox (line 23) | type SearchBox = import("./src/ext/searchbox").SearchBox;
type Occur (line 24) | type Occur = import("./src/occur").Occur;
type DefaultHandlers (line 25) | type DefaultHandlers = import("./src/mouse/default_handlers").DefaultHan...
type GutterHandler (line 26) | type GutterHandler = import("./src/mouse/default_gutter_handler").Gutter...
type DragdropHandler (line 27) | type DragdropHandler = import("./src/mouse/dragdrop_handler").DragdropHa...
type AppConfig (line 28) | type AppConfig = import("./src/lib/app_config").AppConfig;
type Config (line 29) | type Config = typeof import("./src/config");
type GutterTooltip (line 30) | type GutterTooltip = import( "./src/mouse/default_gutter_handler").Gutte...
type GutterKeyboardEvent (line 31) | type GutterKeyboardEvent = import( "./src/keyboard/gutter_handler").Gutt...
type HoverTooltip (line 32) | type HoverTooltip = import("./src/tooltip").HoverTooltip;
type Tooltip (line 33) | type Tooltip = import("./src/tooltip").Tooltip;
type TextInput (line 34) | type TextInput = import("./src/keyboard/textinput").TextInput;
type DiffChunk (line 35) | type DiffChunk = import("./src/ext/diff/base_diff_view").DiffChunk;
type AfterLoadCallback (line 37) | type AfterLoadCallback = (err: Error | null, module: unknown) => void;
type LoaderFunction (line 38) | type LoaderFunction = (moduleName: string, afterLoad: AfterLoadCallback)...
type ConfigOptions (line 40) | interface ConfigOptions {
type Theme (line 53) | interface Theme {
type ScrollBar (line 61) | interface ScrollBar {
type HScrollbar (line 67) | interface HScrollbar extends ScrollBar {
type VScrollbar (line 71) | interface VScrollbar extends ScrollBar {
type LayerConfig (line 75) | interface LayerConfig {
type HardWrapOptions (line 90) | interface HardWrapOptions {
type CommandBarOptions (line 101) | interface CommandBarOptions {
type ScreenCoordinates (line 108) | interface ScreenCoordinates {
type Folding (line 115) | interface Folding {
type BracketMatch (line 253) | interface BracketMatch {
type IRange (line 300) | interface IRange {
type LineWidget (line 305) | interface LineWidget {
type NewLineMode (line 331) | type NewLineMode = 'auto' | 'unix' | 'windows';
type EditSessionOptions (line 333) | interface EditSessionOptions {
type VirtualRendererOptions (line 348) | interface VirtualRendererOptions {
type MouseHandlerOptions (line 378) | interface MouseHandlerOptions {
type EditorOptions (line 385) | interface EditorOptions extends EditSessionOptions,
type EventsBase (line 416) | interface EventsBase {
type EditSessionEvents (line 420) | interface EditSessionEvents {
type EditorEvents (line 493) | interface EditorEvents {
type AcePopupEvents (line 543) | interface AcePopupEvents {
type DocumentEvents (line 554) | interface DocumentEvents {
type AnchorEvents (line 570) | interface AnchorEvents {
type BackgroundTokenizerEvents (line 582) | interface BackgroundTokenizerEvents {
type SelectionEvents (line 592) | interface SelectionEvents {
type MultiSelectionEvents (line 603) | interface MultiSelectionEvents extends SelectionEvents {
type PlaceHolderEvents (line 610) | interface PlaceHolderEvents {
type GutterEvents (line 615) | interface GutterEvents {
type TextEvents (line 620) | interface TextEvents {
type VirtualRendererEvents (line 624) | interface VirtualRendererEvents {
type EmitParameters (line 635) | type EmitParameters<T extends (...args: any[]) => any> =
class EventEmitter (line 640) | class EventEmitter<T extends { [K in keyof T]: (...args: any[]) => any }> {
type SearchOptions (line 666) | interface SearchOptions {
type Point (line 697) | interface Point {
type Position (line 702) | type Position = Point;
type Delta (line 704) | interface Delta {
type Annotation (line 713) | interface Annotation {
type MarkerGroupItem (line 720) | interface MarkerGroupItem {
type MarkerGroup (line 725) | type MarkerGroup = import("./src/marker_group").MarkerGroup;
type Command (line 728) | interface Command {
type CommandLike (line 743) | type CommandLike = Command | ((editor: Editor) => void) | ((sb: SearchBo...
type KeyboardHandler (line 745) | type KeyboardHandler = Partial<import("./src/keyboard/hash_handler").Has...
type MarkerLike (line 751) | interface MarkerLike {
type MarkerRenderer (line 767) | type MarkerRenderer = (html: string[],
type Token (line 773) | interface Token {
type BaseCompletion (line 780) | type BaseCompletion = import("./src/autocomplete").BaseCompletion;
type SnippetCompletion (line 781) | type SnippetCompletion = import("./src/autocomplete").SnippetCompletion;
type ValueCompletion (line 782) | type ValueCompletion = import("./src/autocomplete").ValueCompletion;
type Completion (line 783) | type Completion = import("./src/autocomplete").Completion;
type HighlightRule (line 785) | type HighlightRule = ({ defaultToken: string } | { include: string } | {...
type HighlightRulesMap (line 795) | type HighlightRulesMap = Record<string, HighlightRule[]>;
type KeywordMapper (line 797) | type KeywordMapper = (keyword: string) => string;
type HighlightRules (line 799) | interface HighlightRules {
type FoldWidget (line 818) | type FoldWidget = "start" | "end" | ""
type FoldMode (line 820) | interface FoldMode {
type BehaviorAction (line 835) | type BehaviorAction = (state: string | string[], action: string, editor:...
type BehaviorMap (line 839) | type BehaviorMap = Record<string, Record<string, BehaviorAction>>;
type Behaviour (line 841) | interface Behaviour {
type Outdent (line 855) | interface Outdent {
type SyntaxMode (line 861) | interface SyntaxMode {
type OptionsBase (line 934) | interface OptionsBase {
class OptionsProvider (line 938) | class OptionsProvider<T> {
type KeyBinding (line 948) | type KeyBinding = import("./src/keyboard/keybinding").KeyBinding;
type CommandMap (line 950) | interface CommandMap {
type execEventHandler (line 954) | type execEventHandler = (obj: {
type CommandManagerEvents (line 960) | interface CommandManagerEvents {
type CommandManager (line 966) | type CommandManager = import("./src/commands/command_manager").CommandMa...
type SavedSelection (line 969) | interface SavedSelection {
type CompleterCallback (line 979) | type CompleterCallback = (error: any, completions: Completion[]) => void;
type Completer (line 981) | interface Completer {
type CompletionOptions (line 1013) | interface CompletionOptions {
type CompletionProviderOptions (line 1017) | type CompletionProviderOptions = {
type GatherCompletionRecord (line 1022) | type GatherCompletionRecord = {
type CompletionCallbackFunction (line 1028) | type CompletionCallbackFunction = (err: Error | undefined, data: GatherC...
type CompletionProviderCallback (line 1029) | type CompletionProviderCallback = (this: import("./src/autocomplete").Au...
type AcePopupNavigation (line 1031) | type AcePopupNavigation = "up" | "down" | "start" | "end";
type EditorMultiSelectProperties (line 1033) | interface EditorMultiSelectProperties {
type CodeLenseProvider (line 1106) | interface CodeLenseProvider {
type CodeLenseCommand (line 1118) | interface CodeLenseCommand {
type CodeLense (line 1136) | interface CodeLense {
type CodeLenseEditorExtension (line 1147) | interface CodeLenseEditorExtension {
type ElasticTabstopsEditorExtension (line 1154) | interface ElasticTabstopsEditorExtension {
type TextareaEditorExtension (line 1158) | interface TextareaEditorExtension {
type PromptEditorExtension (line 1162) | interface PromptEditorExtension {
type OptionsEditorExtension (line 1166) | interface OptionsEditorExtension {
type MultiSelectProperties (line 1170) | interface MultiSelectProperties {
type AcePopupEventsCombined (line 1251) | type AcePopupEventsCombined = Ace.EditorEvents & Ace.AcePopupEvents;
type AcePopupWithEditor (line 1252) | type AcePopupWithEditor = Ace.EventEmitter<AcePopupEventsCombined> & Ace...
type InlineAutocompleteAction (line 1253) | type InlineAutocompleteAction = "prev" | "next" | "first" | "last";
type TooltipCommandFunction (line 1255) | type TooltipCommandFunction<T> = (editor: Ace.Editor) => T;
type TooltipCommand (line 1257) | interface TooltipCommand extends Ace.Command {
type CommandBarTooltip (line 1265) | type CommandBarTooltip = import("./src/ext/command_bar").CommandBarTooltip;
type TokenizeResult (line 1267) | type TokenizeResult = Array<Array<{
type StaticHighlightOptions (line 1272) | interface StaticHighlightOptions {
type Operation (line 1285) | interface Operation {
type CommandBarEvents (line 1296) | interface CommandBarEvents {
type FontMetricsEvents (line 1302) | interface FontMetricsEvents {
type OptionPanelEvents (line 1306) | interface OptionPanelEvents {
type ScrollbarEvents (line 1310) | interface ScrollbarEvents {
type TextInputAriaOptions (line 1314) | interface TextInputAriaOptions {
type InlineAutocomplete (line 1353) | type InlineAutocomplete = Ace.InlineAutocomplete;
type CommandBarTooltip (line 1354) | type CommandBarTooltip = Ace.CommandBarTooltip;
type Element (line 1357) | interface Element {
type Anchor (line 1365) | interface Anchor extends Ace.EventEmitter<Ace.AnchorEvents> {
type Autocomplete (line 1374) | interface Autocomplete {
type CompletionProvider (line 1379) | interface CompletionProvider {
type BackgroundTokenizer (line 1385) | interface BackgroundTokenizer extends Ace.EventEmitter<Ace.BackgroundTok...
type Document (line 1391) | interface Document extends Ace.EventEmitter<Ace.DocumentEvents> {
type Editor (line 1397) | interface Editor extends Ace.EditorMultiSelectProperties, Ace.OptionsPro...
type TextMarker (line 1424) | type TextMarker = import("./src/layer/text_markers").TextMarker;
type TextMarkers (line 1425) | type TextMarkers = typeof import("./src/layer/text_markers").editSession...
type EditSession (line 1431) | interface EditSession extends Ace.EventEmitter<Ace.EditSessionEvents>,
type Fold (line 1474) | interface Fold {
type PlaceHolder (line 1480) | interface PlaceHolder extends Ace.EventEmitter<Ace.PlaceHolderEvents> {
type VScrollBar (line 1485) | interface VScrollBar extends Ace.EventEmitter<Ace.ScrollbarEvents> {
type HScrollBar (line 1488) | interface HScrollBar extends Ace.EventEmitter<Ace.ScrollbarEvents> {
type VScrollBar (line 1493) | interface VScrollBar extends Ace.EventEmitter<Ace.ScrollbarEvents> {
type HScrollBar (line 1496) | interface HScrollBar extends Ace.EventEmitter<Ace.ScrollbarEvents> {
type LineWidgets (line 1501) | interface LineWidgets {
type Selection (line 1508) | interface Selection extends Ace.EventEmitter<Ace.MultiSelectionEvents>, ...
type Range (line 1513) | interface Range {
type VirtualRenderer (line 1521) | interface VirtualRenderer extends Ace.EventEmitter<Ace.VirtualRendererEv...
type SnippetManager (line 1552) | interface SnippetManager extends Ace.EventEmitter<any> {
type CommandBarTooltip (line 1557) | interface CommandBarTooltip extends Ace.EventEmitter<Ace.CommandBarEvent...
type CommandManager (line 1563) | interface CommandManager extends Ace.EventEmitter<Ace.CommandManagerEven...
type AcePopup (line 1570) | interface AcePopup extends Ace.AcePopupWithEditor {
type Cursor (line 1598) | interface Cursor {
type Gutter (line 1604) | interface Gutter extends Ace.EventEmitter<Ace.GutterEvents> {
type TextMarkersMixin (line 1611) | type TextMarkersMixin = typeof import("./src/layer/text_markers").textMa...
type Text (line 1612) | interface Text extends Ace.EventEmitter<Ace.TextEvents>, TextMarkersMixin {
type AppConfig (line 1618) | interface AppConfig extends Ace.EventEmitter<any> {
type MouseEvent (line 1623) | interface MouseEvent {
type MouseHandler (line 1630) | interface MouseHandler {
type OptionPanel (line 1644) | interface OptionPanel extends Ace.EventEmitter<Ace.OptionPanelEvents> {
type FontMetrics (line 1649) | interface FontMetrics extends Ace.EventEmitter<Ace.FontMetricsEvents> {
type HoverTooltip (line 1654) | interface HoverTooltip {
type GutterHandler (line 1660) | interface GutterHandler {
type BaseDiffView (line 1665) | interface BaseDiffView extends Ace.OptionsProvider<import("ace-code/src/...
FILE: ace.d.ts
type Anchor (line 11) | type Anchor = import("ace-code/src/anchor").Anchor;
type Editor (line 12) | type Editor = import("ace-code/src/editor").Editor;
type EditSession (line 13) | type EditSession = import("ace-code/src/edit_session").EditSession;
type Document (line 14) | type Document = import("ace-code/src/document").Document;
type Fold (line 15) | type Fold = import("ace-code/src/edit_session/fold").Fold;
type FoldLine (line 16) | type FoldLine = import("ace-code/src/edit_session/fold_line").FoldLine;
type Range (line 17) | type Range = import("ace-code/src/range").Range;
type VirtualRenderer (line 18) | type VirtualRenderer = import("ace-code/src/virtual_renderer").VirtualRe...
type UndoManager (line 19) | type UndoManager = import("ace-code/src/undomanager").UndoManager;
type Tokenizer (line 20) | type Tokenizer = import("ace-code/src/tokenizer").Tokenizer;
type TokenIterator (line 21) | type TokenIterator = import("ace-code/src/token_iterator").TokenIterator;
type Selection (line 22) | type Selection = import("ace-code/src/selection").Selection;
type Autocomplete (line 23) | type Autocomplete = import("ace-code/src/autocomplete").Autocomplete;
type InlineAutocomplete (line 24) | type InlineAutocomplete = import("ace-code/src/ext/inline_autocomplete")...
type CompletionProvider (line 25) | type CompletionProvider = import("ace-code/src/autocomplete").Completion...
type AcePopup (line 26) | type AcePopup = import("ace-code/src/autocomplete/popup").AcePopup;
type AceInline (line 27) | type AceInline = import("ace-code/src/autocomplete/inline").AceInline;
type MouseEvent (line 28) | type MouseEvent = import("ace-code/src/mouse/mouse_event").MouseEvent;
type RangeList (line 29) | type RangeList = import("ace-code/src/range_list").RangeList;
type FilteredList (line 30) | type FilteredList = import("ace-code/src/autocomplete").FilteredList;
type LineWidgets (line 31) | type LineWidgets = import("ace-code/src/line_widgets").LineWidgets;
type SearchBox (line 32) | type SearchBox = import("ace-code/src/ext/searchbox").SearchBox;
type Occur (line 33) | type Occur = import("ace-code/src/occur").Occur;
type DefaultHandlers (line 34) | type DefaultHandlers = import("ace-code/src/mouse/default_handlers").Def...
type GutterHandler (line 35) | type GutterHandler = import("ace-code/src/mouse/default_gutter_handler")...
type DragdropHandler (line 36) | type DragdropHandler = import("ace-code/src/mouse/dragdrop_handler").Dra...
type AppConfig (line 37) | type AppConfig = import("ace-code/src/lib/app_config").AppConfig;
type Config (line 38) | type Config = typeof import("ace-code/src/config");
type GutterTooltip (line 39) | type GutterTooltip = import("ace-code/src/mouse/default_gutter_handler")...
type GutterKeyboardEvent (line 40) | type GutterKeyboardEvent = import("ace-code/src/keyboard/gutter_handler"...
type HoverTooltip (line 41) | type HoverTooltip = import("ace-code/src/tooltip").HoverTooltip;
type Tooltip (line 42) | type Tooltip = import("ace-code/src/tooltip").Tooltip;
type TextInput (line 43) | type TextInput = import("ace-code/src/keyboard/textinput").TextInput;
type DiffChunk (line 44) | type DiffChunk = import("ace-code/src/ext/diff/base_diff_view").DiffChunk;
type AfterLoadCallback (line 45) | type AfterLoadCallback = (err: Error | null, module: unknown) => void;
type LoaderFunction (line 46) | type LoaderFunction = (moduleName: string, afterLoad: AfterLoadCallback)...
type ConfigOptions (line 47) | interface ConfigOptions {
type Theme (line 58) | interface Theme {
type ScrollBar (line 64) | interface ScrollBar {
type HScrollbar (line 68) | interface HScrollbar extends ScrollBar {
type VScrollbar (line 71) | interface VScrollbar extends ScrollBar {
type LayerConfig (line 74) | interface LayerConfig {
type HardWrapOptions (line 88) | interface HardWrapOptions {
type CommandBarOptions (line 98) | interface CommandBarOptions {
type ScreenCoordinates (line 104) | interface ScreenCoordinates {
type Folding (line 110) | interface Folding {
type BracketMatch (line 189) | interface BracketMatch {
type IRange (line 209) | interface IRange {
type LineWidget (line 213) | interface LineWidget {
type NewLineMode (line 235) | type NewLineMode = "auto" | "unix" | "windows";
type EditSessionOptions (line 236) | interface EditSessionOptions {
type VirtualRendererOptions (line 250) | interface VirtualRendererOptions {
type MouseHandlerOptions (line 279) | interface MouseHandlerOptions {
type EditorOptions (line 285) | interface EditorOptions extends EditSessionOptions, MouseHandlerOptions,...
type EventsBase (line 313) | interface EventsBase {
type EditSessionEvents (line 316) | interface EditSessionEvents {
type EditorEvents (line 397) | interface EditorEvents {
type AcePopupEvents (line 458) | interface AcePopupEvents {
type DocumentEvents (line 468) | interface DocumentEvents {
type AnchorEvents (line 483) | interface AnchorEvents {
type BackgroundTokenizerEvents (line 497) | interface BackgroundTokenizerEvents {
type SelectionEvents (line 509) | interface SelectionEvents {
type MultiSelectionEvents (line 519) | interface MultiSelectionEvents extends SelectionEvents {
type PlaceHolderEvents (line 529) | interface PlaceHolderEvents {
type GutterEvents (line 533) | interface GutterEvents {
type TextEvents (line 537) | interface TextEvents {
type VirtualRendererEvents (line 540) | interface VirtualRendererEvents {
type EmitParameters (line 554) | type EmitParameters<T extends (...args: any[]) => any> = T extends (firs...
class EventEmitter (line 558) | class EventEmitter<T extends {
type SearchOptions (line 571) | interface SearchOptions {
type Point (line 594) | interface Point {
type Position (line 598) | type Position = Point;
type Delta (line 599) | interface Delta {
type Annotation (line 607) | interface Annotation {
type MarkerGroupItem (line 613) | interface MarkerGroupItem {
type MarkerGroup (line 617) | type MarkerGroup = import("ace-code/src/marker_group").MarkerGroup;
type Command (line 618) | interface Command {
type CommandLike (line 635) | type CommandLike = Command | ((editor: Editor) => void) | ((sb: SearchBo...
type KeyboardHandler (line 636) | type KeyboardHandler = Partial<import("ace-code/src/keyboard/hash_handle...
type MarkerLike (line 641) | interface MarkerLike {
type MarkerRenderer (line 653) | type MarkerRenderer = (html: string[], range: Range, left: number, top: ...
type Token (line 654) | interface Token {
type BaseCompletion (line 660) | type BaseCompletion = import("ace-code/src/autocomplete").BaseCompletion;
type SnippetCompletion (line 661) | type SnippetCompletion = import("ace-code/src/autocomplete").SnippetComp...
type ValueCompletion (line 662) | type ValueCompletion = import("ace-code/src/autocomplete").ValueCompletion;
type Completion (line 663) | type Completion = import("ace-code/src/autocomplete").Completion;
type HighlightRule (line 664) | type HighlightRule = ({
type HighlightRulesMap (line 681) | type HighlightRulesMap = Record<string, HighlightRule[]>;
type KeywordMapper (line 682) | type KeywordMapper = (keyword: string) => string;
type HighlightRules (line 683) | interface HighlightRules {
type FoldWidget (line 691) | type FoldWidget = "start" | "end" | "";
type FoldMode (line 692) | interface FoldMode {
type BehaviorAction (line 701) | type BehaviorAction = (state: string | string[], action: string, editor:...
type BehaviorMap (line 707) | type BehaviorMap = Record<string, Record<string, BehaviorAction>>;
type Behaviour (line 708) | interface Behaviour {
type Outdent (line 715) | interface Outdent {
type SyntaxMode (line 719) | interface SyntaxMode {
type OptionsBase (line 754) | interface OptionsBase {
class OptionsProvider (line 757) | class OptionsProvider<T> {
type KeyBinding (line 763) | type KeyBinding = import("ace-code/src/keyboard/keybinding").KeyBinding;
type CommandMap (line 764) | interface CommandMap {
type execEventHandler (line 767) | type execEventHandler = (obj: {
type CommandManagerEvents (line 772) | interface CommandManagerEvents {
type CommandManager (line 777) | type CommandManager = import("ace-code/src/commands/command_manager").Co...
type SavedSelection (line 778) | interface SavedSelection {
type CompleterCallback (line 786) | type CompleterCallback = (error: any, completions: Completion[]) => void;
type Completer (line 787) | interface Completer {
type CompletionOptions (line 809) | interface CompletionOptions {
type CompletionProviderOptions (line 812) | type CompletionProviderOptions = {
type GatherCompletionRecord (line 816) | type GatherCompletionRecord = {
type CompletionCallbackFunction (line 821) | type CompletionCallbackFunction = (err: Error | undefined, data: GatherC...
type CompletionProviderCallback (line 822) | type CompletionProviderCallback = (this: import("ace-code/src/autocomple...
type AcePopupNavigation (line 823) | type AcePopupNavigation = "up" | "down" | "start" | "end";
type EditorMultiSelectProperties (line 824) | interface EditorMultiSelectProperties {
type CodeLenseProvider (line 894) | interface CodeLenseProvider {
type CodeLenseCommand (line 905) | interface CodeLenseCommand {
type CodeLense (line 922) | interface CodeLense {
type CodeLenseEditorExtension (line 932) | interface CodeLenseEditorExtension {
type ElasticTabstopsEditorExtension (line 935) | interface ElasticTabstopsEditorExtension {
type TextareaEditorExtension (line 938) | interface TextareaEditorExtension {
type PromptEditorExtension (line 941) | interface PromptEditorExtension {
type OptionsEditorExtension (line 944) | interface OptionsEditorExtension {
type MultiSelectProperties (line 946) | interface MultiSelectProperties {
type AcePopupEventsCombined (line 988) | type AcePopupEventsCombined = Ace.EditorEvents & Ace.AcePopupEvents;
type AcePopupWithEditor (line 989) | type AcePopupWithEditor = Ace.EventEmitter<AcePopupEventsCombined> & Ace...
type InlineAutocompleteAction (line 990) | type InlineAutocompleteAction = "prev" | "next" | "first" | "last";
type TooltipCommandFunction (line 991) | type TooltipCommandFunction<T> = (editor: Ace.Editor) => T;
type TooltipCommand (line 992) | interface TooltipCommand extends Ace.Command {
type CommandBarTooltip (line 999) | type CommandBarTooltip = import("ace-code/src/ext/command_bar").CommandB...
type TokenizeResult (line 1000) | type TokenizeResult = Array<Array<{
type StaticHighlightOptions (line 1004) | interface StaticHighlightOptions {
type Operation (line 1016) | interface Operation {
type CommandBarEvents (line 1026) | interface CommandBarEvents {
type FontMetricsEvents (line 1031) | interface FontMetricsEvents {
type OptionPanelEvents (line 1039) | interface OptionPanelEvents {
type ScrollbarEvents (line 1045) | interface ScrollbarEvents {
type TextInputAriaOptions (line 1050) | interface TextInputAriaOptions {
FILE: build_support/mini_require.js
function exportAce (line 151) | function exportAce(ns) {
FILE: demo/diff/examples/editor.17.js
class Editor (line 31) | class Editor {
method constructor (line 38) | constructor(renderer, session, options) {
method $initOperationListeners (line 82) | $initOperationListeners() {
method startOperation (line 106) | startOperation(commandEvent) {
method endOperation (line 126) | endOperation(e) {
method $historyTracker (line 172) | $historyTracker(e) {
method setKeyboardHandler (line 213) | setKeyboardHandler(keyboardHandler, cb) {
method getKeyboardHandler (line 235) | getKeyboardHandler() {
method setSession (line 251) | setSession(session) {
method getSession (line 368) | getSession() {
method setValue (line 380) | setValue(val, cursorPos) {
method getValue (line 399) | getValue() {
method getSelection (line 408) | getSelection() {
method resize (line 419) | resize(force) {
method setTheme (line 428) | setTheme(theme, cb) {
method getTheme (line 438) | getTheme() {
method setStyle (line 449) | setStyle(style) {
method unsetStyle (line 457) | unsetStyle(style) {
method getFontSize (line 464) | getFontSize() {
method setFontSize (line 475) | setFontSize(size) {
method $highlightBrackets (line 479) | $highlightBrackets() {
method focus (line 547) | focus() {
method isFocused (line 555) | isFocused() {
method blur (line 563) | blur() {
method onFocus (line 573) | onFocus(e) {
method onBlur (line 588) | onBlur(e) {
method $cursorChange (line 597) | $cursorChange() {
method onDocumentChange (line 611) | onDocumentChange(delta) {
method onTokenizerUpdate (line 623) | onTokenizerUpdate(e) {
method onScrollTopChange (line 629) | onScrollTopChange() {
method onScrollLeftChange (line 633) | onScrollLeftChange() {
method onCursorChange (line 641) | onCursorChange() {
method $updateHighlightActiveLine (line 646) | $updateHighlightActiveLine() {
method onSelectionChange (line 674) | onSelectionChange(e) {
method $getSelectionHighLightRegexp (line 696) | $getSelectionHighLightRegexp() {
method onChangeFrontMarker (line 727) | onChangeFrontMarker() {
method onChangeBackMarker (line 731) | onChangeBackMarker() {
method onChangeBreakpoint (line 736) | onChangeBreakpoint() {
method onChangeAnnotation (line 740) | onChangeAnnotation() {
method onChangeMode (line 745) | onChangeMode (e) {
method onChangeWrapLimit (line 751) | onChangeWrapLimit() {
method onChangeWrapMode (line 755) | onChangeWrapMode() {
method onChangeFold (line 760) | onChangeFold() {
method getSelectedText (line 773) | getSelectedText() {
method getCopyText (line 787) | getCopyText () {
method onCopy (line 810) | onCopy() {
method onCut (line 817) | onCut() {
method onPaste (line 834) | onPaste(text, event) {
method $handlePaste (line 839) | $handlePaste(e) {
method execCommand (line 874) | execCommand(command, args) {
method insert (line 883) | insert(text, pasted) {
method autoIndent (line 958) | autoIndent() {
method onTextInput (line 1003) | onTextInput(text, composition) {
method applyComposition (line 1016) | applyComposition(text, composition) {
method onCommandKey (line 1039) | onCommandKey(e, hashId, keyCode) {
method setOverwrite (line 1050) | setOverwrite(overwrite) {
method getOverwrite (line 1059) | getOverwrite() {
method toggleOverwrite (line 1067) | toggleOverwrite() {
method setScrollSpeed (line 1075) | setScrollSpeed(speed) {
method getScrollSpeed (line 1083) | getScrollSpeed() {
method setDragDelay (line 1091) | setDragDelay(dragDelay) {
method getDragDelay (line 1099) | getDragDelay() {
method setSelectionStyle (line 1113) | setSelectionStyle(val) {
method getSelectionStyle (line 1121) | getSelectionStyle() {
method setHighlightActiveLine (line 1129) | setHighlightActiveLine(shouldHighlight) {
method getHighlightActiveLine (line 1136) | getHighlightActiveLine() {
method setHighlightGutterLine (line 1139) | setHighlightGutterLine(shouldHighlight) {
method getHighlightGutterLine (line 1143) | getHighlightGutterLine() {
method setHighlightSelectedWord (line 1152) | setHighlightSelectedWord(shouldHighlight) {
method getHighlightSelectedWord (line 1160) | getHighlightSelectedWord() {
method setAnimatedScroll (line 1164) | setAnimatedScroll(shouldAnimate){
method getAnimatedScroll (line 1168) | getAnimatedScroll(){
method setShowInvisibles (line 1177) | setShowInvisibles(showInvisibles) {
method getShowInvisibles (line 1185) | getShowInvisibles() {
method setDisplayIndentGuides (line 1189) | setDisplayIndentGuides(display) {
method getDisplayIndentGuides (line 1193) | getDisplayIndentGuides() {
method setHighlightIndentGuides (line 1197) | setHighlightIndentGuides(highlight) {
method getHighlightIndentGuides (line 1201) | getHighlightIndentGuides() {
method setShowPrintMargin (line 1210) | setShowPrintMargin(showPrintMargin) {
method getShowPrintMargin (line 1218) | getShowPrintMargin() {
method setPrintMarginColumn (line 1227) | setPrintMarginColumn(showPrintMargin) {
method getPrintMarginColumn (line 1235) | getPrintMarginColumn() {
method setReadOnly (line 1244) | setReadOnly(readOnly) {
method getReadOnly (line 1252) | getReadOnly() {
method setBehavioursEnabled (line 1261) | setBehavioursEnabled(enabled) {
method getBehavioursEnabled (line 1270) | getBehavioursEnabled() {
method setWrapBehavioursEnabled (line 1280) | setWrapBehavioursEnabled(enabled) {
method getWrapBehavioursEnabled (line 1287) | getWrapBehavioursEnabled() {
method setShowFoldWidgets (line 1295) | setShowFoldWidgets(show) {
method getShowFoldWidgets (line 1303) | getShowFoldWidgets() {
method setFadeFoldWidgets (line 1307) | setFadeFoldWidgets(fade) {
method getFadeFoldWidgets (line 1311) | getFadeFoldWidgets() {
method remove (line 1320) | remove(dir) {
method removeWordRight (line 1354) | removeWordRight() {
method removeWordLeft (line 1365) | removeWordLeft() {
method removeToLineStart (line 1376) | removeToLineStart() {
method removeToLineEnd (line 1388) | removeToLineEnd() {
method splitLine (line 1405) | splitLine() {
method setGhostText (line 1424) | setGhostText(text, position) {
method removeGhostText (line 1435) | removeGhostText() {
method transposeLetters (line 1444) | transposeLetters() {
method toLowerCase (line 1471) | toLowerCase() {
method toUpperCase (line 1486) | toUpperCase() {
method indent (line 1503) | indent() {
method blockIndent (line 1544) | blockIndent() {
method blockOutdent (line 1553) | blockOutdent() {
method sortLines (line 1559) | sortLines() {
method toggleCommentLines (line 1586) | toggleCommentLines() {
method toggleBlockComment (line 1592) | toggleBlockComment() {
method getNumberAt (line 1603) | getNumberAt(row, column) {
method modifyNumber (line 1627) | modifyNumber(amount) {
method toggleWord (line 1671) | toggleWord() {
method findLinkAt (line 1726) | findLinkAt(row, column) {
method openLink (line 1749) | openLink() {
method removeLines (line 1761) | removeLines() {
method duplicateSelection (line 1767) | duplicateSelection() {
method moveLinesDown (line 1791) | moveLinesDown() {
method moveLinesUp (line 1800) | moveLinesUp() {
method moveText (line 1815) | moveText(range, toPosition, copy) {
method copyLinesUp (line 1824) | copyLinesUp() {
method copyLinesDown (line 1834) | copyLinesDown() {
method $moveLines (line 1843) | $moveLines(dir, copy) {
method $getSelectedRows (line 1902) | $getSelectedRows(range) {
method onCompositionStart (line 1911) | onCompositionStart(compositionState) {
method onCompositionUpdate (line 1915) | onCompositionUpdate(text) {
method onCompositionEnd (line 1919) | onCompositionEnd() {
method getFirstVisibleRow (line 1929) | getFirstVisibleRow() {
method getLastVisibleRow (line 1939) | getLastVisibleRow() {
method isRowVisible (line 1949) | isRowVisible(row) {
method isRowFullyVisible (line 1960) | isRowFullyVisible(row) {
method $getVisibleRowCount (line 1968) | $getVisibleRowCount() {
method $moveByPage (line 1972) | $moveByPage(dir, select) {
method selectPageDown (line 1998) | selectPageDown() {
method selectPageUp (line 2005) | selectPageUp() {
method gotoPageDown (line 2012) | gotoPageDown() {
method gotoPageUp (line 2019) | gotoPageUp() {
method scrollPageDown (line 2026) | scrollPageDown() {
method scrollPageUp (line 2033) | scrollPageUp() {
method scrollToRow (line 2041) | scrollToRow(row) {
method scrollToLine (line 2055) | scrollToLine(line, center, animate, callback) {
method centerSelection (line 2062) | centerSelection() {
method getCursorPosition (line 2081) | getCursorPosition() {
method getCursorPositionScreen (line 2090) | getCursorPositionScreen() {
method getSelectionRange (line 2099) | getSelectionRange() {
method selectAll (line 2107) | selectAll() {
method clearSelection (line 2115) | clearSelection() {
method moveCursorTo (line 2125) | moveCursorTo(row, column) {
method moveCursorToPosition (line 2134) | moveCursorToPosition(pos) {
method jumpToMatching (line 2142) | jumpToMatching(select, expand) {
method gotoLine (line 2294) | gotoLine(lineNumber, column, animate) {
method navigateTo (line 2314) | navigateTo(row, column) {
method navigateUp (line 2324) | navigateUp(times) {
method navigateDown (line 2339) | navigateDown(times) {
method navigateLeft (line 2354) | navigateLeft(times) {
method navigateRight (line 2374) | navigateRight(times) {
method navigateLineStart (line 2392) | navigateLineStart() {
method navigateLineEnd (line 2401) | navigateLineEnd() {
method navigateFileEnd (line 2410) | navigateFileEnd() {
method navigateFileStart (line 2419) | navigateFileStart() {
method navigateWordRight (line 2428) | navigateWordRight() {
method navigateWordLeft (line 2437) | navigateWordLeft() {
method replace (line 2449) | replace(replacement, options) {
method replaceAll (line 2475) | replaceAll(replacement, options) {
method $tryReplace (line 2499) | $tryReplace(range, replacement) {
method getLastSearchOptions (line 2515) | getLastSearchOptions() {
method find (line 2526) | find(needle, options, animate) {
method findNext (line 2573) | findNext(options, animate) {
method findPrevious (line 2585) | findPrevious(options, animate) {
method revealRange (line 2589) | revealRange(range, animate) {
method undo (line 2603) | undo() {
method redo (line 2612) | redo() {
method destroy (line 2621) | destroy() {
method setAutoScrollEditorIntoView (line 2643) | setAutoScrollEditorIntoView(enable) {
method $resetCursorStyle (line 2698) | $resetCursorStyle() {
method prompt (line 2711) | prompt(message, options, callback) {
FILE: demo/diff/examples/editor.40.js
class Editor (line 42) | class Editor {
method constructor (line 50) | constructor(renderer, session, options) {
method $initOperationListeners (line 99) | $initOperationListeners() {
method startOperation (line 104) | startOperation(commandEvent) {
method endOperation (line 111) | endOperation(e) {
method onStartOperation (line 115) | onStartOperation(commandEvent) {
method onEndOperation (line 128) | onEndOperation(e) {
method $historyTracker (line 175) | $historyTracker(e) {
method setKeyboardHandler (line 216) | setKeyboardHandler(keyboardHandler, cb) {
method getKeyboardHandler (line 237) | getKeyboardHandler() {
method setSession (line 247) | setSession(session) {
method getSession (line 373) | getSession() {
method setValue (line 385) | setValue(val, cursorPos) {
method getValue (line 404) | getValue() {
method getSelection (line 413) | getSelection() {
method resize (line 422) | resize(force) {
method setTheme (line 431) | setTheme(theme, cb) {
method getTheme (line 441) | getTheme() {
method setStyle (line 450) | setStyle(style) {
method unsetStyle (line 459) | unsetStyle(style) {
method getFontSize (line 467) | getFontSize() {
method setFontSize (line 476) | setFontSize(size) {
method $highlightBrackets (line 480) | $highlightBrackets() {
method focus (line 553) | focus() {
method isFocused (line 561) | isFocused() {
method blur (line 569) | blur() {
method onFocus (line 577) | onFocus(e) {
method onBlur (line 590) | onBlur(e) {
method $cursorChange (line 601) | $cursorChange() {
method onDocumentChange (line 612) | onDocumentChange(delta) {
method onTokenizerUpdate (line 627) | onTokenizerUpdate(e) {
method onScrollTopChange (line 635) | onScrollTopChange() {
method onScrollLeftChange (line 642) | onScrollLeftChange() {
method onCursorChange (line 650) | onCursorChange() {
method $updateHighlightActiveLine (line 657) | $updateHighlightActiveLine() {
method onSelectionChange (line 689) | onSelectionChange(e) {
method $getSelectionHighLightRegexp (line 711) | $getSelectionHighLightRegexp() {
method onChangeFrontMarker (line 744) | onChangeFrontMarker() {
method onChangeBackMarker (line 751) | onChangeBackMarker() {
method onChangeBreakpoint (line 758) | onChangeBreakpoint() {
method onChangeAnnotation (line 765) | onChangeAnnotation() {
method onChangeMode (line 773) | onChangeMode (e) {
method onChangeWrapLimit (line 781) | onChangeWrapLimit() {
method onChangeWrapMode (line 788) | onChangeWrapMode() {
method onChangeFold (line 796) | onChangeFold() {
method getSelectedText (line 809) | getSelectedText() {
method getCopyText (line 818) | getCopyText () {
method onCopy (line 842) | onCopy() {
method onCut (line 850) | onCut() {
method onPaste (line 861) | onPaste(text, event) {
method $handlePaste (line 871) | $handlePaste(e) {
method execCommand (line 912) | execCommand(command, args) {
method insert (line 921) | insert(text, pasted) {
method autoIndent (line 996) | autoIndent() {
method onTextInput (line 1044) | onTextInput(text, composition) {
method applyComposition (line 1061) | applyComposition(text, composition) {
method onCommandKey (line 1087) | onCommandKey(e, hashId, keyCode) {
method setOverwrite (line 1096) | setOverwrite(overwrite) {
method getOverwrite (line 1105) | getOverwrite() {
method toggleOverwrite (line 1113) | toggleOverwrite() {
method setScrollSpeed (line 1121) | setScrollSpeed(speed) {
method getScrollSpeed (line 1129) | getScrollSpeed() {
method setDragDelay (line 1137) | setDragDelay(dragDelay) {
method getDragDelay (line 1145) | getDragDelay() {
method setSelectionStyle (line 1154) | setSelectionStyle(val) {
method getSelectionStyle (line 1162) | getSelectionStyle() {
method setHighlightActiveLine (line 1170) | setHighlightActiveLine(shouldHighlight) {
method getHighlightActiveLine (line 1177) | getHighlightActiveLine() {
method setHighlightGutterLine (line 1184) | setHighlightGutterLine(shouldHighlight) {
method getHighlightGutterLine (line 1191) | getHighlightGutterLine() {
method setHighlightSelectedWord (line 1199) | setHighlightSelectedWord(shouldHighlight) {
method getHighlightSelectedWord (line 1207) | getHighlightSelectedWord() {
method setAnimatedScroll (line 1214) | setAnimatedScroll(shouldAnimate){
method getAnimatedScroll (line 1221) | getAnimatedScroll(){
method setShowInvisibles (line 1229) | setShowInvisibles(showInvisibles) {
method getShowInvisibles (line 1237) | getShowInvisibles() {
method setDisplayIndentGuides (line 1244) | setDisplayIndentGuides(display) {
method getDisplayIndentGuides (line 1251) | getDisplayIndentGuides() {
method setHighlightIndentGuides (line 1258) | setHighlightIndentGuides(highlight) {
method getHighlightIndentGuides (line 1265) | getHighlightIndentGuides() {
method setShowPrintMargin (line 1274) | setShowPrintMargin(showPrintMargin) {
method getShowPrintMargin (line 1282) | getShowPrintMargin() {
method setPrintMarginColumn (line 1291) | setPrintMarginColumn(showPrintMargin) {
method getPrintMarginColumn (line 1299) | getPrintMarginColumn() {
method setReadOnly (line 1307) | setReadOnly(readOnly) {
method getReadOnly (line 1315) | getReadOnly() {
method setBehavioursEnabled (line 1323) | setBehavioursEnabled(enabled) {
method getBehavioursEnabled (line 1331) | getBehavioursEnabled() {
method setWrapBehavioursEnabled (line 1340) | setWrapBehavioursEnabled(enabled) {
method getWrapBehavioursEnabled (line 1348) | getWrapBehavioursEnabled() {
method setShowFoldWidgets (line 1356) | setShowFoldWidgets(show) {
method getShowFoldWidgets (line 1364) | getShowFoldWidgets() {
method setFadeFoldWidgets (line 1371) | setFadeFoldWidgets(fade) {
method getFadeFoldWidgets (line 1378) | getFadeFoldWidgets() {
method remove (line 1386) | remove(dir) {
method removeWordRight (line 1421) | removeWordRight() {
method removeWordLeft (line 1432) | removeWordLeft() {
method removeToLineStart (line 1443) | removeToLineStart() {
method removeToLineEnd (line 1455) | removeToLineEnd() {
method splitLine (line 1472) | splitLine() {
method setGhostText (line 1491) | setGhostText(text, position) {
method removeGhostText (line 1498) | removeGhostText() {
method transposeLetters (line 1505) | transposeLetters() {
method toLowerCase (line 1532) | toLowerCase() {
method toUpperCase (line 1547) | toUpperCase() {
method indent (line 1564) | indent() {
method blockIndent (line 1605) | blockIndent() {
method blockOutdent (line 1614) | blockOutdent() {
method sortLines (line 1620) | sortLines() {
method toggleCommentLines (line 1647) | toggleCommentLines() {
method toggleBlockComment (line 1653) | toggleBlockComment() {
method getNumberAt (line 1664) | getNumberAt(row, column) {
method modifyNumber (line 1687) | modifyNumber(amount) {
method toggleWord (line 1734) | toggleWord() {
method findLinkAt (line 1789) | findLinkAt(row, column) {
method openLink (line 1812) | openLink() {
method removeLines (line 1824) | removeLines() {
method duplicateSelection (line 1830) | duplicateSelection() {
method moveLinesDown (line 1853) | moveLinesDown() {
method moveLinesUp (line 1861) | moveLinesUp() {
method moveText (line 1877) | moveText(range, toPosition, copy) {
method copyLinesUp (line 1885) | copyLinesUp() {
method copyLinesDown (line 1894) | copyLinesDown() {
method $moveLines (line 1903) | $moveLines(dir, copy) {
method $getSelectedRows (line 1963) | $getSelectedRows(range) {
method onCompositionStart (line 1975) | onCompositionStart(compositionState) {
method onCompositionUpdate (line 1982) | onCompositionUpdate(text) {
method onCompositionEnd (line 1989) | onCompositionEnd() {
method getFirstVisibleRow (line 1999) | getFirstVisibleRow() {
method getLastVisibleRow (line 2009) | getLastVisibleRow() {
method isRowVisible (line 2019) | isRowVisible(row) {
method isRowFullyVisible (line 2030) | isRowFullyVisible(row) {
method $getVisibleRowCount (line 2038) | $getVisibleRowCount() {
method $moveByPage (line 2042) | $moveByPage(dir, select) {
method selectPageDown (line 2068) | selectPageDown() {
method selectPageUp (line 2075) | selectPageUp() {
method gotoPageDown (line 2082) | gotoPageDown() {
method gotoPageUp (line 2089) | gotoPageUp() {
method scrollPageDown (line 2096) | scrollPageDown() {
method scrollPageUp (line 2103) | scrollPageUp() {
method scrollToRow (line 2112) | scrollToRow(row) {
method scrollToLine (line 2125) | scrollToLine(line, center, animate, callback) {
method centerSelection (line 2132) | centerSelection() {
method getCursorPosition (line 2151) | getCursorPosition() {
method getCursorPositionScreen (line 2160) | getCursorPositionScreen() {
method getSelectionRange (line 2169) | getSelectionRange() {
method selectAll (line 2177) | selectAll() {
method clearSelection (line 2185) | clearSelection() {
method moveCursorTo (line 2195) | moveCursorTo(row, column) {
method moveCursorToPosition (line 2204) | moveCursorToPosition(pos) {
method jumpToMatching (line 2213) | jumpToMatching(select, expand) {
method gotoLine (line 2364) | gotoLine(lineNumber, column, animate) {
method navigateTo (line 2383) | navigateTo(row, column) {
method navigateUp (line 2392) | navigateUp(times) {
method navigateDown (line 2406) | navigateDown(times) {
method navigateLeft (line 2420) | navigateLeft(times) {
method navigateRight (line 2439) | navigateRight(times) {
method navigateLineStart (line 2457) | navigateLineStart() {
method navigateLineEnd (line 2466) | navigateLineEnd() {
method navigateFileEnd (line 2475) | navigateFileEnd() {
method navigateFileStart (line 2484) | navigateFileStart() {
method navigateWordRight (line 2493) | navigateWordRight() {
method navigateWordLeft (line 2502) | navigateWordLeft() {
method replace (line 2513) | replace(replacement, options) {
method replaceAll (line 2538) | replaceAll(replacement, options) {
method $tryReplace (line 2566) | $tryReplace(range, replacement) {
method getLastSearchOptions (line 2582) | getLastSearchOptions() {
method find (line 2593) | find(needle, options, animate) {
method findNext (line 2639) | findNext(options, animate) {
method findPrevious (line 2650) | findPrevious(options, animate) {
method revealRange (line 2659) | revealRange(range, animate) {
method undo (line 2673) | undo() {
method redo (line 2682) | redo() {
method destroy (line 2691) | destroy() {
method setAutoScrollEditorIntoView (line 2714) | setAutoScrollEditorIntoView(enable) {
method $resetCursorStyle (line 2768) | $resetCursorStyle() {
method prompt (line 2781) | prompt(message, options, callback) {
FILE: demo/kitchen-sink/demo.js
function loadLanguageProvider (line 128) | function loadLanguageProvider(editor) {
function handleToggleActivate (line 339) | function handleToggleActivate(target) {
function onResize (line 356) | function onResize(e, closeSidePanel) {
function updateUIEditorOptions (line 570) | function updateUIEditorOptions() {
function synchroniseScrolling (line 612) | function synchroniseScrolling() {
function openTestDialog (line 707) | function openTestDialog(animateHeight) {
function moveFocus (line 826) | function moveFocus() {
FILE: demo/kitchen-sink/dev_util.js
function def (line 7) | function def(o, key, get) {
function getSelection (line 50) | function getSelection(editor) {
function setSelection (line 68) | function setSelection(editor, data) {
function testSelection (line 86) | function testSelection(editor, data) {
function setValue (line 89) | function setValue(editor, value) {
function testValue (line 92) | function testValue(editor, value) {
function save (line 173) | function save() {
function reportEvent (line 177) | function reportEvent(name) {
function onSelection (line 183) | function onSelection() {
function onBeforeEndOperation (line 190) | function onBeforeEndOperation() {
function onMouseUp (line 197) | function onMouseUp() {
function onAfterExec (line 204) | function onAfterExec(e) {
function addAction (line 219) | function addAction(a) {
function toString (line 228) | function toString(x) {
function onMousedown (line 331) | function onMousedown(ev) {
FILE: demo/kitchen-sink/doclist.js
function initDoc (line 11) | function initDoc(file, path, doc) {
function makeHuge (line 31) | function makeHuge(txt) {
function sort (line 92) | function sort(list) {
function prepareDocList (line 99) | function prepareDocList(docs) {
function loadDoc (line 118) | function loadDoc(name, callback) {
function saveDoc (line 140) | function saveDoc(name, callback) {
function upload (line 158) | function upload(url, data, callback) {
FILE: demo/kitchen-sink/docs/dart.dart
function fibonacci (line 6) | int fibonacci(int n)
function main (line 12) | void main()
FILE: demo/kitchen-sink/docs/elixir.ex
class HelloModule (line 1) | defmodule HelloModule
method some_fun (line 21) | def some_fun do
method priv (line 25) | defp priv do
FILE: demo/kitchen-sink/docs/golang.go
function main (line 14) | func main() {
function pi (line 20) | func pi(n int) float64 {
function term (line 32) | func term(ch chan float64, k float64) {
FILE: demo/kitchen-sink/docs/java.java
class InfiniteLoop (line 4) | public class InfiniteLoop {
method main (line 12) | @Override
method nestedMultilineTemplates (line 25) | String nestedMultilineTemplates() {
FILE: demo/kitchen-sink/docs/javascript.js
function foo (line 6) | function foo(items, nada) {
FILE: demo/kitchen-sink/docs/php.php
function nfact (line 3) | function nfact($n) {
FILE: demo/kitchen-sink/docs/ruby.rb
function fact (line 4) | def fact(n)
class Range (line 14) | class Range
method to_json (line 15) | def to_json(*a)
FILE: demo/kitchen-sink/docs/rust.rs
function main (line 3) | fn main() {
type ConstGenericStruct (line 22) | struct ConstGenericStruct<const N: usize>([(); N]);
FILE: demo/kitchen-sink/docs/typescript.ts
class Greeter (line 1) | class Greeter {
method constructor (line 3) | constructor (message: string) {
method greet (line 6) | greet() {
method constructor (line 38) | constructor (message: string) {
method greet (line 41) | greet() {
class Snake (line 21) | class Snake extends Animal {
method move (line 22) | move() {
class Horse (line 28) | class Horse extends Animal {
method move (line 29) | move() {
class Greeter (line 36) | class Greeter {
method constructor (line 3) | constructor (message: string) {
method greet (line 6) | greet() {
method constructor (line 38) | constructor (message: string) {
method greet (line 41) | greet() {
class Features (line 47) | class Features {
method clear (line 53) | public clear() {
method toString (line 60) | public toString() {
FILE: demo/kitchen-sink/require.js
function getInlineDeps (line 34) | function getInlineDeps(fn) {
function undefOne (line 403) | function undefOne(module, path) {
function undefAll (line 411) | function undefAll(module, hash) {
function addTransform (line 467) | function addTransform(url, moduleName) {
function loadText (line 484) | function loadText(path, callback) {
function definePlugin (line 550) | function definePlugin(plugin, p) {
function activateArchitectModule (line 622) | function activateArchitectModule(_1, _2, _3) {
FILE: demo/kitchen-sink/token_tooltip.js
class TokenTooltip (line 9) | class TokenTooltip extends Tooltip {
method constructor (line 10) | constructor(editor) {
method update (line 27) | update() {
method onMouseMove (line 87) | onMouseMove(e) {
method onMouseOut (line 98) | onMouseOut(e) {
method setPosition (line 106) | setPosition(x, y) {
method destroy (line 115) | destroy() {
FILE: demo/kitchen-sink/util.js
function saveOptionFromElement (line 128) | function saveOptionFromElement(el, val) {
function elt (line 194) | function elt(tag, attributes, content) {
function optgroup (line 209) | function optgroup(values) {
function dropdown (line 217) | function dropdown(values) {
FILE: demo/show_own_source.js
function setValue (line 21) | function setValue() {
function loadAceLinters (line 29) | function loadAceLinters() {
FILE: demo/test_ace_builds/index.ts
function configure (line 22) | function configure(config: Ace.Config) {
FILE: demo/test_package/index.ts
function configure (line 38) | function configure(config: ace.Ace.Config) {
function createPopup (line 122) | function createPopup() {
FILE: doc/site/js/main.js
function magicClickInterceptor (line 57) | function magicClickInterceptor(e) {
function scrollIntoPosition (line 121) | function scrollIntoPosition(el, overridePosition) {
function highlight (line 169) | function highlight() {
FILE: doc/template/resources/javascripts/bbq.js
function E (line 9) | function E(F){return typeof F==="string"}
function B (line 9) | function B(G){var F=m.call(arguments,1);return function(){return G.apply...
function n (line 9) | function n(F){return F.replace(/^[^#]*#?(.*)$/,"$1")}
function o (line 9) | function o(F){return F.replace(/(?:^[^?#]*\?([^#]*).*$)?.*/,"$1")}
function f (line 9) | function f(H,M,F,I,G){var O,L,K,N,J;if(I!==i){K=F.match(H?/^([^#]*)\#?(....
function z (line 9) | function z(H,F,G){if(F===i||typeof F==="boolean"){G=F;F=a[H?D:A]()}else{...
function s (line 9) | function s(I,G,H,F){if(!E(H)&&typeof H!=="object"){F=H;H=G;G=i}return th...
function G (line 9) | function G(J){var I=J[D]=c();J.getState=function(K,L){return K===i||type...
function a (line 18) | function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}
function n (line 18) | function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if...
FILE: doc/template/resources/javascripts/bootstrap.js
function clearMenus (line 102) | function clearMenus() {
function getParent (line 107) | function getParent($this) {
function next (line 229) | function next() {
FILE: doc/template/resources/javascripts/clicker.js
function setupClicker (line 1) | function setupClicker() {
FILE: doc/template/resources/javascripts/disqus-ext.js
function setupDisqus (line 1) | function setupDisqus(href) {
FILE: doc/template/resources/javascripts/plugins.js
function c (line 2) | function c(){}
function g (line 13) | function g(){var o=this,m=+new Date()-d,n=arguments;function l(){d=+new ...
FILE: doc/template/resources/javascripts/prettify-extension.js
function styleCode (line 5) | function styleCode()
FILE: doc/template/resources/javascripts/prettify.js
function L (line 2) | function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var...
function M (line 6) | function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.classN...
function B (line 7) | function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}
function x (line 7) | function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(...
function u (line 9) | function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''...
function D (line 12) | function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.clas...
function k (line 15) | function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(...
function C (line 15) | function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-m...
function E (line 15) | function E(a){var m=
function m (line 25) | function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Inf...
FILE: doc/template/resources/javascripts/ux.js
function loadCallback (line 17) | function loadCallback(evt) {
function ux (line 43) | function ux() {
function scrollTo (line 115) | function scrollTo(el, data) {
FILE: src/ace_test.js
function getStyleNode (line 91) | function getStyleNode() {
function click (line 177) | function click(node) {
function sendText (line 181) | function sendText(textarea, text) {
FILE: src/anchor.js
class Anchor (line 11) | class Anchor {
method constructor (line 19) | constructor(doc, row, column) {
method getPosition (line 33) | getPosition() {
method getDocument (line 42) | getDocument() {
method onChange (line 51) | onChange(delta) {
method setPosition (line 68) | setPosition(row, column, noClip) {
method detach (line 99) | detach() {
method attach (line 108) | attach(doc) {
method $clipPositionToDocument (line 121) | $clipPositionToDocument(row, column) {
function $pointsInOrder (line 151) | function $pointsInOrder(point1, point2, equalPointsInOrder) {
function $getTransformedPoint (line 156) | function $getTransformedPoint(delta, point, moveIfEqual) {
FILE: src/apply_delta.js
function throwDeltaError (line 3) | function throwDeltaError(delta, errorText){
function positionInDocument (line 8) | function positionInDocument(docLines, position) {
function validateDelta (line 13) | function validateDelta(docLines, delta) {
FILE: src/autocomplete.js
class Autocomplete (line 70) | class Autocomplete {
method constructor (line 71) | constructor() {
method completionsForLoading (line 126) | static get completionsForLoading() { return [{
method $init (line 132) | $init() {
method $initInline (line 150) | $initInline() {
method getPopup (line 160) | getPopup() {
method $onHidePopup (line 164) | $onHidePopup() {
method $seen (line 173) | $seen(completion) {
method $onPopupChange (line 179) | $onPopupChange(hide) {
method $updateGhostText (line 202) | $updateGhostText(completion) {
method $onPopupRender (line 218) | $onPopupRender() {
method $onPopupShow (line 230) | $onPopupShow(hide) {
method observeLayoutChanges (line 237) | observeLayoutChanges() {
method unObserveLayoutChanges (line 251) | unObserveLayoutChanges() {
method onLayoutChange (line 265) | onLayoutChange() {
method $updatePopupPosition (line 271) | $updatePopupPosition() {
method openPopup (line 319) | openPopup(editor, prefix, keepPopupPosition) {
method detach (line 380) | detach() {
method changeListener (line 411) | changeListener(e) {
method blurListener (line 422) | blurListener(e) {
method mousedownListener (line 436) | mousedownListener(e) {
method mousewheelListener (line 440) | mousewheelListener(e) {
method mouseOutListener (line 445) | mouseOutListener(e) {
method goTo (line 452) | goTo(where) {
method insertMatch (line 461) | insertMatch(data, options) {
method showPopup (line 482) | showPopup(editor, options) {
method getCompletionProvider (line 508) | getCompletionProvider(initialPosition) {
method gatherCompletions (line 519) | gatherCompletions(editor, callback) {
method updateCompletions (line 527) | updateCompletions(keepPopupPosition, options) {
method cancelContextMenu (line 623) | cancelContextMenu() {
method updateDocTooltip (line 627) | updateDocTooltip() {
method showDocTooltip (line 653) | showDocTooltip(item) {
method hideDocTooltip (line 732) | hideDocTooltip() {
method onTooltipClick (line 747) | onTooltipClick(e) {
method destroy (line 759) | destroy() {
method for (line 778) | static for(editor) {
class CompletionProvider (line 844) | class CompletionProvider {
method constructor (line 850) | constructor(initialPosition) {
method insertByIndex (line 861) | insertByIndex(editor, index, options) {
method insertMatch (line 874) | insertMatch(editor, data, options) {
method $insertString (line 931) | $insertString(editor, data) {
method gatherCompletions (line 940) | gatherCompletions(editor, callback) {
method provideCompletions (line 976) | provideCompletions(editor, options, callback) {
method detach (line 1028) | detach() {
class FilteredList (line 1038) | class FilteredList {
method constructor (line 1043) | constructor(array, filterText) {
method setFilter (line 1051) | setFilter(str) {
method filterCompletions (line 1076) | filterCompletions(items, needle) {
FILE: src/autocomplete/inline.js
class AceInline (line 11) | class AceInline {
method constructor (line 15) | constructor() {
method show (line 26) | show(editor, completion, prefix) {
method isOpen (line 56) | isOpen() {
method hide (line 63) | hide() {
method destroy (line 71) | destroy() {
FILE: src/autocomplete/inline_screenreader.js
class AceInlineScreenReader (line 6) | class AceInlineScreenReader {
method constructor (line 11) | constructor(editor) {
method setScreenReaderContent (line 23) | setScreenReaderContent(content) {
method destroy (line 54) | destroy() {
method createCodeBlock (line 61) | createCodeBlock() {
FILE: src/autocomplete/popup.js
class AcePopup (line 45) | class AcePopup {
method constructor (line 50) | constructor(parentNode) {
FILE: src/autocomplete/text_completer.js
function getWordIndex (line 5) | function getWordIndex(doc, pos) {
function wordDistance (line 17) | function wordDistance(doc, pos) {
FILE: src/autocomplete_test.js
function initEditor (line 29) | function initEditor(value) {
function checkInnerHTML (line 117) | async function checkInnerHTML(expected) {
function checkAria (line 287) | function checkAria(htmlElement, expected) {
function isLoading (line 1072) | function isLoading() {
function isLoading (line 1103) | function isLoading() {
function isLoading (line 1132) | function isLoading() {
function waitForDocTooltip (line 1581) | async function waitForDocTooltip() {
FILE: src/background_tokenizer.js
class BackgroundTokenizer (line 15) | class BackgroundTokenizer {
method constructor (line 22) | constructor(tokenizer, session) {
method setTokenizer (line 77) | setTokenizer(tokenizer) {
method setDocument (line 89) | setDocument(doc) {
method fireUpdateEvent (line 103) | fireUpdateEvent(firstRow, lastRow) {
method start (line 115) | start(startRow) {
method scheduleStart (line 130) | scheduleStart() {
method $updateOnChange (line 138) | $updateOnChange(delta) {
method stop (line 162) | stop() {
method getTokens (line 173) | getTokens(row) {
method getState (line 182) | getState(row) {
method $tokenizeRow (line 191) | $tokenizeRow(row) {
method cleanup (line 209) | cleanup() {
FILE: src/background_tokenizer_test.js
function forceTokenize (line 9) | function forceTokenize(session, startLine) {
function testStates (line 14) | function testStates(session, states) {
function checkEvent (line 58) | function checkEvent(first, last) {
FILE: src/bidihandler.js
class BidiHandler (line 14) | class BidiHandler {
method constructor (line 19) | constructor(session) {
method isBidiRow (line 51) | isBidiRow(screenRow, docRow, splitIndex) {
method onChange (line 66) | onChange(delta) {
method getDocumentRow (line 78) | getDocumentRow() {
method getSplitIndex (line 90) | getSplitIndex() {
method updateRowLine (line 110) | updateRowLine(docRow, splitIndex) {
method updateBidiMap (line 161) | updateBidiMap() {
method markAsDirty (line 173) | markAsDirty() {
method updateCharacterWidths (line 182) | updateCharacterWidths(fontMetrics) {
method setShowInvisibles (line 198) | setShowInvisibles(showInvisibles) {
method setEolChar (line 203) | setEolChar(eolChar) {
method setContentWidth (line 207) | setContentWidth(width) {
method isRtlLine (line 211) | isRtlLine(row) {
method setRtlDirection (line 219) | setRtlDirection(editor, isRtlDir) {
method getPosLeft (line 236) | getPosLeft(col) {
method getSelections (line 269) | getSelections(startCol, endCol) {
method offsetToCol (line 308) | offsetToCol(posX) {
FILE: src/commands/command_manager.js
class CommandManager (line 10) | class CommandManager extends MultiHashHandler{
method constructor (line 16) | constructor(platform, commands) {
method exec (line 34) | exec(command, editor, args) {
method canExecute (line 64) | canExecute(command, editor) {
method toggleRecording (line 85) | toggleRecording(editor) {
method replay (line 114) | replay(editor) {
method trimMacro (line 134) | trimMacro(m) {
FILE: src/commands/default_commands.js
function bindKey (line 7) | function bindKey(win, mac) {
FILE: src/commands/incremental_search_commands.js
function IncrementalSearchKeyboardHandler (line 134) | function IncrementalSearchKeyboardHandler(iSearch) {
FILE: src/commands/occur_commands.js
function OccurKeyboardHandler (line 42) | function OccurKeyboardHandler() {}
FILE: src/document.js
class Document (line 19) | class Document {
method constructor (line 25) | constructor(textOrLines) {
method setValue (line 45) | setValue(text) {
method getValue (line 55) | getValue() {
method createAnchor (line 65) | createAnchor(row, column) {
method $detectNewLine (line 72) | $detectNewLine(text) {
method getNewLineCharacter (line 85) | getNewLineCharacter() {
method setNewLineMode (line 101) | setNewLineMode(newLineMode) {
method getNewLineMode (line 113) | getNewLineMode() {
method isNewLine (line 122) | isNewLine(text) {
method getLine (line 131) | getLine(row) {
method getLines (line 141) | getLines(firstRow, lastRow) {
method getAllLines (line 149) | getAllLines() {
method getLength (line 157) | getLength() {
method getTextRange (line 167) | getTextRange(range) {
method getLinesForRange (line 177) | getLinesForRange(range) {
method insertLines (line 200) | insertLines(row, lines) {
method removeLines (line 212) | removeLines(firstRow, lastRow) {
method insertNewLine (line 223) | insertNewLine(position) {
method insert (line 235) | insert(position, text) {
method insertInLine (line 254) | insertInLine(position, text) {
method clippedPos (line 274) | clippedPos(row, column) {
method clonePos (line 295) | clonePos(pos) {
method pos (line 304) | pos(row, column) {
method $clipPosition (line 313) | $clipPosition(position) {
method insertFullLines (line 331) | insertFullLines(row, lines) {
method insertMergedLines (line 366) | insertMergedLines(position, lines) {
method remove (line 389) | remove(range) {
method removeInLine (line 409) | removeInLine(row, startColumn, endColumn) {
method removeFullLines (line 430) | removeFullLines(firstRow, lastRow) {
method removeNewLine (line 465) | removeNewLine(row) {
method replace (line 486) | replace(range, text) {
method applyDeltas (line 514) | applyDeltas(deltas) {
method revertDeltas (line 524) | revertDeltas(deltas) {
method applyDelta (line 535) | applyDelta(delta, doNotValidate) {
method $safeApplyDelta (line 555) | $safeApplyDelta(delta) {
method $splitAndapplyLargeDelta (line 571) | $splitAndapplyLargeDelta(delta, MAX) {
method revertDelta (line 607) | revertDelta(delta) {
method indexToPosition (line 632) | indexToPosition(index, startRow) {
method positionToIndex (line 659) | positionToIndex(pos, startRow) {
method $split (line 678) | $split(text) {
FILE: src/document_test.js
function testDelta (line 313) | function testDelta(delta) {
function test (line 333) | function test(value) {
FILE: src/edit_session.js
class EditSession (line 36) | class EditSession {
method constructor (line 42) | constructor(text, mode) {
method $initOperationListeners (line 95) | $initOperationListeners() {
method startOperation (line 122) | startOperation(commandEvent) {
method endOperation (line 147) | endOperation(e) {
method setDocument (line 178) | setDocument(doc) {
method getDocument (line 193) | getDocument() {
method widgetManager (line 202) | get widgetManager() {
method widgetManager (line 218) | set widgetManager(value) {
method $resetRowCache (line 230) | $resetRowCache(docRow) {
method $getRowCacheIndex (line 246) | $getRowCacheIndex(cacheArray, val) {
method resetCaches (line 265) | resetCaches() {
method onChangeFold (line 278) | onChangeFold(e) {
method onChange (line 288) | onChange(delta) {
method onSelectionChange (line 313) | onSelectionChange() {
method setValue (line 321) | setValue(text) {
method fromJSON (line 336) | static fromJSON(session) {
method toJSON (line 365) | toJSON() {
method toString (line 388) | toString() {
method getSelection (line 396) | getSelection() {
method getState (line 406) | getState(row) {
method getTokens (line 415) | getTokens(row) {
method getTokenAt (line 426) | getTokenAt(row, column) {
method setUndoManager (line 451) | setUndoManager(undoManager) {
method markUndoGroup (line 473) | markUndoGroup() {
method getUndoManager (line 482) | getUndoManager() {
method getTabString (line 491) | getTabString() {
method setUseSoftTabs (line 503) | setUseSoftTabs(val) {
method getUseSoftTabs (line 511) | getUseSoftTabs() {
method setTabSize (line 519) | setTabSize(tabSize) {
method getTabSize (line 526) | getTabSize() {
method isTabStop (line 534) | isTabStop(position) {
method setNavigateWithinSoftTabs (line 542) | setNavigateWithinSoftTabs(navigateWithinSoftTabs) {
method getNavigateWithinSoftTabs (line 549) | getNavigateWithinSoftTabs() {
method setOverwrite (line 561) | setOverwrite(overwrite) {
method getOverwrite (line 568) | getOverwrite() {
method toggleOverwrite (line 575) | toggleOverwrite() {
method addGutterDecoration (line 584) | addGutterDecoration(row, className) {
method removeGutterCustomWidget (line 596) | removeGutterCustomWidget(row) {
method addGutterCustomWidget (line 613) | addGutterCustomWidget(row,attributes) {
method removeGutterDecoration (line 624) | removeGutterDecoration(row, className) {
method getBreakpoints (line 633) | getBreakpoints() {
method setBreakpoints (line 641) | setBreakpoints(rows) {
method clearBreakpoints (line 652) | clearBreakpoints() {
method setBreakpoint (line 662) | setBreakpoint(row, className) {
method clearBreakpoint (line 676) | clearBreakpoint(row) {
method addMarker (line 690) | addMarker(range, clazz, type, inFront) {
method addDynamicMarker (line 720) | addDynamicMarker(marker, inFront) {
method removeMarker (line 742) | removeMarker(markerId) {
method getMarkers (line 758) | getMarkers(inFront) {
method highlight (line 765) | highlight(re) {
method highlightLines (line 781) | highlightLines(startRow, endRow, clazz, inFront) {
method setAnnotations (line 807) | setAnnotations(annotations) {
method getAnnotations (line 816) | getAnnotations() {
method clearAnnotations (line 823) | clearAnnotations() {
method $detectNewLine (line 832) | $detectNewLine(text) {
method getWordRange (line 848) | getWordRange(row, column) {
method getAWordRange (line 889) | getAWordRange(row, column) {
method setNewLineMode (line 906) | setNewLineMode(newLineMode) {
method getNewLineMode (line 916) | getNewLineMode() {
method setUseWorker (line 924) | setUseWorker(useWorker) { this.setOption("useWorker", useWorker); }
method getUseWorker (line 929) | getUseWorker() { return this.$useWorker; }
method onReloadTokenizer (line 935) | onReloadTokenizer(e) {
method setMode (line 946) | setMode(mode, cb) {
method $onChangeMode (line 995) | $onChangeMode(mode, $isPlaceholder) {
method $stopWorker (line 1036) | $stopWorker() {
method $startWorker (line 1043) | $startWorker() {
method getMode (line 1056) | getMode() {
method setScrollTop (line 1064) | setScrollTop(scrollTop) {
method getScrollTop (line 1077) | getScrollTop() {
method setScrollLeft (line 1085) | setScrollLeft(scrollLeft) {
method getScrollLeft (line 1098) | getScrollLeft() {
method getScreenWidth (line 1106) | getScreenWidth() {
method getLineWidgetMaxWidth (line 1116) | getLineWidgetMaxWidth() {
method $computeWidth (line 1129) | $computeWidth(force) {
method getLine (line 1168) | getLine(row) {
method getLines (line 1180) | getLines(firstRow, lastRow) {
method getLength (line 1188) | getLength() {
method getTextRange (line 1198) | getTextRange(range) {
method insert (line 1208) | insert(position, text) {
method remove (line 1217) | remove(range) {
method removeFullLines (line 1230) | removeFullLines(firstRow, lastRow){
method undoChanges (line 1239) | undoChanges(deltas, dontSelect) {
method redoChanges (line 1268) | redoChanges(deltas, dontSelect) {
method setUndoSelect (line 1296) | setUndoSelect(enable) {
method $getUndoSelection (line 1306) | $getUndoSelection(deltas, isUndo) {
method replace (line 1358) | replace(range, text) {
method moveText (line 1372) | moveText(fromRange, toPosition, copy) {
method indentRows (line 1422) | indentRows(startRow, endRow, indentString) {
method outdentRows (line 1432) | outdentRows(range) {
method $moveLines (line 1463) | $moveLines(firstRow, lastRow, dir) {
method moveLinesUp (line 1501) | moveLinesUp(firstRow, lastRow) {
method moveLinesDown (line 1511) | moveLinesDown(firstRow, lastRow) {
method duplicateLines (line 1521) | duplicateLines(firstRow, lastRow) {
method $clipRowToDocument (line 1529) | $clipRowToDocument(row) {
method $clipColumnToRow (line 1538) | $clipColumnToRow(row, column) {
method $clipPositionToDocument (line 1548) | $clipPositionToDocument(row, column) {
method $clipRangeToDocument (line 1574) | $clipRangeToDocument(range) {
method setUseWrapMode (line 1602) | setUseWrapMode(useWrapMode) {
method getUseWrapMode (line 1623) | getUseWrapMode() {
method setWrapLimitRange (line 1636) | setWrapLimitRange(min, max) {
method adjustWrapLimit (line 1654) | adjustWrapLimit(desiredLimit, $printMargin) {
method $constrainWrapLimit (line 1679) | $constrainWrapLimit(wrapLimit, min, max) {
method getWrapLimit (line 1693) | getWrapLimit() {
method setWrapLimit (line 1703) | setWrapLimit(limit) {
method getWrapLimitRange (line 1714) | getWrapLimitRange() {
method $updateInternalDataOnChange (line 1725) | $updateInternalDataOnChange(delta) {
method $updateRowLengthCache (line 1837) | $updateRowLengthCache(firstRow, lastRow) {
method $updateWrapData (line 1846) | $updateWrapData(firstRow, lastRow) {
method $computeWrapSplits (line 1896) | $computeWrapSplits(tokens, wrapLimit, tabSize) {
method $getDisplayTokens (line 2052) | $getDisplayTokens(str, offset) {
method $getStringScreenWidth (line 2092) | $getStringScreenWidth(str, maxScreenColumn, screenColumn) {
method getRowLength (line 2125) | getRowLength(row) {
method getRowLineCount (line 2140) | getRowLineCount(row) {
method getRowWrapIndent (line 2152) | getRowWrapIndent(screenRow) {
method getScreenLastRowColumn (line 2169) | getScreenLastRowColumn(screenRow) {
method getDocumentLastRowColumn (line 2180) | getDocumentLastRowColumn(docRow, docColumn) {
method getDocumentLastRowColumnPosition (line 2191) | getDocumentLastRowColumnPosition(docRow, docColumn) {
method getRowSplitData (line 2201) | getRowSplitData(row) {
method getScreenTabSize (line 2215) | getScreenTabSize(screenColumn) {
method screenToDocumentRow (line 2224) | screenToDocumentRow(screenRow, screenColumn) {
method screenToDocumentColumn (line 2233) | screenToDocumentColumn(screenRow, screenColumn) {
method screenToDocumentPosition (line 2247) | screenToDocumentPosition(screenRow, screenColumn, offsetX) {
method documentToScreenPosition (line 2343) | documentToScreenPosition(docRow, docColumn) {
method documentToScreenColumn (line 2443) | documentToScreenColumn(row, docColumn) {
method documentToScreenRow (line 2453) | documentToScreenRow(docRow, docColumn) {
method getScreenLength (line 2461) | getScreenLength() {
method $setFontMetrics (line 2502) | $setFontMetrics(fm) {
method getPrecedingCharacter (line 2532) | getPrecedingCharacter() {
method destroy (line 2543) | destroy() {
function isFullWidth (line 2617) | function isFullWidth(c) {
FILE: src/edit_session/bracket_match.js
function BracketMatch (line 9) | function BracketMatch() {
FILE: src/edit_session/fold.js
class Fold (line 13) | class Fold extends RangeList {
method constructor (line 19) | constructor(range, placeholder) {
method toString (line 32) | toString() {
method setFoldLine (line 39) | setFoldLine(foldLine) {
method clone (line 46) | clone() {
method addSubFold (line 59) | addSubFold(fold) {
method restoreRange (line 103) | restoreRange(range) {
function consumePoint (line 113) | function consumePoint(point, anchor) {
function consumeRange (line 122) | function consumeRange(range, anchor) {
function restorePoint (line 130) | function restorePoint(point, anchor) {
function restoreRange (line 139) | function restoreRange(range, anchor) {
FILE: src/edit_session/fold_line.js
class FoldLine (line 7) | class FoldLine {
method constructor (line 13) | constructor(foldData, folds) {
method shiftRow (line 37) | shiftRow(shift) {
method addFold (line 49) | addFold(fold) {
method containsRow (line 83) | containsRow(row) {
method walk (line 92) | walk(callback, endRow, endColumn) {
method getNextFoldTo (line 135) | getNextFoldTo(row, column) {
method addRemoveChars (line 160) | addRemoveChars(row, column, len) {
method split (line 196) | split(row, column) {
method merge (line 223) | merge(foldLineNext) {
method toString (line 234) | toString() {
method idxToPosition (line 248) | idxToPosition(idx) {
FILE: src/edit_session/folding.js
function Folding (line 19) | function Folding() {
FILE: src/edit_session_test.js
function createFoldTestSession (line 19) | function createFoldTestSession() {
function assertArray (line 35) | function assertArray(a, b) {
function insert (line 43) | function insert(row, column, text, session) {
function computeAndAssert (line 357) | function computeAndAssert(line, assertEqual, wrapLimit, tabSize) {
function foldRows (line 574) | function foldRows() {
function assertDisplayLine (line 581) | function assertDisplayLine(foldLine, str) {
function assertIdx2Pos (line 595) | function assertIdx2Pos(foldLineIdx, idx, row, column) {
function assertDoc2Screen (line 623) | function assertDoc2Screen(docRow, docCol, screenRow, screenCol) {
function assertScreen2Doc (line 664) | function assertScreen2Doc(docRow, docCol, screenRow, screenCol) {
function test (line 706) | function test(startRow, startColumn, endColumn, endRow, folds) {
function assertWrap (line 882) | function assertWrap(line0, line1, line2) {
function removeFoldAssertWrap (line 888) | function removeFoldAssertWrap(docRow, docColumn, line0, line1, line2) {
function addFold (line 998) | function addFold(placeholder, range) {
FILE: src/editor.js
class Editor (line 42) | class Editor {
method constructor (line 50) | constructor(renderer, session, options) {
method $initOperationListeners (line 99) | $initOperationListeners() {
method startOperation (line 104) | startOperation(commandEvent) {
method endOperation (line 111) | endOperation(e) {
method onStartOperation (line 115) | onStartOperation(commandEvent) {
method onEndOperation (line 128) | onEndOperation(e) {
method $historyTracker (line 175) | $historyTracker(e) {
method setKeyboardHandler (line 216) | setKeyboardHandler(keyboardHandler, cb) {
method getKeyboardHandler (line 237) | getKeyboardHandler() {
method setSession (line 247) | setSession(session) {
method getSession (line 373) | getSession() {
method setValue (line 385) | setValue(val, cursorPos) {
method getValue (line 404) | getValue() {
method getSelection (line 413) | getSelection() {
method resize (line 422) | resize(force) {
method setTheme (line 431) | setTheme(theme, cb) {
method getTheme (line 441) | getTheme() {
method setStyle (line 451) | setStyle(style, incluude) {
method unsetStyle (line 460) | unsetStyle(style) {
method getFontSize (line 468) | getFontSize() {
method setFontSize (line 477) | setFontSize(size) {
method $highlightBrackets (line 481) | $highlightBrackets() {
method focus (line 554) | focus() {
method isFocused (line 562) | isFocused() {
method blur (line 570) | blur() {
method onFocus (line 578) | onFocus(e) {
method onBlur (line 591) | onBlur(e) {
method $cursorChange (line 602) | $cursorChange() {
method onDocumentChange (line 613) | onDocumentChange(delta) {
method onTokenizerUpdate (line 628) | onTokenizerUpdate(e) {
method onScrollTopChange (line 636) | onScrollTopChange() {
method onScrollLeftChange (line 643) | onScrollLeftChange() {
method onCursorChange (line 651) | onCursorChange() {
method $updateHighlightActiveLine (line 658) | $updateHighlightActiveLine() {
method onSelectionChange (line 690) | onSelectionChange(e) {
method $getSelectionHighLightRegexp (line 712) | $getSelectionHighLightRegexp() {
method onChangeFrontMarker (line 745) | onChangeFrontMarker() {
method onChangeBackMarker (line 752) | onChangeBackMarker() {
method onChangeBreakpoint (line 759) | onChangeBreakpoint() {
method onChangeAnnotation (line 766) | onChangeAnnotation() {
method onChangeMode (line 774) | onChangeMode (e) {
method onChangeWrapLimit (line 782) | onChangeWrapLimit() {
method onChangeWrapMode (line 789) | onChangeWrapMode() {
method onChangeFold (line 797) | onChangeFold() {
method getSelectedText (line 810) | getSelectedText() {
method getCopyText (line 819) | getCopyText () {
method onCopy (line 843) | onCopy() {
method onCut (line 851) | onCut() {
method onPaste (line 862) | onPaste(text, event) {
method $handlePaste (line 872) | $handlePaste(e) {
method execCommand (line 913) | execCommand(command, args) {
method insert (line 922) | insert(text, pasted) {
method autoIndent (line 997) | autoIndent() {
method onTextInput (line 1045) | onTextInput(text, composition) {
method applyComposition (line 1062) | applyComposition(text, composition) {
method onCommandKey (line 1088) | onCommandKey(e, hashId, keyCode) {
method setOverwrite (line 1097) | setOverwrite(overwrite) {
method getOverwrite (line 1106) | getOverwrite() {
method toggleOverwrite (line 1114) | toggleOverwrite() {
method setScrollSpeed (line 1122) | setScrollSpeed(speed) {
method getScrollSpeed (line 1130) | getScrollSpeed() {
method setDragDelay (line 1138) | setDragDelay(dragDelay) {
method getDragDelay (line 1146) | getDragDelay() {
method setSelectionStyle (line 1155) | setSelectionStyle(val) {
method getSelectionStyle (line 1163) | getSelectionStyle() {
method setHighlightActiveLine (line 1171) | setHighlightActiveLine(shouldHighlight) {
method getHighlightActiveLine (line 1178) | getHighlightActiveLine() {
method setHighlightGutterLine (line 1185) | setHighlightGutterLine(shouldHighlight) {
method getHighlightGutterLine (line 1192) | getHighlightGutterLine() {
method setHighlightSelectedWord (line 1200) | setHighlightSelectedWord(shouldHighlight) {
method getHighlightSelectedWord (line 1208) | getHighlightSelectedWord() {
method setAnimatedScroll (line 1215) | setAnimatedScroll(shouldAnimate){
method getAnimatedScroll (line 1222) | getAnimatedScroll(){
method setShowInvisibles (line 1230) | setShowInvisibles(showInvisibles) {
method getShowInvisibles (line 1238) | getShowInvisibles() {
method setDisplayIndentGuides (line 1245) | setDisplayIndentGuides(display) {
method getDisplayIndentGuides (line 1252) | getDisplayIndentGuides() {
method setHighlightIndentGuides (line 1259) | setHighlightIndentGuides(highlight) {
method getHighlightIndentGuides (line 1266) | getHighlightIndentGuides() {
method setShowPrintMargin (line 1275) | setShowPrintMargin(showPrintMargin) {
method getShowPrintMargin (line 1283) | getShowPrintMargin() {
method setPrintMarginColumn (line 1292) | setPrintMarginColumn(showPrintMargin) {
method getPrintMarginColumn (line 1300) | getPrintMarginColumn() {
method setReadOnly (line 1308) | setReadOnly(readOnly) {
method getReadOnly (line 1316) | getReadOnly() {
method setBehavioursEnabled (line 1324) | setBehavioursEnabled(enabled) {
method getBehavioursEnabled (line 1332) | getBehavioursEnabled() {
method setWrapBehavioursEnabled (line 1341) | setWrapBehavioursEnabled(enabled) {
method getWrapBehavioursEnabled (line 1349) | getWrapBehavioursEnabled() {
method setShowFoldWidgets (line 1357) | setShowFoldWidgets(show) {
method getShowFoldWidgets (line 1365) | getShowFoldWidgets() {
method setFadeFoldWidgets (line 1372) | setFadeFoldWidgets(fade) {
method getFadeFoldWidgets (line 1379) | getFadeFoldWidgets() {
method remove (line 1387) | remove(dir) {
method removeWordRight (line 1422) | removeWordRight() {
method removeWordLeft (line 1433) | removeWordLeft() {
method removeToLineStart (line 1444) | removeToLineStart() {
method removeToLineEnd (line 1456) | removeToLineEnd() {
method splitLine (line 1473) | splitLine() {
method setGhostText (line 1492) | setGhostText(text, position) {
method removeGhostText (line 1499) | removeGhostText() {
method transposeLetters (line 1506) | transposeLetters() {
method toLowerCase (line 1533) | toLowerCase() {
method toUpperCase (line 1548) | toUpperCase() {
method indent (line 1565) | indent() {
method blockIndent (line 1606) | blockIndent() {
method blockOutdent (line 1615) | blockOutdent() {
method sortLines (line 1621) | sortLines() {
method toggleCommentLines (line 1648) | toggleCommentLines() {
method toggleBlockComment (line 1654) | toggleBlockComment() {
method getNumberAt (line 1665) | getNumberAt(row, column) {
method modifyNumber (line 1688) | modifyNumber(amount) {
method toggleWord (line 1735) | toggleWord() {
method findLinkAt (line 1790) | findLinkAt(row, column) {
method openLink (line 1813) | openLink() {
method removeLines (line 1825) | removeLines() {
method duplicateSelection (line 1831) | duplicateSelection() {
method moveLinesDown (line 1854) | moveLinesDown() {
method moveLinesUp (line 1862) | moveLinesUp() {
method moveText (line 1878) | moveText(range, toPosition, copy) {
method copyLinesUp (line 1886) | copyLinesUp() {
method copyLinesDown (line 1895) | copyLinesDown() {
method $moveLines (line 1904) | $moveLines(dir, copy) {
method $getSelectedRows (line 1964) | $getSelectedRows(range) {
method onCompositionStart (line 1976) | onCompositionStart(compositionState) {
method onCompositionUpdate (line 1983) | onCompositionUpdate(text) {
method onCompositionEnd (line 1990) | onCompositionEnd() {
method getFirstVisibleRow (line 2000) | getFirstVisibleRow() {
method getLastVisibleRow (line 2010) | getLastVisibleRow() {
method isRowVisible (line 2020) | isRowVisible(row) {
method isRowFullyVisible (line 2031) | isRowFullyVisible(row) {
method $getVisibleRowCount (line 2039) | $getVisibleRowCount() {
method $moveByPage (line 2043) | $moveByPage(dir, select) {
method selectPageDown (line 2069) | selectPageDown() {
method selectPageUp (line 2076) | selectPageUp() {
method gotoPageDown (line 2083) | gotoPageDown() {
method gotoPageUp (line 2090) | gotoPageUp() {
method scrollPageDown (line 2097) | scrollPageDown() {
method scrollPageUp (line 2104) | scrollPageUp() {
method scrollToRow (line 2113) | scrollToRow(row) {
method scrollToLine (line 2126) | scrollToLine(line, center, animate, callback) {
method centerSelection (line 2133) | centerSelection() {
method getCursorPosition (line 2152) | getCursorPosition() {
method getCursorPositionScreen (line 2161) | getCursorPositionScreen() {
method getSelectionRange (line 2170) | getSelectionRange() {
method selectAll (line 2178) | selectAll() {
method clearSelection (line 2186) | clearSelection() {
method moveCursorTo (line 2196) | moveCursorTo(row, column) {
method moveCursorToPosition (line 2205) | moveCursorToPosition(pos) {
method jumpToMatching (line 2214) | jumpToMatching(select, expand) {
method gotoLine (line 2365) | gotoLine(lineNumber, column, animate) {
method navigateTo (line 2384) | navigateTo(row, column) {
method navigateUp (line 2393) | navigateUp(times) {
method navigateDown (line 2407) | navigateDown(times) {
method navigateLeft (line 2421) | navigateLeft(times) {
method navigateRight (line 2440) | navigateRight(times) {
method navigateLineStart (line 2458) | navigateLineStart() {
method navigateLineEnd (line 2467) | navigateLineEnd() {
method navigateFileEnd (line 2476) | navigateFileEnd() {
method navigateFileStart (line 2485) | navigateFileStart() {
method navigateWordRight (line 2494) | navigateWordRight() {
method navigateWordLeft (line 2503) | navigateWordLeft() {
method replace (line 2514) | replace(replacement, options) {
method replaceAll (line 2539) | replaceAll(replacement, options) {
method $tryReplace (line 2567) | $tryReplace(range, replacement) {
method getLastSearchOptions (line 2583) | getLastSearchOptions() {
method find (line 2594) | find(needle, options, animate) {
method findNext (line 2640) | findNext(options, animate) {
method findPrevious (line 2651) | findPrevious(options, animate) {
method revealRange (line 2660) | revealRange(range, animate) {
method undo (line 2674) | undo() {
method redo (line 2683) | redo() {
method destroy (line 2692) | destroy() {
method setAutoScrollEditorIntoView (line 2717) | setAutoScrollEditorIntoView(enable) {
method $resetCursorStyle (line 2771) | $resetCursorStyle() {
method prompt (line 2784) | prompt(message, options, callback) {
method hoverTooltip (line 2791) | get hoverTooltip() {
method hoverTooltip (line 2794) | set hoverTooltip(value) {
FILE: src/editor_highlight_selected_word_test.js
function callHighlighterUpdate (line 33) | function callHighlighterUpdate(session, firstRow, lastRow) {
FILE: src/editor_navigation_test.js
function emit (line 14) | function emit(keyCode) {
FILE: src/editor_options_test.js
function mouse (line 14) | function mouse(type, pos, properties) {
FILE: src/ext/beautify.js
function is (line 21) | function is(token, type) {
FILE: src/ext/code_lens.js
function clearLensElements (line 25) | function clearLensElements(renderer) {
function renderWidgets (line 39) | function renderWidgets(changes, renderer) {
function clearCodeLensWidgets (line 115) | function clearCodeLensWidgets(session) {
function attachToEditor (line 159) | function attachToEditor(editor) {
function detachFromEditor (line 221) | function detachFromEditor(editor) {
FILE: src/ext/code_lens_test.js
function click (line 14) | function click(node) {
FILE: src/ext/command_bar.js
class CommandBarTooltip (line 64) | class CommandBarTooltip {
method constructor (line 69) | constructor(parentNode, options) {
method registerCommand (line 107) | registerCommand(id, command) {
method isShown (line 133) | isShown() {
method isMoreOptionsShown (line 137) | isMoreOptionsShown() {
method getAlwaysShow (line 141) | getAlwaysShow() {
method setAlwaysShow (line 153) | setAlwaysShow(alwaysShow) {
method attach (line 167) | attach(editor) {
method updatePosition (line 191) | updatePosition() {
method update (line 267) | update() {
method detach (line 274) | detach() {
method destroy (line 289) | destroy() {
method $createCommand (line 306) | $createCommand(id, command, forMainTooltip) {
method $setMoreOptionsVisibility (line 389) | $setMoreOptionsVisibility(visible) {
method $onEditorChangeSession (line 401) | $onEditorChangeSession(e) {
method $onChangeScroll (line 409) | $onChangeScroll() {
method $onMouseMove (line 415) | $onMouseMove(e) {
method $preventMouseEvent (line 442) | $preventMouseEvent(e) {
method $scheduleTooltipForHide (line 449) | $scheduleTooltipForHide() {
method $tooltipEnter (line 455) | $tooltipEnter() {
method $updateOnHoverHandlers (line 468) | $updateOnHoverHandlers(enableHover) {
method $showTooltip (line 492) | $showTooltip() {
method $hideTooltip (line 503) | $hideTooltip() {
method $updateElement (line 516) | $updateElement(id) {
FILE: src/ext/command_bar_test.js
function simulateClick (line 17) | function simulateClick(node) {
function simulateMouseEvent (line 21) | function simulateMouseEvent(type, opts, node) {
function getActiveLinePosition (line 36) | function getActiveLinePosition() {
FILE: src/ext/diff.js
function createDiffView (line 66) | function createDiffView(diffModel, options) {
FILE: src/ext/diff/base_diff_view.js
class BaseDiffView (line 34) | class BaseDiffView {
method constructor (line 40) | constructor(inlineDiffEditor, container) {
method $setupModels (line 72) | $setupModels(diffModel) {
method addGutterDecorators (line 132) | addGutterDecorators() {
method $setupModel (line 143) | $setupModel(session, value) {
method foldUnchanged (line 152) | foldUnchanged() {
method unfoldUnchanged (line 183) | unfoldUnchanged() {
method toggleFoldUnchanged (line 193) | toggleFoldUnchanged() {
method setDiffSession (line 202) | setDiffSession(session) {
method $attachSessionsEventHandlers (line 225) | $attachSessionsEventHandlers() {
method $detachSessionsEventHandlers (line 231) | $detachSessionsEventHandlers() {
method getDiffSession (line 234) | getDiffSession() {
method setTheme (line 238) | setTheme(theme) {
method getTheme (line 243) | getTheme() {
method onChangeTheme (line 247) | onChangeTheme(e) {
method resize (line 258) | resize(force) {
method scheduleOnInput (line 263) | scheduleOnInput() {
method onInput (line 270) | onInput() {
method setupScrollbars (line 303) | setupScrollbars() {
method $setScrollBarDecorators (line 324) | $setScrollBarDecorators(renderer) {
method $resetDecorators (line 334) | $resetDecorators(renderer) {
method updateScrollBarDecorators (line 341) | updateScrollBarDecorators() {
method $diffLines (line 397) | $diffLines(val1, val2) {
method setProvider (line 407) | setProvider(provider) {
method $addWidget (line 415) | $addWidget(session, w) {
method $initWidgets (line 436) | $initWidgets(editor) {
method $screenRow (line 452) | $screenRow(pos, session) {
method align (line 465) | align() {}
method onChangeWrapLimit (line 467) | onChangeWrapLimit(e, session) {}
method onSelect (line 469) | onSelect(e, selection) {
method syncSelect (line 474) | syncSelect(selection) {
method updateSelectionMarker (line 509) | updateSelectionMarker(marker, session, range) {
method onChangeFold (line 518) | onChangeFold(ev, session) {
method scheduleRealign (line 564) | scheduleRealign() {
method realign (line 572) | realign() {
method detach (line 580) | detach() {
method $removeLineWidgets (line 605) | $removeLineWidgets(session) {
method $detachEventHandlers (line 616) | $detachEventHandlers() {
method destroy (line 620) | destroy() {
method gotoNext (line 627) | gotoNext(dir) {
method firstDiffSelected (line 649) | firstDiffSelected() {
method lastDiffSelected (line 653) | lastDiffSelected() {
method transformRange (line 661) | transformRange(range, isOriginal) {
method transformPosition (line 670) | transformPosition(pos, isOriginal) {
method $getDeltaIndent (line 753) | $getDeltaIndent(fromEditSession, toEditSession, fromLine, toLine) {
method $getIndent (line 763) | $getIndent(editSession, line) {
method printDiffs (line 767) | printDiffs() {
method findChunkIndex (line 780) | findChunkIndex(chunks, row, isOriginal) {
method searchHighlight (line 793) | searchHighlight(selection) {
method initSelectionMarkers (line 804) | initSelectionMarkers() {
method clearSelectionMarkers (line 810) | clearSelectionMarkers() {
method getWidth (line 879) | getWidth() {
class DiffChunk (line 887) | class DiffChunk {
method constructor (line 895) | constructor(originalRange, modifiedRange, charChanges) {
class DiffHighlight (line 907) | class DiffHighlight {
method constructor (line 912) | constructor(diffView, type) {
method update (line 918) | update(html, markerLayer, session, config) {
class SyncSelectionMarker (line 1031) | class SyncSelectionMarker {
method constructor (line 1032) | constructor() {
method update (line 1038) | update(html, markerLayer, session, config) {
method setRange (line 1044) | setRange(range) {//TODO
FILE: src/ext/diff/diff_test.js
function createEditor (line 20) | function createEditor() {
function setEditorPosition (line 26) | function setEditorPosition(editor) {
function getValueA (line 33) | function getValueA(lines) {
function getValueB (line 40) | function getValueB(lines) {
function saveEventRegistry (line 128) | function saveEventRegistry(object) {
function checkEventRegistry (line 143) | function checkEventRegistry() {
function findPointFillStyle (line 473) | function findPointFillStyle(imageData, y) {
function assertDecoratorsPlacement (line 480) | function assertDecoratorsPlacement(editor, inlineDiff) {
FILE: src/ext/diff/gutter_decorator.js
class MinimalGutterDiffDecorator (line 3) | class MinimalGutterDiffDecorator {
method constructor (line 8) | constructor(editor, type) {
method attachToEditor (line 21) | attachToEditor() {
method renderGutters (line 34) | renderGutters(e, gutterLayer) {
method setDecorations (line 53) | setDecorations(changes) {
method dispose (line 58) | dispose() {
FILE: src/ext/diff/inline_diff_view.js
class InlineDiffView (line 8) | class InlineDiffView extends BaseDiffView {
method constructor (line 14) | constructor(diffModel, container) {
method init (line 21) | init(diffModel) {
method initRenderer (line 77) | initRenderer(restore) {
method initTextLayer (line 92) | initTextLayer() {
method initTextInput (line 129) | initTextInput(restore) {
method selectEditor (line 141) | selectEditor(editor) {
method removeBracketHighlight (line 175) | removeBracketHighlight(editor) {
method initMouse (line 185) | initMouse() {
method align (line 253) | align() {
method onChangeWrapLimit (line 281) | onChangeWrapLimit(e, session) {
method $attachSessionsEventHandlers (line 290) | $attachSessionsEventHandlers() {
method $attachSessionEventHandlers (line 298) | $attachSessionEventHandlers(editor, marker) {
method $detachSessionsEventHandlers (line 305) | $detachSessionsEventHandlers() {
method $detachSessionHandlers (line 314) | $detachSessionHandlers(editor, marker) {
method $attachEventHandlers (line 322) | $attachEventHandlers() {
method $detachEventHandlers (line 328) | $detachEventHandlers() {
method onAfterRender (line 357) | onAfterRender(changes, renderer) {
method detach (line 403) | detach() {
FILE: src/ext/diff/providers/default.js
function equals (line 3) | function equals(one, other, itemEquals = (a, b) => a === b) {
function forEachAdjacent (line 38) | function forEachAdjacent(arr, f) {
function forEachWithNeighbors (line 43) | function forEachWithNeighbors(arr, f) {
function pushMany (line 48) | function pushMany(arr, items) {
function compareBy (line 53) | function compareBy(selector, comparator) {
function reverseOrder (line 57) | function reverseOrder(comparator) {
class BugIndicatingError (line 61) | class BugIndicatingError extends Error {
method constructor (line 62) | constructor(message) {
function assert (line 68) | function assert(condition, message = "unexpected state") {
function assertFn (line 73) | function assertFn(condition) {
function checkAdjacentItems (line 76) | function checkAdjacentItems(items, predicate) {
class OffsetRange (line 89) | class OffsetRange {
method constructor (line 90) | constructor(start, endExclusive) {
method fromTo (line 97) | static fromTo(start, endExclusive) {
method addRange (line 100) | static addRange(range, sortedRanges) {
method tryCreate (line 117) | static tryCreate(start, endExclusive) {
method ofLength (line 123) | static ofLength(length) {
method ofStartAndLength (line 126) | static ofStartAndLength(start, length) {
method emptyAt (line 129) | static emptyAt(offset) {
method isEmpty (line 132) | get isEmpty() {
method delta (line 135) | delta(offset) {
method deltaStart (line 138) | deltaStart(offset) {
method deltaEnd (line 141) | deltaEnd(offset) {
method length (line 144) | get length() {
method toString (line 147) | toString() {
method equals (line 150) | equals(other) {
method containsRange (line 153) | containsRange(other) {
method contains (line 156) | contains(offset) {
method join (line 163) | join(other) {
method intersect (line 172) | intersect(other) {
method intersectionLength (line 180) | intersectionLength(range) {
method intersects (line 185) | intersects(other) {
method intersectsOrTouches (line 190) | intersectsOrTouches(other) {
method isBefore (line 195) | isBefore(other) {
method isAfter (line 198) | isAfter(other) {
method slice (line 201) | slice(arr) {
method substring (line 204) | substring(str) {
method clip (line 211) | clip(value) {
method clipCyclic (line 223) | clipCyclic(value) {
method map (line 235) | map(f) {
method forEach (line 242) | forEach(f) {
class Position (line 249) | class Position {
method constructor (line 250) | constructor(lineNumber, column) {
method equals (line 257) | equals(other) {
method equals (line 263) | static equals(a, b) {
method isBefore (line 273) | isBefore(other) {
method isBefore (line 280) | static isBefore(a, b) {
method isBeforeOrEqual (line 293) | isBeforeOrEqual(other) {
method isBeforeOrEqual (line 300) | static isBeforeOrEqual(a, b) {
class Range (line 311) | class Range {
method constructor (line 312) | constructor(startLineNumber, startColumn, endLineNumber, endColumn) {
method isEmpty (line 328) | isEmpty() {
method isEmpty (line 334) | static isEmpty(range) {
method containsPosition (line 340) | containsPosition(position) {
method containsPosition (line 346) | static containsPosition(range, position) {
method containsRange (line 361) | containsRange(range) {
method containsRange (line 367) | static containsRange(range, otherRange) {
method strictContainsRange (line 385) | strictContainsRange(range) {
method strictContainsRange (line 391) | static strictContainsRange(range, otherRange) {
method plusRange (line 410) | plusRange(range) {
method plusRange (line 417) | static plusRange(a, b) {
method intersectRanges (line 447) | intersectRanges(range) {
method intersectRanges (line 453) | static intersectRanges(a, b) {
method equalsRange (line 485) | equalsRange(other) {
method equalsRange (line 491) | static equalsRange(a, b) {
method getEndPosition (line 500) | getEndPosition() {
method getEndPosition (line 506) | static getEndPosition(range) {
method getStartPosition (line 512) | getStartPosition() {
method getStartPosition (line 518) | static getStartPosition(range) {
method collapseToStart (line 524) | collapseToStart() {
method collapseToStart (line 530) | static collapseToStart(range) {
method collapseToEnd (line 536) | collapseToEnd() {
method collapseToEnd (line 542) | static collapseToEnd(range) {
method fromPositions (line 546) | static fromPositions(start, end = start) {
function findLastMonotonous (line 551) | function findLastMonotonous(array, predicate) {
function findLastIdxMonotonous (line 555) | function findLastIdxMonotonous(array, predicate, startIdx = 0, endIdxEx ...
function findFirstMonotonous (line 568) | function findFirstMonotonous(array, predicate) {
function findFirstIdxMonotonousOrArrLen (line 572) | function findFirstIdxMonotonousOrArrLen(array, predicate, startIdx = 0, ...
class MonotonousArray (line 585) | class MonotonousArray {
method constructor (line 586) | constructor(_array) {
method findLastMonotonous (line 597) | findLastMonotonous(predicate) {
class LineRange (line 614) | class LineRange {
method fromRangeInclusive (line 615) | static fromRangeInclusive(range) {
method join (line 618) | static join(lineRanges) {
method ofLength (line 630) | static ofLength(startLineNumber, length) {
method constructor (line 633) | constructor(startLineNumber, endLineNumberExclusive) {
method isEmpty (line 643) | get isEmpty() {
method delta (line 649) | delta(offset) {
method length (line 655) | get length() {
method join (line 661) | join(other) {
method intersect (line 671) | intersect(other) {
method overlapOrTouch (line 679) | overlapOrTouch(other) {
method toInclusiveRange (line 682) | toInclusiveRange() {
method toOffsetRange (line 692) | toOffsetRange() {
class LineRangeSet (line 696) | class LineRangeSet {
method constructor (line 697) | constructor(_normalizedRanges = []) {
method ranges (line 700) | get ranges() {
method addRange (line 703) | addRange(range) {
method contains (line 719) | contains(lineNumber) {
method subtractFrom (line 726) | subtractFrom(range) {
method getIntersection (line 746) | getIntersection(other) {
method getWithDelta (line 765) | getWithDelta(value) {
class TextLength (line 770) | class TextLength {
method constructor (line 771) | constructor(lineCount, columnCount) {
method toLineRange (line 778) | toLineRange() {
method addToPosition (line 781) | addToPosition(position) {
class LineBasedText (line 791) | class LineBasedText {
method constructor (line 792) | constructor(_getLineContent, _lineCount) {
method getValueOfRange (line 797) | getValueOfRange(range) {
method getLineLength (line 808) | getLineLength(lineNumber) {
method length (line 811) | get length() {
class ArrayText (line 816) | class ArrayText extends LineBasedText {
method constructor (line 817) | constructor(lines) {
class LinesDiff (line 825) | class LinesDiff {
method constructor (line 826) | constructor(changes, moves, hitTimeout) {
class MovedText (line 832) | class MovedText {
method constructor (line 833) | constructor(lineRangeMapping, changes) {
class LineRangeMapping (line 839) | class LineRangeMapping {
method constructor (line 840) | constructor(originalRange, modifiedRange) {
method join (line 844) | join(other) {
method changedLineCount (line 850) | get changedLineCount() {
method toRangeMapping (line 858) | toRangeMapping() {
method toRangeMapping2 (line 883) | toRangeMapping2(original, modified) {
function normalizePosition (line 917) | function normalizePosition(position, content) {
function isValidLineNumber (line 930) | function isValidLineNumber(lineNumber, lines) {
class DetailedLineRangeMapping (line 933) | class DetailedLineRangeMapping extends LineRangeMapping {
method fromRangeMappings (line 934) | static fromRangeMappings(rangeMappings) {
method constructor (line 939) | constructor(originalRange, modifiedRange, innerChanges) {
method flip (line 943) | flip() {
method withInnerChangesFromLineRanges (line 946) | withInnerChangesFromLineRanges() {
class RangeMapping (line 950) | class RangeMapping {
method join (line 951) | static join(rangeMappings) {
method assertSorted (line 961) | static assertSorted(rangeMappings) {
method constructor (line 970) | constructor(originalRange, modifiedRange) {
method flip (line 974) | flip() {
method join (line 980) | join(other) {
function lineRangeMappingFromRangeMappings (line 987) | function lineRangeMappingFromRangeMappings(alignments, originalLines, mo...
function getLineRangeMapping (line 1018) | function getLineRangeMapping(rangeMapping, originalLines, modifiedLines) {
class DiffAlgorithmResult (line 1038) | class DiffAlgorithmResult {
method constructor (line 1039) | constructor(diffs, hitTimeout) {
method trivial (line 1043) | static trivial(seq1, seq2) {
method trivialTimedOut (line 1046) | static trivialTimedOut(seq1, seq2) {
class SequenceDiff (line 1050) | class SequenceDiff {
method constructor (line 1051) | constructor(seq1Range, seq2Range) {
method invert (line 1055) | static invert(sequenceDiffs, doc1Length) {
method fromOffsetPairs (line 1065) | static fromOffsetPairs(start, endExclusive) {
method assertSorted (line 1071) | static assertSorted(sequenceDiffs) {
method swap (line 1082) | swap() {
method join (line 1085) | join(other) {
method delta (line 1088) | delta(offset) {
method deltaStart (line 1094) | deltaStart(offset) {
method deltaEnd (line 1100) | deltaEnd(offset) {
method intersect (line 1106) | intersect(other) {
method getStarts (line 1114) | getStarts() {
method getEndExclusives (line 1117) | getEndExclusives() {
class OffsetPair (line 1121) | class OffsetPair {
method constructor (line 1122) | constructor(offset1, offset2) {
method delta (line 1132) | delta(offset) {
method equals (line 1138) | equals(other) {
class InfiniteTimeout (line 1142) | class InfiniteTimeout {
method isValid (line 1146) | isValid() {
class DateTimeout (line 1150) | class DateTimeout {
method constructor (line 1151) | constructor(timeout) {
method isValid (line 1160) | isValid() {
method disable (line 1167) | disable() {
class Array2D (line 1174) | class Array2D {
method constructor (line 1175) | constructor(width, height) {
method get (line 1181) | get(x, y) {
method set (line 1184) | set(x, y, value) {
function isSpace (line 1188) | function isSpace(charCode) {
class LineRangeFragment (line 1191) | class LineRangeFragment {
method constructor (line 1192) | constructor(range, lines, source) {
method getKey (line 1215) | static getKey(chr) {
method computeSimilarity (line 1223) | computeSimilarity(other) {
class DynamicProgrammingDiffing (line 1233) | class DynamicProgrammingDiffing {
method compute (line 1234) | compute(sequence1, sequence2, timeout = InfiniteTimeout.instance, equa...
class MyersDiffAlgorithm (line 1311) | class MyersDiffAlgorithm {
method compute (line 1312) | compute(seq1, seq2, timeout = InfiniteTimeout.instance) {
class SnakePath (line 1379) | class SnakePath {
method constructor (line 1380) | constructor(prev, x, y, length) {
class FastInt32Array (line 1387) | class FastInt32Array {
method constructor (line 1388) | constructor() {
method get (line 1392) | get(idx) {
method set (line 1400) | set(idx, value) {
class FastArrayNegativeIndices (line 1419) | class FastArrayNegativeIndices {
method constructor (line 1420) | constructor() {
method get (line 1424) | get(idx) {
method set (line 1432) | set(idx, value) {
class SetMap (line 1442) | class SetMap {
method constructor (line 1443) | constructor() {
method add (line 1446) | add(key, value) {
method forEach (line 1454) | forEach(key, fn) {
method get (line 1461) | get(key) {
class LinesSliceCharSequence (line 1470) | class LinesSliceCharSequence {
method constructor (line 1471) | constructor(lines, range, considerWhitespaceChanges) {
method toString (line 1505) | toString() {
method text (line 1508) | get text() {
method getText (line 1511) | getText(range) {
method getElement (line 1514) | getElement(offset) {
method length (line 1517) | get length() {
method getBoundaryScore (line 1520) | getBoundaryScore(length) {
method translateOffset (line 1540) | translateOffset(offset, preference = "right") {
method translateRange (line 1548) | translateRange(range) {
method findWordContaining (line 1559) | findWordContaining(offset) {
method findSubWordContaining (line 1577) | findSubWordContaining(offset) {
method countLinesIn (line 1594) | countLinesIn(range) {
method isStronglyEqual (line 1597) | isStronglyEqual(offset1, offset2) {
method extendToFullLines (line 1600) | extendToFullLines(range) {
function isWordChar (line 1606) | function isWordChar(charCode) {
function isUpperCase (line 1609) | function isUpperCase(charCode) {
function getCategoryBoundaryScore (line 1623) | function getCategoryBoundaryScore(category) {
function getCategory (line 1626) | function getCategory(charCode) {
function computeMovedLines (line 1648) | function computeMovedLines(changes, originalLines, modifiedLines, hashed...
function countWhere (line 1665) | function countWhere(arr, predicate) {
function computeMovesFromSimpleDeletionsToSimpleInsertions (line 1674) | function computeMovesFromSimpleDeletionsToSimpleInsertions(changes, orig...
function computeUnchangedMoves (line 1701) | function computeUnchangedMoves(changes, hashedOriginalLines, hashedModif...
function areLinesSimilar (line 1820) | function areLinesSimilar(line1, line2, timeout) {
function joinCloseConsecutiveMoves (line 1855) | function joinCloseConsecutiveMoves(moves) {
function removeMovesInSameDiff (line 1875) | function removeMovesInSameDiff(changes, moves) {
function optimizeSequenceDiffs (line 1886) | function optimizeSequenceDiffs(sequence1, sequence2, sequenceDiffs) {
function joinSequenceDiffsByShifting (line 1893) | function joinSequenceDiffsByShifting(sequence1, sequence2, sequenceDiffs) {
function shiftSequenceDiffs (line 1952) | function shiftSequenceDiffs(sequence1, sequence2, sequenceDiffs) {
function shiftDiffToBetterPosition (line 1970) | function shiftDiffToBetterPosition(diff, sequence1, sequence2, seq1Valid...
function removeShortMatches (line 1998) | function removeShortMatches(sequence1, sequence2, sequenceDiffs) {
function extendDiffsToEntireWordIfAppropriate (line 2014) | function extendDiffsToEntireWordIfAppropriate(sequence1, sequence2, sequ...
function mergeSequenceDiffs (line 2066) | function mergeSequenceDiffs(sequenceDiffs1, sequenceDiffs2) {
function removeVeryShortMatchingLinesBetweenDiffs (line 2085) | function removeVeryShortMatchingLinesBetweenDiffs(sequence1, _sequence2,...
function removeVeryShortMatchingTextBetweenLongDiffs (line 2121) | function removeVeryShortMatchingTextBetweenLongDiffs(sequence1, sequence...
class LineSequence (line 2202) | class LineSequence {
method constructor (line 2203) | constructor(trimmedHash, lines) {
method getElement (line 2207) | getElement(offset) {
method length (line 2210) | get length() {
method getBoundaryScore (line 2213) | getBoundaryScore(length) {
method getText (line 2218) | getText(range) {
method isStronglyEqual (line 2221) | isStronglyEqual(offset1, offset2) {
function getIndentation (line 2225) | function getIndentation(str) {
class DefaultLinesDiffComputer (line 2233) | class DefaultLinesDiffComputer {
method constructor (line 2234) | constructor() {
method computeDiff (line 2238) | computeDiff(originalLines, modifiedLines, options) {
method computeMoves (line 2372) | computeMoves(changes, originalLines, modifiedLines, hashedOriginalLine...
method refineDiff (line 2391) | refineDiff(originalLines, modifiedLines, diff, timeout, considerWhites...
function toLineRangeMapping (line 2417) | function toLineRangeMapping(sequenceDiff) {
function computeDiff (line 2424) | function computeDiff(originalLines, modifiedLines, options) {
class DiffProvider (line 2466) | class DiffProvider {
method compute (line 2467) | compute(originalLines, modifiedLines, opts) {
FILE: src/ext/diff/scroll_diff_decorator.js
class ScrollDiffDecorator (line 3) | class ScrollDiffDecorator extends Decorator {
method constructor (line 9) | constructor(scrollbarV, renderer, forInlineDiff) {
method addZone (line 26) | addZone(startRow, endRow, type) {
method setSessions (line 38) | setSessions(sessionA, sessionB) {
method $updateDecorators (line 43) | $updateDecorators(config) {
method $transformPosition (line 59) | $transformPosition(row, type) {
method $setDiffDecorators (line 67) | $setDiffDecorators(ctx, colors) {
method setZoneWidth (line 144) | setZoneWidth() {
FILE: src/ext/diff/split_diff_view.js
class SplitDiffView (line 6) | class SplitDiffView extends BaseDiffView {
method constructor (line 12) | constructor(diffModel) {
method init (line 18) | init(diffModel) {
method onChangeWrapLimit (line 35) | onChangeWrapLimit() {
method align (line 40) | align() {
method onScroll (line 86) | onScroll(e, session) {
method syncScroll (line 93) | syncScroll(renderer) {
method onMouseWheel (line 129) | onMouseWheel(ev) {
method $attachSessionsEventHandlers (line 146) | $attachSessionsEventHandlers() {
method $attachSessionEventHandlers (line 155) | $attachSessionEventHandlers(editor, marker) {
method $detachSessionsEventHandlers (line 167) | $detachSessionsEventHandlers() {
method $detachSessionHandlers (line 176) | $detachSessionHandlers(editor, marker) {
method $attachEventHandlers (line 187) | $attachEventHandlers() {
method $detachEventHandlers (line 199) | $detachEventHandlers() {
method $detachEditorEventHandlers (line 208) | $detachEditorEventHandlers(editor) {
FILE: src/ext/elastic_tabstops_lite.js
class ElasticTabstopsLite (line 14) | class ElasticTabstopsLite {
method constructor (line 18) | constructor(editor) {
method processRows (line 44) | processRows(rows) {
method $findCellWidthsForBlock (line 71) | $findCellWidthsForBlock(row) {
method $cellWidthsForRow (line 107) | $cellWidthsForRow(row) {
method $selectionColumnsForRow (line 131) | $selectionColumnsForRow(row) {
method $setBlockCellWidthsToMax (line 145) | $setBlockCellWidthsToMax(cellWidths) {
method $rightmostSelectionInCell (line 188) | $rightmostSelectionInCell(selectionColumns, cellRightEdge) {
method $tabsForRow (line 209) | $tabsForRow(row) {
method $adjustRow (line 224) | $adjustRow(row, widths) {
method $izip_longest (line 268) | $izip_longest(iterables) {
method $izip (line 303) | $izip(widths, tabs) {
FILE: src/ext/emmet.js
class AceEmmetEditor (line 23) | class AceEmmetEditor {
method setupContext (line 27) | setupContext(editor) {
method getSelectionRange (line 47) | getSelectionRange() {
method createSelection (line 69) | createSelection(start, end) {
method getCurrentLineRange (line 85) | getCurrentLineRange() {
method getCaretPos (line 100) | getCaretPos(){
method setCaretPos (line 109) | setCaretPos(index){
method getCurrentLine (line 118) | getCurrentLine() {
method replaceContent (line 143) | replaceContent(value, start, end, noIndent) {
method getContent (line 165) | getContent(){
method getSyntax (line 173) | getSyntax() {
method getProfileName (line 198) | getProfileName() {
method prompt (line 223) | prompt(title) {
method getSelection (line 232) | getSelection() {
method getFilePath (line 241) | getFilePath() {
method $updateTabstops (line 253) | $updateTabstops(value) {
FILE: src/ext/error_marker.js
function binarySearch (line 16) | function binarySearch(array, needle, comparator) {
function findAnnotations (line 40) | function findAnnotations(session, row, dir) {
FILE: src/ext/hardwrap.js
function hardWrap (line 29) | function hardWrap(editor, options) {
function wrapAfterInput (line 114) | function wrapAfterInput(e) {
FILE: src/ext/inline_autocomplete.js
class InlineAutocomplete (line 38) | class InlineAutocomplete {
method constructor (line 42) | constructor(editor) {
method getInlineRenderer (line 60) | getInlineRenderer() {
method getInlineTooltip (line 69) | getInlineTooltip() {
method show (line 81) | show(options) {
method $open (line 96) | $open() {
method insertMatch (line 113) | insertMatch() {
method changeListener (line 119) | changeListener(e) {
method blurListener (line 130) | blurListener(e) {
method goTo (line 137) | goTo(where) {
method getLength (line 158) | getLength() {
method getData (line 169) | getData(index) {
method getIndex (line 177) | getIndex() {
method isOpen (line 181) | isOpen() {
method setIndex (line 188) | setIndex(value) {
method getCompletionProvider (line 202) | getCompletionProvider(initialPosition) {
method $showCompletion (line 208) | $showCompletion() {
method $updatePrefix (line 221) | $updatePrefix() {
method updateCompletions (line 239) | updateCompletions(options) {
method detach (line 294) | detach() {
method destroy (line 321) | destroy() {
method updateDocTooltip (line 334) | updateDocTooltip(){
FILE: src/ext/inline_autocomplete_test.js
function simulateClick (line 22) | function simulateClick(node) {
FILE: src/ext/keybinding_menu.js
function showKeyboardShortcuts (line 27) | function showKeyboardShortcuts(editor) {
FILE: src/ext/linking.js
function onMouseMove (line 31) | function onMouseMove(e) {
function onClick (line 52) | function onClick(e) {
FILE: src/ext/menu_tools/overlay_page.js
function documentEscListener (line 46) | function documentEscListener(e) {
function close (line 52) | function close() {
function setIgnoreFocusOut (line 68) | function setIgnoreFocusOut(ignore) {
FILE: src/ext/modelist.js
function getModeForPath (line 26) | function getModeForPath(path) {
class Mode (line 38) | class Mode {
method constructor (line 44) | constructor(name, caption, extensions) {
method supportsFile (line 66) | supportsFile(filename) {
FILE: src/ext/options.js
class OptionPanel (line 242) | class OptionPanel {
method constructor (line 248) | constructor(editor, element) {
method add (line 255) | add(config) {
method render (line 263) | render() {
method renderOptionGroup (line 276) | renderOptionGroup(group) {
method renderOptionControl (line 295) | renderOptionControl(key, option) {
method renderOption (line 387) | renderOption(key, option) {
method setOption (line 404) | setOption(option, value) {
method getOption (line 420) | getOption(option) {
FILE: src/ext/prompt.js
function prompt (line 76) | function prompt(editor, message, options, callback) {
function stringifySelection (line 245) | function stringifySelection(selection) {
function readPosition (line 283) | function readPosition() {
function normalizeName (line 358) | function normalizeName(name) {
function getEditorCommandsByName (line 365) | function getEditorCommandsByName(excludeCommands) {
function getFilteredCompletions (line 441) | function getFilteredCompletions(commands, prefix) {
function getUniqueCommandList (line 448) | function getUniqueCommandList(commands, usedCommands) {
function getFilteredCompletions (line 518) | function getFilteredCompletions(modes, prefix) {
FILE: src/ext/rtl.js
function onChangeSelection (line 100) | function onChangeSelection(e, editor) {
function onCommandEmitted (line 116) | function onCommandEmitted(commadEvent) {
function onChange (line 127) | function onChange(delta, editor) {
function updateLineDirection (line 142) | function updateLineDirection(e, renderer) {
function clearTextLayer (line 164) | function clearTextLayer(renderer) {
FILE: src/ext/searchbox.js
class SearchBox (line 45) | class SearchBox {
method constructor (line 51) | constructor(editor, range, showReplaceForm) {
method setEditor (line 91) | setEditor(editor) {
method setSession (line 98) | setSession(e) {
method onEditorInput (line 104) | onEditorInput() {
method $initElements (line 111) | $initElements(sb) {
method $init (line 134) | $init() {
method setSearchRange (line 186) | setSearchRange(range) {
method $syncOptions (line 200) | $syncOptions(preventScroll) {
method highlight (line 216) | highlight(re) {
method find (line 226) | find(skipCurrent, backwards, preventScroll) {
method updateCounter (line 245) | updateCounter() {
method findNext (line 287) | findNext() {
method findPrev (line 290) | findPrev() {
method findAll (line 293) | findAll(){
method replace (line 306) | replace() {
method replaceAndFindNext (line 310) | replaceAndFindNext() {
method replaceAll (line 316) | replaceAll() {
method hide (line 321) | hide() {
method show (line 336) | show(value, isReplace) {
method isFocused (line 357) | isFocused() {
FILE: src/ext/settings_menu.js
function showSettingsMenu (line 36) | function showSettingsMenu(editor) {
FILE: src/ext/simple_tokenizer.js
class SimpleTokenizer (line 26) | class SimpleTokenizer {
method constructor (line 31) | constructor(content, tokenizer) {
method getTokens (line 41) | getTokens(row) {
method getLength (line 53) | getLength() {
function tokenize (line 67) | function tokenize(content, highlightRules) {
FILE: src/ext/static_highlight.js
class Element (line 27) | class Element {
method constructor (line 31) | constructor(type) {
method cloneNode (line 38) | cloneNode() {
method appendChild (line 42) | appendChild(child) {
method toString (line 46) | toString() {
function done (line 201) | function done() {
FILE: src/ext/statusbar.js
class StatusBar (line 27) | class StatusBar{
method constructor (line 32) | constructor(editor, parentNode) {
method updateStatus (line 50) | updateStatus(editor) {
FILE: src/ext/textarea.js
function applyStyles (line 77) | function applyStyles(elm, styles) {
function setupContainer (line 83) | function setupContainer(element, getValue) {
function setupApi (line 286) | function setupApi(editor, editorDiv, settingDiv, ace, options) {
function setupSettingPanel (line 370) | function setupSettingPanel(settingDiv, settingOpener, editor) {
FILE: src/ext/whitespace.js
function getScore (line 58) | function getScore(indent) {
FILE: src/ext/whitespace_test.js
function testOne (line 117) | function testOne(value, options) {
FILE: src/ext/whitespaces_in_selection.js
function $onChangeSelectionForWhitespace (line 54) | function $onChangeSelectionForWhitespace() {
FILE: src/incremental_search.js
function isRegExp (line 11) | function isRegExp(obj) {
function regExpToObject (line 18) | function regExpToObject(re) {
function stringToRegExp (line 33) | function stringToRegExp(string, flags) {
function objectToRegExp (line 39) | function objectToRegExp(obj) {
class IncrementalSearch (line 51) | class IncrementalSearch extends Search {
method constructor (line 55) | constructor() {
method activate (line 64) | activate(editor, backwards) {
method deactivate (line 81) | deactivate(reset) {
method selectionFix (line 96) | selectionFix(editor) {
method highlight (line 110) | highlight(regexp) {
method cancelSearch (line 121) | cancelSearch(reset) {
method highlightAndFindWithNeedle (line 139) | highlightAndFindWithNeedle(moveToNext, needleUpdateFunc) {
method addString (line 174) | addString(s) {
method removeChar (line 187) | removeChar(c) {
method next (line 197) | next(options) {
method onMouseDown (line 213) | onMouseDown(evt) {
method onPaste (line 223) | onPaste(text) {
method convertNeedleToRegExp (line 227) | convertNeedleToRegExp() {
method convertNeedleToString (line 233) | convertNeedleToString() {
method statusMessage (line 239) | statusMessage(found) {
method message (line 247) | message(msg) {
FILE: src/incremental_search_test.js
function testRanges (line 15) | function testRanges(str, ranges) {
function callHighlighterUpdate (line 21) | function callHighlighterUpdate() {
FILE: src/keyboard/emacs.js
function pushUnique (line 108) | function pushUnique(ring, mark) {
function moveToMark (line 459) | function moveToMark() {
function deselect (line 566) | function deselect() {
FILE: src/keyboard/emacs_test.js
function initEditor (line 18) | function initEditor(docString) {
function print (line 27) | function print(obj) {
function pluck (line 31) | function pluck(arr, what) {
FILE: src/keyboard/gutter_handler.js
class GutterKeyboardHandler (line 5) | class GutterKeyboardHandler {
method constructor (line 6) | constructor(editor) {
method addListener (line 18) | addListener() {
method removeListener (line 24) | removeListener() {
method $onGutterKeyDown (line 30) | $onGutterKeyDown(e) {
method $handleGutterKeyboardInteraction (line 95) | $handleGutterKeyboardInteraction(e) {
method $blurGutter (line 196) | $blurGutter() {
method $isFoldWidgetVisible (line 216) | $isFoldWidgetVisible(index) {
method $isCustomWidgetVisible (line 222) | $isCustomWidgetVisible(index) {
method $isAnnotationVisible (line 228) | $isAnnotationVisible(index) {
method $getFoldWidget (line 234) | $getFoldWidget(index) {
method $getCustomWidget (line 240) | $getCustomWidget(index) {
method $getAnnotation (line 246) | $getAnnotation(index) {
method $findNearestFoldLaneWidget (line 253) | $findNearestFoldLaneWidget(index) {
method $findNearestAnnotation (line 284) | $findNearestAnnotation(index) {
method $focusFoldWidget (line 305) | $focusFoldWidget(index) {
method $focusCustomWidget (line 315) | $focusCustomWidget(index) {
method $focusAnnotation (line 326) | $focusAnnotation(index) {
method $blurFoldWidget (line 336) | $blurFoldWidget(index) {
method $blurCustomWidget (line 343) | $blurCustomWidget(index) {
method $blurAnnotation (line 351) | $blurAnnotation(index) {
method $moveFoldWidgetUp (line 358) | $moveFoldWidgetUp() {
method $moveFoldWidgetDown (line 380) | $moveFoldWidgetDown() {
method $moveAnnotationUp (line 402) | $moveAnnotationUp() {
method $moveAnnotationDown (line 418) | $moveAnnotationDown() {
method $findClosestNumber (line 434) | $findClosestNumber(num1, num2, target) {
method $switchLane (line 441) | $switchLane(desinationLane){
method $rowIndexToRow (line 480) | $rowIndexToRow(index) {
method $rowToRowIndex (line 489) | $rowToRowIndex(row) {
class GutterKeyboardEvent (line 505) | class GutterKeyboardEvent {
method constructor (line 506) | constructor(domEvent, gutterKeyboardHandler) {
method getKey (line 516) | getKey() {
method getRow (line 525) | getRow() {
method isInAnnotationLane (line 534) | isInAnnotationLane() {
method isInFoldLane (line 543) | isInFoldLane() {
FILE: src/keyboard/gutter_handler_test.js
function findVisibleTooltip (line 16) | function findVisibleTooltip() {
FILE: src/keyboard/hash_handler.js
class MultiHashHandler (line 16) | class MultiHashHandler {
method constructor (line 21) | constructor(config, platform) {
method $init (line 30) | $init(config, platform, $singleCommand) {
method addCommand (line 42) | addCommand(command) {
method removeCommand (line 56) | removeCommand(command, keepCommand) {
method bindKey (line 85) | bindKey(key, command, position) {
method _addCommandToBinding (line 120) | _addCommandToBinding(keyId, command, position) {
method addCommands (line 151) | addCommands(commands) {
method removeCommands (line 176) | removeCommands(commands) {
method bindKeys (line 185) | bindKeys(keyList) {
method _buildKeyHash (line 191) | _buildKeyHash(command) {
method parseKeys (line 201) | parseKeys(keys) {
method findKeyCommand (line 231) | findKeyCommand(hashId, keyString) {
method handleKeyboard (line 243) | handleKeyboard(data, hashId, keyString, keyCode) {
method getStatusText (line 273) | getStatusText(editor, data) {
function getPosition (line 279) | function getPosition(command) {
class HashHandler (line 285) | class HashHandler extends MultiHashHandler {
method constructor (line 290) | constructor(config, platform) {
FILE: src/keyboard/keybinding.js
class KeyBinding (line 10) | class KeyBinding {
method constructor (line 14) | constructor(editor) {
method setDefaultHandler (line 25) | setDefaultHandler(kb) {
method setKeyboardHandler (line 34) | setKeyboardHandler(kb) {
method addKeyboardHandler (line 49) | addKeyboardHandler(kb, pos) {
method removeKeyboardHandler (line 73) | removeKeyboardHandler(kb) {
method getKeyboardHandler (line 85) | getKeyboardHandler() {
method getStatusText (line 89) | getStatusText() {
method $callKeyboardHandlers (line 97) | $callKeyboardHandlers(hashId, keyString, keyCode, e) {
method onCommandKey (line 145) | onCommandKey(e, hashId, keyCode) {
method onTextInput (line 155) | onTextInput(text) {
FILE: src/keyboard/keybinding_test.js
function initEditor (line 11) | function initEditor(docString) {
FILE: src/keyboard/sublime.js
function moveBySubWords (line 5) | function moveBySubWords(editor, direction, extend) {
FILE: src/keyboard/sublime_test.js
function initEditor (line 17) | function initEditor(docString) {
FILE: src/keyboard/textinput.js
class TextInput (line 24) | class TextInput {
method constructor (line 29) | constructor(parentNode, host) {
method addIosSelectionHandler (line 181) | addIosSelectionHandler(parentNode, host, text) {
method onContextMenuClose (line 261) | onContextMenuClose() {
method $onContextMenu (line 273) | $onContextMenu(e) {
method onKeyup (line 282) | onKeyup(e) {
method cancelComposition (line 297) | cancelComposition() {
method onCompositionStart (line 308) | onCompositionStart(e) {
method onCompositionUpdate (line 342) | onCompositionUpdate() {
method onCompositionEnd (line 365) | onCompositionEnd(e) {
method onCut (line 378) | onCut(e) {
method onCopy (line 385) | onCopy(e) {
method onPaste (line 392) | onPaste(e) {
method doCopy (line 411) | doCopy(e, isCut) {
method handleClipboardData (line 445) | handleClipboardData(e, data, forceIEMime) {
method onInput (line 467) | onInput(e) {
method sendText (line 487) | sendText(value, fromInput) {
method onSelect (line 563) | onSelect(e) {
method $resetSelectionIOS (line 583) | $resetSelectionIOS(value) {
method $resetSelection (line 599) | $resetSelection() {
method setHost (line 720) | setHost(newHost) {
method setNumberOfExtraLines (line 730) | setNumberOfExtraLines(number) {
method setAriaLabel (line 743) | setAriaLabel() {
method setAriaOptions (line 758) | setAriaOptions(options) {
method focus (line 778) | focus() {
method blur (line 817) | blur() {
method isFocused (line 821) | isFocused() {
method setInputHandler (line 825) | setInputHandler(cb) {
method getInputHandler (line 829) | getInputHandler() {
method getElement (line 833) | getElement() {
method setCommandMode (line 842) | setCommandMode(value) {
method setReadOnly (line 847) | setReadOnly(readOnly) {
method setCopyWithEmptySelection (line 851) | setCopyWithEmptySelection(value) {
method onContextMenu (line 854) | onContextMenu(e) {
method moveToMouse (line 868) | moveToMouse(e, bringToFront) {
method destroy (line 893) | destroy() {
FILE: src/keyboard/textinput_test.js
function sendEvent (line 23) | function sendEvent(type, data) {
FILE: src/keyboard/vim.js
function log (line 39) | function log() {
function toAcePos (line 723) | function toAcePos(cmPos) {
function toCmPos (line 726) | function toCmPos(acePos) {
function dialogDiv (line 836) | function dialogDiv(cm, template, bottom) {
function closeNotification (line 853) | function closeNotification(cm, newVal) {
function close (line 868) | function close(newVal) {
function close (line 943) | function close() {
function updateSelectionForSurrogateCharacters (line 965) | function updateSelectionForSurrogateCharacters(cm, curStart, curEnd) {
function enterVimMode (line 1218) | function enterVimMode(cm) {
function leaveVimMode (line 1227) | function leaveVimMode(cm) {
function getOnPasteFn (line 1235) | function getOnPasteFn(cm) {
function isLine (line 1261) | function isLine(cm, line) {
function isLowerCase (line 1264) | function isLowerCase(k) {
function isMatchableSymbol (line 1267) | function isMatchableSymbol(k) {
function isNumber (line 1270) | function isNumber(k) {
function isUpperCase (line 1273) | function isUpperCase(k) {
function isWhiteSpaceString (line 1276) | function isWhiteSpaceString(k) {
function isEndOfSentenceSymbol (line 1279) | function isEndOfSentenceSymbol(k) {
function inArray (line 1282) | function inArray(val, arr) {
function defineOption (line 1292) | function defineOption(name, defaultValue, type, aliases, callback) {
function setOption (line 1312) | function setOption(name, value, cm, cfg) {
function getOption (line 1344) | function getOption(name, cm, cfg) {
function add (line 1403) | function add(cm, oldCur, newCur) {
function move (line 1430) | function move(cm, offset) {
function find (line 1456) | function find(cm, offset) {
function MacroModeState (line 1489) | function MacroModeState() {
function maybeInitVimState (line 1521) | function maybeInitVimState(cm) {
function resetVimGlobalState (line 1567) | function resetVimGlobalState() {
function handleMacroRecording (line 1701) | function handleMacroRecording() {
function handleEsc (line 1714) | function handleEsc() {
function handleKeyInsertMode (line 1731) | function handleKeyInsertMode() {
function handleKeyNonInsertMode (line 1776) | function handleKeyNonInsertMode() {
function sendKeyToPrompt (line 1864) | function sendKeyToPrompt(key) {
function doKeyToKey (line 1904) | function doKeyToKey(cm, keys, fromKey) {
function vimKeyFromEvent (line 1976) | function vimKeyFromEvent(e, vim) {
function updateLangmap (line 2013) | function updateLangmap(langmapString, remapCtrl) {
function parseLangmap (line 2019) | function parseLangmap(langmapString) {
function InputState (line 2064) | function InputState() {
function clearInputState (line 2097) | function clearInputState(cm, reason) {
function ChangeQueue (line 2103) | function ChangeQueue() {
function Register (line 2114) | function Register(text, linewise, blockwise) {
function defineRegister (line 2162) | function defineRegister(name, register) {
function RegisterController (line 2180) | function RegisterController(registers) {
function HistoryController (line 2262) | function HistoryController() {
function handleQuery (line 2440) | function handleQuery(query, ignoreCase, smartCase) {
function onPromptClose (line 2456) | function onPromptClose(query) {
function onPromptKeyUp (line 2464) | function onPromptKeyUp(e, query, close) {
function onPromptKeyDown (line 2489) | function onPromptKeyDown(e, query, close) {
function onPromptClose (line 2557) | function onPromptClose(input) {
function onPromptKeyDown (line 2565) | function onPromptKeyDown(e, input, close) {
function defineMotion (line 3299) | function defineMotion(name, fn) {
function fillArray (line 3303) | function fillArray(val, times) {
function defineOperator (line 3509) | function defineOperator(name, fn) {
function defineAction (line 4113) | function defineAction(name, fn) {
function clipCursorToContent (line 4126) | function clipCursorToContent(cm, cur, oldCur) {
function copyArgs (line 4145) | function copyArgs(args) {
function offsetCursor (line 4154) | function offsetCursor(cur, offsetLine, offsetCh) {
function commandMatches (line 4161) | function commandMatches(keys, keyMap, context, inputState) {
function commandMatch (line 4183) | function commandMatch(pressed, mapped) {
function lastChar (line 4198) | function lastChar(keys) {
function repeatFn (line 4216) | function repeatFn(cm, fn, repeat) {
function copyCursor (line 4223) | function copyCursor(cur) {
function cursorEqual (line 4226) | function cursorEqual(cur1, cur2) {
function cursorIsBefore (line 4229) | function cursorIsBefore(cur1, cur2) {
function cursorMin (line 4238) | function cursorMin(cur1, cur2) {
function cursorMax (line 4244) | function cursorMax(cur1, cur2) {
function cursorIsBetween (line 4250) | function cursorIsBetween(cur1, cur2, cur3) {
function lineLength (line 4256) | function lineLength(cm, lineNum) {
function trim (line 4259) | function trim(s) {
function escapeRegex (line 4265) | function escapeRegex(s) {
function extendLineToColumn (line 4268) | function extendLineToColumn(cm, lineNum, column) {
function selectBlock (line 4280) | function selectBlock(cm, selectionEnd) {
function selectForInsert (line 4316) | function selectForInsert(cm, head, height) {
function getIndex (line 4325) | function getIndex(ranges, cursor, end) {
function getSelectedAreaRange (line 4335) | function getSelectedAreaRange(cm, vim) {
function updateLastSelection (line 4386) | function updateLastSelection(cm, vim) {
function expandSelection (line 4402) | function expandSelection(cm, start, end, move) {
function updateCmSelection (line 4429) | function updateCmSelection(cm, sel, mode) {
function makeCmSelection (line 4437) | function makeCmSelection(cm, sel, mode, exclusive) {
function getHead (line 4488) | function getHead(cm) {
function exitVisualMode (line 4503) | function exitVisualMode(cm, moveHead) {
function clipToLine (line 4519) | function clipToLine(cm, curStart, curEnd) {
function expandSelectionToLine (line 4548) | function expandSelectionToLine(_cm, curStart, curEnd) {
function findFirstNonWhiteSpaceCharacter (line 4554) | function findFirstNonWhiteSpaceCharacter(text) {
function expandWordUnderCursor (line 4562) | function expandWordUnderCursor(cm, {inclusive, innerWord, bigWord, noSym...
function expandTagUnderCursor (line 4653) | function expandTagUnderCursor(cm, head, inclusive) {
function recordJumpPosition (line 4670) | function recordJumpPosition(cm, oldCur, newCur) {
function recordLastCharacterSearch (line 4676) | function recordLastCharacterSearch(increment, args) {
function findSymbol (line 4754) | function findSymbol(cm, repeat, forward, symb) {
function findWord (line 4820) | function findWord(cm, cur, forward, bigWord, emptyLineIsWord) {
function moveToWord (line 4892) | function moveToWord(cm, cur, repeat, forward, wordEnd, bigWord) {
function moveToEol (line 4937) | function moveToEol(cm, head, motionArgs, vim, keepHPos) {
function moveToCharacter (line 4949) | function moveToCharacter(cm, repeat, forward, character, head) {
function moveToColumn (line 4964) | function moveToColumn(cm, repeat) {
function updateMark (line 4971) | function updateMark(cm, vim, markName, pos) {
function charIdxInLine (line 4981) | function charIdxInLine(start, line, character, forward, includeChar) {
function findParagraph (line 5002) | function findParagraph(cm, head, repeat, dir, inclusive) {
function getSentence (line 5066) | function getSentence(cm, cur, repeat, dir, inclusive /*includes whitespa...
function findSentence (line 5208) | function findSentence(cm, cur, repeat, dir) {
function selectCompanionObject (line 5383) | function selectCompanionObject(cm, head, symb, inclusive) {
function findBeginningAndEnd (line 5428) | function findBeginningAndEnd(cm, head, symb, inclusive) {
function SearchState (line 5491) | function SearchState() {}
function getSearchState (line 5518) | function getSearchState(cm) {
function splitBySlash (line 5522) | function splitBySlash(argString) {
function findUnescapedSlashes (line 5526) | function findUnescapedSlashes(argString) {
function splitBySeparator (line 5530) | function splitBySeparator(argString, separator) {
function findUnescapedSeparators (line 5543) | function findUnescapedSeparators(str, separator) {
function translateRegex (line 5560) | function translateRegex(str) {
function translateRegexReplace (line 5602) | function translateRegexReplace(str) {
function unescapeRegexReplace (line 5640) | function unescapeRegexReplace(str) {
function parseQuery (line 5674) | function parseQuery(query, ignoreCase, smartCase) {
function dom (line 5719) | function dom(n) {
function showConfirm (line 5734) | function showConfirm(cm, template) {
function makePrompt (line 5743) | function makePrompt(prefix, desc) {
function showPrompt (line 5752) | function showPrompt(cm, options) {
function regexEqual (line 5773) | function regexEqual(r1, r2) {
function updateSearchQuery (line 5787) | function updateSearchQuery(cm, rawQuery, ignoreCase, smartCase) {
function searchOverlay (line 5803) | function searchOverlay(query) {
function highlightSearchMatches (line 5840) | function highlightSearchMatches(cm, query) {
function findNext (line 5865) | function findNext(cm, prev, query, repeat) {
function findNextFromAndToInclusive (line 5900) | function findNextFromAndToInclusive(cm, prev, query, repeat, vim) {
function clearSearchHighlight (line 5929) | function clearSearchHighlight(cm) {
function isInRange (line 5953) | function isInRange(pos, start, end) {
function getUserVisibleLines (line 5968) | function getUserVisibleLines(cm) {
function getMarkPos (line 5978) | function getMarkPos(cm, vim, markName) {
function getLastEditPos (line 5989) | function getLastEditPos(cm) {
function parseArgs (line 6388) | function parseArgs() {
function compareFn (line 6441) | function compareFn(a, b) {
function comparePatternFn (line 6451) | function comparePatternFn(a, b) {
function doReplace (line 6776) | function doReplace(cm, confirm, global, lineStart, lineEnd, searchCursor...
function exitInsertMode (line 6883) | function exitInsertMode(cm, keepCursor) {
function _mapCommand (line 6917) | function _mapCommand(command) {
function mapCommand (line 6921) | function mapCommand(keys, type, name, args, extra) {
function executeMacroRegister (line 6935) | function executeMacroRegister(cm, vim, macroModeState, registerName) {
function logKey (line 6971) | function logKey(macroModeState, key) {
function logInsertModeChange (line 6980) | function logInsertModeChange(macroModeState) {
function logSearchQuery (line 6989) | function logSearchQuery(macroModeState, query) {
function onChange (line 7002) | function onChange(cm, changeObj) {
function onCursorActivity (line 7049) | function onCursorActivity(cm) {
function handleExternalSelection (line 7068) | function handleExternalSelection(cm, vim, keepHPos) {
function InsertModeKey (line 7099) | function InsertModeKey(keyName, e) {
function onKeyEventTargetKeyDown (line 7113) | function onKeyEventTargetKeyDown(e) {
function repeatLastEdit (line 7137) | function repeatLastEdit(cm, vim, repeat, repeatForInsert) {
function sendCmKey (line 7184) | function sendCmKey(cm, key) {
function repeatInsertModeChanges (line 7194) | function repeatInsertModeChanges(cm, changes, repeat) {
function lookupKey (line 7234) | function lookupKey(hashId, key, e, vim) {
function cloneVimState (line 7265) | function cloneVimState(state) {
function multiSelectHandleKey (line 7284) | function multiSelectHandleKey(cm, key, origin) {
function updateInputMode (line 7477) | function updateInputMode() {
function delayedExecAceCommand (line 7583) | function delayedExecAceCommand(op, ace) {
FILE: src/keyboard/vim_ace_test.js
function testSelection (line 13) | function testSelection(editor, data) {
function setSelection (line 17) | function setSelection(editor, data) {
function getSelection (line 36) | function getSelection(editor) {
function testValue (line 55) | function testValue(editor, value) {
function applyEvent (line 59) | function applyEvent(data) {
function scrollTop (line 85) | function scrollTop() {
FILE: src/keyboard/vim_test.js
function CodeMirror (line 41) | function CodeMirror(place, opts) {
function test (line 84) | function test(name, fn) {
function eqCursorPos (line 109) | function eqCursorPos(a, b) {
function eq (line 119) | function eq(a, b, _reason) {
function is (line 123) | function is(a) {
function failure (line 126) | function failure(message, root) {
function copyCursor (line 242) | function copyCursor(cur) {
function forEach (line 246) | function forEach(arr, func) {
function vimKeyToKeyName (line 252) | function vimKeyToKeyName(key) {
function testVim (line 258) | function testVim(name, run, opts, expectedFail) {
function testJumplist (line 357) | function testJumplist(name, keys, endPos, startPos) {
function testMotion (line 401) | function testMotion(name, keys, endPos, startPos) {
function testMotionWithFolding (line 412) | function testMotionWithFolding(name, keys, endPos, startPos) {
function makeCursor (line 422) | function makeCursor(line, ch) {
function offsetCursor (line 426) | function offsetCursor(cur, offsetLine, offsetCh) {
function fillArray (line 1307) | function fillArray(val, times) {
function callback (line 1400) | function callback(arg) {
function test (line 1406) | async function test(key, mode) {
function testEdit (line 1588) | function testEdit(name, before, pos, edit, after, opts) {
function testSelection (line 1724) | function testSelection(name, before, pos, keys, sel) {
function testSubstitute (line 4606) | function testSubstitute(name, options) {
function testSubstituteConfirm (line 4795) | function testSubstituteConfirm(name, command, initialValue, expectedValu...
function cb (line 4927) | function cb(val, cm, cfg) {
function highlighted (line 5002) | function highlighted() {
function delay (line 5807) | async function delay(t) {
function reset (line 5877) | function reset() {
function updateModifierStates (line 5880) | function updateModifierStates(keyCode) {
function sendKey (line 5891) | function sendKey(letter, options) {
function type (line 5996) | function type() {
FILE: src/layer/cursor.js
class Cursor (line 8) | class Cursor {
method constructor (line 12) | constructor(parentEl) {
method $updateOpacity (line 31) | $updateOpacity(val) {
method $startCssAnimation (line 37) | $startCssAnimation() {
method $stopCssAnimation (line 50) | $stopCssAnimation() {
method setPadding (line 58) | setPadding(padding) {
method setSession (line 65) | setSession(session) {
method setBlinking (line 72) | setBlinking(blinking) {
method setBlinkInterval (line 82) | setBlinkInterval(blinkInterval) {
method setSmoothBlinking (line 92) | setSmoothBlinking(smoothBlinking) {
method addCursor (line 101) | addCursor() {
method removeCursor (line 109) | removeCursor() {
method hideCursor (line 117) | hideCursor() {
method showCursor (line 123) | showCursor() {
method restartTimer (line 129) | restartTimer() {
method getPixelPosition (line 179) | getPixelPosition(position, onScreen) {
method isCursorInView (line 196) | isCursorInView(pixelPos, config) {
method update (line 200) | update(config) {
method $setOverwrite (line 247) | $setOverwrite(overwrite) {
method destroy (line 257) | destroy() {
FILE: src/layer/decorators.js
class Decorator (line 6) | class Decorator {
method constructor (line 11) | constructor(scrollbarV, renderer) {
method $createCanvas (line 35) | $createCanvas() {
method setScrollBarV (line 43) | setScrollBarV(scrollbarV) {
method $updateDecorators (line 50) | $updateDecorators(config) {
method getVerticalOffsetForRow (line 115) | getVerticalOffsetForRow(row) {
method setDimensions (line 121) | setDimensions(config) {
method setZoneWidth (line 141) | setZoneWidth() {
method destroy (line 145) | destroy() {
FILE: src/layer/font_metrics.js
class FontMetrics (line 12) | class FontMetrics {
method constructor (line 17) | constructor(parentEl) {
method $setMeasureNodeStyles (line 43) | $setMeasureNodeStyles(style, isRoot) {
method checkForSizeChanges (line 61) | checkForSizeChanges(size) {
method $addObserver (line 75) | $addObserver() {
method $pollSizeChanges (line 87) | $pollSizeChanges() {
method setPolling (line 101) | setPolling(val) {
method $measureSizes (line 110) | $measureSizes(node) {
method $measureCharWidth (line 123) | $measureCharWidth(ch) {
method getCharacterWidth (line 129) | getCharacterWidth(ch) {
method destroy (line 137) | destroy() {
method $getZoom (line 146) | $getZoom(element) {
method $initTransformMeasureNodes (line 151) | $initTransformMeasureNodes() {
method transformCoordinates (line 165) | transformCoordinates(clientPos, elPos) {
FILE: src/layer/gutter.js
class Gutter (line 23) | class Gutter{
method constructor (line 27) | constructor(parentEl) {
method setSession (line 46) | setSession(session) {
method addGutterDecoration (line 58) | addGutterDecoration(row, className) {
method removeGutterDecoration (line 68) | removeGutterDecoration(row, className) {
method setAnnotations (line 77) | setAnnotations(annotations) {
method $updateAnnotations (line 119) | $updateAnnotations(delta) {
method update (line 138) | update(config) {
method $updateGutterWidth (line 194) | $updateGutterWidth(config) {
method $updateCursorRow (line 219) | $updateCursorRow() {
method updateLineHighlight (line 230) | updateLineHighlight() {
method $updateCursorMarker (line 262) | $updateCursorMarker() {
method scrollLines (line 288) | scrollLines(config) {
method $renderLines (line 336) | $renderLines(config, firstRow, lastRow) {
method $renderCell (line 367) | $renderCell(cell, config, fold, row) {
method setHighlightGutterLine (line 607) | setHighlightGutterLine(highlightGutterLine) {
method setShowLineNumbers (line 618) | setShowLineNumbers(show) {
method getShowLineNumbers (line 626) | getShowLineNumbers() {
method setShowFoldWidgets (line 633) | setShowFoldWidgets(show) {
method getShowFoldWidgets (line 643) | getShowFoldWidgets() {
method $hideFoldWidget (line 653) | $hideFoldWidget(row, cell) {
method $showFoldWidget (line 669) | $showFoldWidget(row,cell) {
method $getGutterCell (line 685) | $getGutterCell(row) {
method $addCustomWidget (line 719) | $addCustomWidget(row, {className, label, title, callbacks}, cell) {
method $removeCustomWidget (line 759) | $removeCustomWidget(row, cell) {
method $computePadding (line 773) | $computePadding() {
method getRegion (line 788) | getRegion(point) {
function onCreateCell (line 807) | function onCreateCell(element) {
FILE: src/layer/gutter_test.js
function emit (line 17) | function emit(keyCode) {
FILE: src/layer/lines.js
class Lines (line 8) | class Lines {
method constructor (line 13) | constructor(element, canvasHeight) {
method moveContainer (line 26) | moveContainer(config) {
method pageChanged (line 34) | pageChanged(oldConfig, newConfig) {
method computeLineTop (line 46) | computeLineTop(row, config, session) {
method computeLineHeight (line 58) | computeLineHeight(row, config, session) {
method getLength (line 62) | getLength() {
method get (line 69) | get(index) {
method shift (line 73) | shift() {
method pop (line 77) | pop() {
method push (line 81) | push(cell) {
method unshift (line 95) | unshift(cell) {
method last (line 112) | last() {
method $cacheCell (line 119) | $cacheCell(cell) {
method createCell (line 127) | createCell(row, config, session, initElement) {
FILE: src/layer/marker.js
class Marker (line 10) | class Marker {
method constructor (line 14) | constructor(parentEl) {
method setPadding (line 23) | setPadding(padding) {
method setSession (line 30) | setSession(session) {
method setMarkers (line 37) | setMarkers(markers) {
method elt (line 45) | elt(className, css) {
method update (line 62) | update(config) {
method $getTop (line 108) | $getTop(row, layerConfig) {
method drawTextMarker (line 121) | drawTextMarker(stringBuilder, range, clazz, layerConfig, extraStyle) {
method drawMultiLineMarker (line 152) | drawMultiLineMarker(stringBuilder, range, clazz, config, extraStyle) {
method drawSingleLineMarker (line 215) | drawSingleLineMarker(stringBuilder, range, clazz, config, extraLength,...
method drawBidiSingleLineMarker (line 242) | drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLen...
method drawFullLineMarker (line 264) | drawFullLineMarker(stringBuilder, range, clazz, config, extraStyle) {
method drawScreenLineMarker (line 285) | drawScreenLineMarker(stringBuilder, range, clazz, config, extraStyle) {
function getBorderClass (line 301) | function getBorderClass(tl, tr, br, bl) {
FILE: src/layer/text.js
class Text (line 14) | class Text {
method constructor (line 18) | constructor(parentEl) {
method $updateEolChar (line 27) | $updateEolChar() {
method setPadding (line 40) | setPadding(padding) {
method getLineHeight (line 48) | getLineHeight() {
method getCharacterWidth (line 55) | getCharacterWidth() {
method $setFontMetrics (line 62) | $setFontMetrics(measure) {
method checkForSizeChanges (line 74) | checkForSizeChanges() {
method $pollSizeChanges (line 77) | $pollSizeChanges() {
method setSession (line 84) | setSession(session) {
method setShowInvisibles (line 94) | setShowInvisibles(showInvisibles) {
method setDisplayIndentGuides (line 113) | setDisplayIndentGuides(display) {
method setHighlightIndentGuides (line 125) | setHighlightIndentGuides(highlight) {
method $computeTabString (line 132) | $computeTabString() {
method updateLines (line 176) | updateLines(config, firstRow, lastRow) {
method scrollLines (line 248) | scrollLines(config) {
method $renderLinesFragment (line 295) | $renderLinesFragment(config, firstRow, lastRow) {
method update (line 336) | update(config) {
method $renderToken (line 351) | $renderToken(parent, screenColumn, token, value) {
method renderIndentGuide (line 438) | renderIndentGuide(parent, value, max) {
method $highlightIndentGuide (line 463) | $highlightIndentGuide() {
method $clearActiveIndentGuide (line 517) | $clearActiveIndentGuide() {
method $setIndentGuideActive (line 524) | $setIndentGuideActive(cell, indentLevel) {
method $renderHighlightIndentGuide (line 545) | $renderHighlightIndentGuide() {
method $createLineElement (line 573) | $createLineElement(parent) {
method $renderWrappedLine (line 581) | $renderWrappedLine(parent, tokens, splits) {
method $renderSimpleLine (line 637) | $renderSimpleLine(parent, tokens) {
method $renderOverflowMessage (line 654) | $renderOverflowMessage(parent, screenColumn, token, value, hide) {
method $renderLine (line 666) | $renderLine(parent, row, foldLine) {
method $getFoldLineTokens (line 711) | $getFoldLineTokens(row, foldLine) {
method $useLineGroups (line 772) | $useLineGroups() {
FILE: src/layer/text_markers.js
method $removeClass (line 23) | $removeClass(className) {
method $applyTextMarkers (line 41) | $applyTextMarkers() {
method $modifyDomForMarkers (line 82) | $modifyDomForMarkers(lineElement, row, marker) {
method $processInvisibleMarker (line 155) | $processInvisibleMarker(node, parentNode, selectionSegment, marker) {
method $processRegularMarker (line 217) | $processRegularMarker(node, parentNode, selectionSegment, marker, nodeSt...
method addTextMarker (line 311) | addTextMarker(range, className, type) {
method removeTextMarker (line 334) | removeTextMarker(markerId) {
method getTextMarkers (line 356) | getTextMarkers() {
FILE: src/layer/text_markers_test.js
function normalize (line 16) | function normalize(str) {
function getText (line 20) | function getText(nodes) {
FILE: src/layer/text_test.js
function testRender (line 62) | function testRender(results) {
FILE: src/lib/app_config.js
function warn (line 55) | function warn(message) {
class AppConfig (line 63) | class AppConfig {
method constructor (line 64) | constructor() {
method defineOptions (line 76) | defineOptions(obj, path, options) {
method resetOptions (line 100) | resetOptions(obj) {
method setDefaultValue (line 113) | setDefaultValue(path, name, value) {
method setDefaultValues (line 134) | setDefaultValues(path, optionHash) {
method setMessages (line 144) | setMessages(value, options) {
method nls (line 156) | nls(key, defaultString, params) {
FILE: src/lib/bidiutil.js
function _computeLevels (line 72) | function _computeLevels(chars, levels, len, charTypes) {
function _invertLevel (line 138) | function _invertLevel(lev, levels, _array) {
function _getCharClass (line 164) | function _getCharClass(chars, types, classes, ix) {
function _getCharacterType (line 248) | function _getCharacterType( ch ) {
function _isArabicDiacritics (line 274) | function _isArabicDiacritics( ch ) {
FILE: src/lib/dom.js
function insertPendingStyles (line 231) | function insertPendingStyles() {
function importCssString (line 244) | function importCssString(cssText, id, target) {
FILE: src/lib/es6-shim.js
function defineProp (line 1) | function defineProp(obj, name, val) {
FILE: src/lib/event.js
function detectListenerOptionsSupport (line 10) | function detectListenerOptionsSupport() {
function getListenerOptions (line 22) | function getListenerOptions() {
function EventListener (line 28) | function EventListener(elem, type, callback) {
function onMouseUp (line 90) | function onMouseUp(e) {
function onMousedown (line 153) | function onMousedown(e) {
function getModifierHash (line 194) | function getModifierHash(e) {
function normalizeCommandKeys (line 211) | function normalizeCommandKeys(callback, e, keyCode) {
function resetPressedKeys (line 301) | function resetPressedKeys() {
FILE: src/line_widgets.js
class LineWidgets (line 12) | class LineWidgets {
method constructor (line 16) | constructor(session) {
method getRowLength (line 36) | getRowLength(row) {
method $getWidgetScreenLength (line 52) | $getWidgetScreenLength() {
method $onChangeEditor (line 61) | $onChangeEditor(e) {
method attach (line 69) | attach(editor) {
method detach (line 86) | detach(e) {
method updateOnFold (line 110) | updateOnFold(e, session) {
method updateOnChange (line 140) | updateOnChange(delta) {
method $updateRows (line 170) | $updateRows() {
method $registerLineWidget (line 193) | $registerLineWidget(w) {
method addLineWidget (line 215) | addLineWidget(w) {
method removeLineWidget (line 272) | removeLineWidget(w) {
method getWidgetsAtRow (line 305) | getWidgetsAtRow(row) {
method onWidgetChanged (line 320) | onWidgetChanged(w) {
method measureWidgets (line 329) | measureWidgets(e, renderer) {
method renderWidgets (line 376) | renderWidgets(e, renderer) {
FILE: src/marker_group.js
class MarkerGroup (line 16) | class MarkerGroup {
method constructor (line 25) | constructor(session, options) {
method getMarkerAtPosition (line 41) | getMarkerAtPosition(pos) {
method markersComparator (line 54) | markersComparator(a, b) {
method setMarkers (line 62) | setMarkers(markers) {
method update (line 73) | update(html, markerLayer, session, config) {
FILE: src/mode/_test/highlight_rules_test.js
function jsFileList (line 16) | function jsFileList(path, filter) {
function modeList (line 24) | function modeList() {
function checkModes (line 28) | function checkModes() {
function generateTestData (line 161) | function generateTestData(names, force) {
function test (line 242) | function test(startAt) {
function testMode (line 252) | function testMode(modeName, i) {
function testEqual (line 295) | function testEqual(a) {
function arrayDiff (line 309) | function arrayDiff(a1, a2) {
function padNumber (line 321) | function padNumber(num, digits) {
function checkBacktracking (line 325) | function checkBacktracking(tokenizer) {
FILE: src/mode/abap.js
function Mode (line 9) | function Mode() {
FILE: src/mode/apex.js
function ApexMode (line 10) | function ApexMode() {
FILE: src/mode/apex_highlight_rules.js
function keywordMapper (line 29) | function keywordMapper(value) {
function string (line 34) | function string(start, options) {
function comments (line 54) | function comments() {
FILE: src/mode/asciidoc_highlight_rules.js
function quoteRule (line 161) | function quoteRule(ch) {
FILE: src/mode/astro_highlight_rules.js
function overwriteJSXendRule (line 89) | function overwriteJSXendRule(prefix) {
FILE: src/mode/behaviour/behaviour_test.js
function testValue (line 33) | function testValue(line) {
function testSelection (line 36) | function testSelection(line, col, inc) {
FILE: src/mode/behaviour/liquid.js
function is (line 9) | function is(token, type) {
FILE: src/mode/behaviour/xml.js
function is (line 7) | function is(token, type) {
FILE: src/mode/behaviour/xquery.js
function hasType (line 9) | function hasType(token, type) {
FILE: src/mode/c9search_highlight_rules.js
function safeCreateRegexp (line 7) | function safeCreateRegexp(source, flag) {
FILE: src/mode/coffee.js
function Mode (line 11) | function Mode() {
FILE: src/mode/coffee_highlight_rules.js
function CoffeeHighlightRules (line 8) | function CoffeeHighlightRules() {
FILE: src/mode/csound_preprocessor_highlight_rules.js
method next (line 265) | get next() { return Array.isArray(params.next) ? params.next[params.next...
method next (line 266) | set next(next) {
method token (line 272) | get token() { return params.token; }
FILE: src/mode/csv.js
function tokenizeCsv (line 41) | function tokenizeCsv(line, state, options) {
FILE: src/mode/folding/asciidoc.js
function getTokenType (line 41) | function getTokenType(row) {
function getLevel (line 49) | function getLevel() {
FILE: src/mode/folding/coffee_test.js
function testFoldWidgets (line 6) | function testFoldWidgets(array) {
FILE: src/mode/folding/drools.js
function getMatchedFoldRange (line 74) | function getMatchedFoldRange(session, regex, match, row) {
FILE: src/mode/folding/markdown.js
function isHeading (line 55) | function isHeading(row) {
function getLevel (line 61) | function getLevel() {
FILE: src/mode/folding/nunjucks.js
function calculateOffset (line 66) | function calculateOffset(regExp, line) {
function getTokenPosition (line 107) | function getTokenPosition(stream, findStart) {
FILE: src/mode/folding/xml.js
function is (line 25) | function is(token, type) {
FILE: src/mode/folding/yaml_test.js
function testFoldWidgets (line 6) | function testFoldWidgets(array) {
FILE: src/mode/handlebars_highlight_rules.js
function pop2 (line 8) | function pop2(currentState, stack) {
FILE: src/mode/html_completions.js
function is (line 208) | function is(token, type) {
function findTagName (line 212) | function findTagName(session, pos) {
function findAttributeName (line 222) | function findAttributeName(session, pos) {
FILE: src/mode/jade_highlight_rules.js
function mixin_embed (line 15) | function mixin_embed(tag, prefix) {
FILE: src/mode/javascript_highlight_rules.js
function JSX (line 455) | function JSX() {
function comments (line 554) | function comments(next) {
FILE: src/mode/jsx.js
function Mode (line 6) | function Mode() {
FILE: src/mode/liquid_highlight_rules.js
function onMatchEmbedded (line 21) | function onMatchEmbedded(name) {
FILE: src/mode/livescript.js
function LiveScriptMode (line 5) | function LiveScriptMode(){
function extend$ (line 220) | function extend$(sub, sup){
function import$ (line 226) | function import$(obj, src){
FILE: src/mode/lsl_highlight_rules.js
function LSLHighlightRules (line 8) | function LSLHighlightRules() {
FILE: src/mode/lua.js
function getNetIndentLevel (line 40) | function getNetIndentLevel(tokens) {
FILE: src/mode/mask_highlight_rules.js
function MaskHighlightRules (line 52) | function MaskHighlightRules () {
function Token (line 253) | function Token(token, rgx, mix) {
FILE: src/mode/mysql_highlight_rules.js
function string (line 30) | function string(rule) {
FILE: src/mode/php_completions.js
function is (line 10353) | function is(token, type) {
FILE: src/mode/swift_highlight_rules.js
function string (line 28) | function string(start, options) {
function comments (line 89) | function comments() {
FILE: src/mode/text.js
function iter (line 145) | function iter(fun) {
FILE: src/mode/text_highlight_rules.js
function processState (line 118) | function processState(key) {
FILE: src/mode/vbscript.js
function isSecondOfDoubleKeyword (line 34) | function isSecondOfDoubleKeyword(tokens, i) {
function getNetIndentLevel (line 52) | function getNetIndentLevel(tokens, line, indentKeywords) {
FILE: src/mode/visualforce.js
function VisualforceMode (line 11) | function VisualforceMode() {
FILE: src/mode/visualforce_highlight_rules.js
function string (line 8) | function string(options) {
FILE: src/mouse/default_gutter_handler.js
function GutterHandler (line 15) | function GutterHandler(mouseHandler) {
class GutterTooltip (line 55) | class GutterTooltip extends HoverTooltip {
method constructor (line 59) | constructor(editor) {
method onDomMouseMove (line 77) | onDomMouseMove(domEvent) {
method onDomMouseOut (line 82) | onDomMouseOut(domEvent) {
method addToEditor (line 87) | addToEditor(editor) {
method removeFromEditor (line 94) | removeFromEditor(editor) {
method destroy (line 101) | destroy() {
method annotationLabels (line 108) | static get annotationLabels() {
method showTooltip (line 136) | showTooltip(row) {
method $setPosition (line 230) | $setPosition(editor, _ignoredPosition, _withMarker, range) {
method $shouldPlaceAbove (line 246) | $shouldPlaceAbove(labelHeight, anchorTop, spaceBelow) {
method $findLinkedAnnotationNode (line 250) | $findLinkedAnnotationNode(row) {
method $findCellByRow (line 260) | $findCellByRow(row) {
method hide (line 264) | hide(e) {
method annotationsToSummaryString (line 281) | static annotationsToSummaryString(annotations) {
method isOutsideOfText (line 297) | isOutsideOfText(e) {
FILE: src/mouse/default_gutter_handler_test.js
function findVisibleTooltip (line 29) | function findVisibleTooltip() {
FILE: src/mouse/default_handlers.js
class DefaultHandlers (line 11) | class DefaultHandlers {
method constructor (line 15) | constructor(mouseHandler) {
method onMouseDown (line 40) | onMouseDown(ev) {
method startSelect (line 86) | startSelect(pos, waitForClickSelection) {
method select (line 104) | select() {
method extendSelectionBy (line 129) | extendSelectionBy(unitName) {
method selectByLinesEnd (line 162) | selectByLinesEnd() {
method focusWait (line 170) | focusWait() {
method onDoubleClick (line 182) | onDoubleClick(ev) {
method onTripleClick (line 206) | onTripleClick(ev) {
method onQuadClick (line 225) | onQuadClick(ev) {
method onMouseWheel (line 237) | onMouseWheel(ev) {
function calcDistance (line 304) | function calcDistance(ax, ay, bx, by) {
function calcRangeOrientation (line 308) | function calcRangeOrientation(range, cursor, session) {
FILE: src/mouse/dragdrop_handler.js
function DragdropHandler (line 16) | function DragdropHandler(mouseHandler) {
function calcDistance (line 429) | function calcDistance(ax, ay, bx, by) {
FILE: src/mouse/fold_handler.js
class FoldHandler (line 4) | class FoldHandler {
method constructor (line 5) | constructor(editor) {
FILE: src/mouse/mouse_event.js
class MouseEvent (line 9) | class MouseEvent {
method constructor (line 10) | constructor(domEvent, editor) {
method stopPropagation (line 27) | stopPropagation() {
method preventDefault (line 32) | preventDefault() {
method stop (line 37) | stop() {
method getDocumentPosition (line 47) | getDocumentPosition() {
method getGutterRow (line 60) | getGutterRow() {
method inSelection (line 72) | inSelection() {
method getButton (line 95) | getButton() {
method getShiftKey (line 102) | getShiftKey() {
method getAccelKey (line 106) | getAccelKey() {
FILE: src/mouse/mouse_handler.js
class MouseHandler (line 14) | class MouseHandler {
method constructor (line 18) | constructor(editor) {
method onMouseEvent (line 88) | onMouseEvent(name, e) {
method onMouseMove (line 93) | onMouseMove(name, e) {
method onMouseWheel (line 106) | onMouseWheel(name, e) {
method setState (line 116) | setState(state) {
method captureMouse (line 126) | captureMouse(ev, mouseMoveHandler) {
method cancelContextMenu (line 203) | cancelContextMenu() {
method destroy (line 214) | destroy() {
FILE: src/mouse/mouse_handler_test.js
function sendTouchEvent (line 35) | function sendTouchEvent(type, opts, editor) {
function touchPos (line 41) | function touchPos(row, column) {
FILE: src/mouse/multi_select_handler.js
function isSamePoint (line 5) | function isSamePoint(p1, p2) {
function onMouseDown (line 9) | function onMouseDown(e) {
FILE: src/mouse/touch_handler.js
function createContextMenu (line 23) | function createContextMenu() {
function showContextMenu (line 93) | function showContextMenu() {
function hideContextMenu (line 118) | function hideContextMenu(e) {
function handleLongTap (line 124) | function handleLongTap() {
function switchToSelectionMode (line 136) | function switchToSelectionMode() {
function animate (line 308) | function animate() {
FILE: src/multi_select.js
function find (line 25) | function find(session, needle, dir) {
function spaces (line 870) | function spaces(n) {
function alignLeft (line 874) | function alignLeft(m) {
function alignRight (line 879) | function alignRight(m) {
function unAlign (line 884) | function unAlign(m) {
function isSamePoint (line 894) | function isSamePoint(p1, p2) {
function MultiSelect (line 947) | function MultiSelect(editor) {
function addAltCursorListeners (line 969) | function addAltCursorListeners(editor){
FILE: src/multi_select_test.js
function getSelection (line 24) | function getSelection(editor) {
function testSelection (line 42) | function testSelection(editor, data) {
function setSelection (line 45) | function setSelection(editor, data) {
FILE: src/occur.js
class Occur (line 18) | class Occur extends Search {
method enter (line 31) | enter(editor, options) {
method exit (line 49) | exit(editor, options) {
method highlight (line 62) | highlight(sess, regexp) {
method displayOccurContent (line 73) | displayOccurContent(editor, options) {
method displayOriginalContent (line 92) | displayOriginalContent(editor) {
method originalToOccurPosition (line 105) | originalToOccurPosition(session, pos) {
method occurToOriginalPosition (line 123) | occurToOriginalPosition(session, pos) {
method matchingLines (line 134) | matchingLines(session, options) {
FILE: src/placeholder.js
class PlaceHolder (line 9) | class PlaceHolder {
method constructor (line 18) | constructor(session, length, pos, others, mainClass, othersClass) {
method setup (line 50) | setup() {
method showOtherMarkers (line 80) | showOtherMarkers() {
method hideOtherMarkers (line 96) | hideOtherMarkers() {
method onUpdate (line 111) | onUpdate(delta) {
method updateAnchors (line 151) | updateAnchors(delta) {
method updateMarkers (line 158) | updateMarkers() {
method onCursorChange (line 180) | onCursorChange(event) {
method detach (line 198) | detach() {
method cancel (line 213) | cancel() {
FILE: src/range.js
class Range (line 11) | class Range {
method constructor (line 20) | constructor(startRow, startColumn, endRow, endColumn) {
method isEqual (line 38) | isEqual(range) {
method toString (line 52) | toString() {
method contains (line 69) | contains(row, column) {
method compareRange (line 85) | compareRange(range) {
method comparePoint (line 120) | comparePoint(p) {
method containsRange (line 130) | containsRange(range) {
method intersects (line 139) | intersects(range) {
method isEnd (line 150) | isEnd(row, column) {
method isStart (line 160) | isStart(row, column) {
method setStart (line 170) | setStart(row, column) {
method setEnd (line 186) | setEnd(row, column) {
method inside (line 203) | inside(row, column) {
method insideStart (line 221) | insideStart(row, column) {
method insideEnd (line 240) | insideEnd(row, column) {
method compare (line 268) | compare(row, column) {
method compareStart (line 298) | compareStart(row, column) {
method compareEnd (line 314) | compareEnd(row, column) {
method compareInside (line 331) | compareInside(row, column) {
method clipRows (line 347) | clipRows(firstRow, lastRow) {
method extend (line 367) | extend(row, column) {
method isEmpty (line 384) | isEmpty() {
method isMultiLine (line 392) | isMultiLine() {
method clone (line 400) | clone() {
method collapseRows (line 408) | collapseRows() {
method toScreenRange (line 420) | toScreenRange(session) {
method moveBy (line 436) | moveBy(row, column) {
FILE: src/range_list.js
class RangeList (line 9) | class RangeList {
method constructor (line 11) | constructor() {
method pointIndex (line 22) | pointIndex(pos, excludeEdges, startIndex) {
method add (line 44) | add(range) {
method addList (line 62) | addList(list) {
method substractPoint (line 73) | substractPoint(pos) {
method merge (line 81) | merge() {
method contains (line 120) | contains(row, column) {
method containsPoint (line 127) | containsPoint(pos) {
method rangeAtPoint (line 134) | rangeAtPoint(pos) {
method clipRows (line 145) | clipRows(startRow, endRow) {
method removeAll (line 165) | removeAll() {
method attach (line 172) | attach(session) {
method detach (line 182) | detach() {
method $onChange (line 192) | $onChange(delta) {
FILE: src/range_list_test.js
function flatten (line 8) | function flatten(rangeList) {
function testRangeList (line 15) | function testRangeList(rangeList, points) {
FILE: src/renderloop.js
class RenderLoop (line 8) | class RenderLoop {
method constructor (line 10) | constructor(onRender, win) {
method schedule (line 37) | schedule(change) {
method clear (line 45) | clear(change) {
FILE: src/scrollbar.js
class Scrollbar (line 15) | class Scrollbar {
method constructor (line 21) | constructor(parent, classSuffix) {
method setVisible (line 42) | setVisible(isVisible) {
class VScrollBar (line 53) | class VScrollBar extends Scrollbar {
method constructor (line 59) | constructor(parent, renderer) {
method onScroll (line 83) | onScroll() {
method getWidth (line 99) | getWidth() {
method setHeight (line 107) | setHeight(height) {
method setScrollHeight (line 115) | setScrollHeight(height) {
method setScrollTop (line 131) | setScrollTop(scrollTop) {
class HScrollBar (line 153) | class HScrollBar extends Scrollbar {
method constructor (line 159) | constructor(parent, renderer) {
method onScroll (line 178) | onScroll() {
method getHeight (line 190) | getHeight() {
method setWidth (line 198) | setWidth(width) {
method setInnerWidth (line 207) | setInnerWidth(width) {
method setScrollWidth (line 215) | setScrollWidth(width) {
method setScrollLeft (line 223) | setScrollLeft(scrollLeft) {
FILE: src/scrollbar_custom.js
class ScrollBar (line 51) | class ScrollBar {
method constructor (line 57) | constructor(parent, classSuffix) {
method setVisible (line 73) | setVisible(isVisible) {
class VScrollBar (line 93) | class VScrollBar extends ScrollBar {
method constructor (line 95) | constructor(parent, renderer) {
method onMouseDown (line 110) | onMouseDown(eType, e) {
method getHeight (line 147) | getHeight() {
method scrollTopFromThumbTop (line 156) | scrollTopFromThumbTop(thumbTop) {
method getWidth (line 172) | getWidth() {
method setHeight (line 180) | setHeight(height) {
method setScrollHeight (line 194) | setScrollHeight(height, force) {
method setScrollTop (line 215) | setScrollTop(scrollTop) {
class HScrollBar (line 228) | class HScrollBar extends ScrollBar {
method constructor (line 234) | constructor(parent, renderer) {
method onMouseDown (line 247) | onMouseDown(eType, e) {
method getHeight (line 290) | getHeight() {
method scrollLeftFromThumbLeft (line 299) | scrollLeftFromThumbLeft(thumbLeft) {
method setWidth (line 315) | setWidth(width) {
method setScrollWidth (line 329) | setScrollWidth(width, force) {
method setScrollLeft (line 350) | setScrollLeft(scrollLeft) {
FILE: src/search.js
class Search (line 13) | class Search {
method constructor (line 15) | constructor() {
method set (line 26) | set(options) {
method getOptions (line 35) | getOptions() {
method setOptions (line 44) | setOptions(options) {
method find (line 53) | find(session) {
method findAll (line 80) | findAll(session) {
method parseReplaceString (line 161) | parseReplaceString(replaceString) {
method replace (line 244) | replace(input, replacement) {
method $assembleRegExp (line 292) | $assembleRegExp(options, $disableFakeMultiline) {
method $assembleMultilineRegExp (line 334) | $assembleMultilineRegExp(needle, modifier) {
method $isMultilineSearch (line 345) | $isMultilineSearch(options) {
method $multiLineForward (line 349) | $multiLineForward(session, re, start, last) {
method $multiLineBackward (line 384) | $multiLineBackward(session, re, endIndex, start, first) {
method $matchIterator (line 420) | $matchIterator(session, options) {
function addWordBoundary (line 571) | function addWordBoundary(needle, options) {
function multiLineBackwardMatch (line 594) | function multiLineBackwardMatch(line, re, endMargin) {
function chunkEnd (line 612) | function chunkEnd(session, start) {
FILE: src/search_highlight.js
class SearchHighlight (line 9) | class SearchHighlight {
method constructor (line 14) | constructor(regExp, clazz, type = "text") {
method setRegexp (line 21) | setRegexp(regExp) {
method update (line 34) | update(html, markerLayer, session, config) {
FILE: src/search_test.js
function check (line 588) | function check(sl, sc, el, ec) {
FILE: src/selection.js
class Selection (line 13) | class Selection {
method constructor (line 19) | constructor(session) {
method isEmpty (line 54) | isEmpty() {
method isMultiLine (line 65) | isMultiLine() {
method getCursor (line 73) | getCursor() {
method setAnchor (line 83) | setAnchor(row, column) {
method getAnchor (line 95) | getAnchor() {
method getSelectionLead (line 107) | getSelectionLead() {
method isBackwards (line 115) | isBackwards() {
method getRange (line 125) | getRange() {
method clearSelection (line 140) | clearSelection() {
method selectAll (line 150) | selectAll() {
method setRange (line 159) | setRange(range, reverse) {
method $setSelection (line 171) | $setSelection(anchorRow, anchorColumn, cursorRow, cursorColumn) {
method $moveSelection (line 188) | $moveSelection(mover) {
method selectTo (line 201) | selectTo(row, column) {
method selectToPosition (line 211) | selectToPosition(pos) {
method moveTo (line 222) | moveTo(row, column) {
method moveToPosition (line 231) | moveToPosition(pos) {
method selectUp (line 240) | selectUp() {
method selectDown (line 247) | selectDown() {
method selectRight (line 254) | selectRight() {
method selectLeft (line 261) | selectLeft() {
method selectLineStart (line 268) | selectLineStart() {
method selectLineEnd (line 275) | selectLineEnd() {
method selectFileEnd (line 282) | selectFileEnd() {
method selectFileStart (line 289) | selectFileStart() {
method selectWordRight (line 296) | selectWordRight() {
method selectWordLeft (line 303) | selectWordLeft() {
method getWordRange (line 311) | getWordRange(row, column) {
method selectWord (line 323) | selectWord() {
method selectAWord (line 331) | selectAWord() {
method getLineRange (line 337) | getLineRange(row, excludeLastChar) {
method selectLine (line 357) | selectLine() {
method moveCursorUp (line 364) | moveCursorUp() {
method moveCursorDown (line 371) | moveCursorDown() {
method wouldMoveIntoSoftTab (line 382) | wouldMoveIntoSoftTab(cursor, tabSize, direction) {
method moveCursorLeft (line 396) | moveCursorLeft() {
method moveCursorRight (line 421) | moveCursorRight() {
method moveCursorLineStart (line 449) | moveCursorLineStart() {
method moveCursorLineEnd (line 473) | moveCursorLineEnd() {
method moveCursorFileEnd (line 491) | moveCursorFileEnd() {
method moveCursorFileStart (line 500) | moveCursorFileStart() {
method moveCursorLongWordRight (line 507) | moveCursorLongWordRight() {
method moveCursorLongWordLeft (line 552) | moveCursorLongWordLeft() {
method $shortWordEndIndex (line 597) | $shortWordEndIndex(rightOfCursor) {
method moveCursorShortWordRight (line 633) | moveCursorShortWordRight() {
method moveCursorShortWordLeft (line 660) | moveCursorShortWordLeft() {
method moveCursorWordRight (line 686) | moveCursorWordRight() {
method moveCursorWordLeft (line 693) | moveCursorWordLeft() {
method moveCursorBy (line 707) | moveCursorBy(rows, chars) {
method moveCursorToPosition (line 753) | moveCursorToPosition(position) {
method moveCursorTo (line 763) | moveCursorTo(row, column, keepDesiredColumn) {
method moveCursorToScreen (line 793) | moveCursorToScreen(row, column, keepDesiredColumn) {
method detach (line 799) | detach() {
method fromOrientedRange (line 807) | fromOrientedRange(range) {
method toOrientedRange (line 815) | toOrientedRange(range) {
method getRangeOfMovements (line 838) | getRangeOfMovements(func) {
method toJSON (line 855) | toJSON() {
method fromJSON (line 873) | fromJSON(data) {
method isEqual (line 898) | isEqual(data) {
FILE: src/snippets.js
function date (line 103) | function date(dateFormat) {
class SnippetManager (line 108) | class SnippetManager {
method constructor (line 109) | constructor() {
method getTokenizer (line 119) | getTokenizer() {
method createTokenizer (line 123) | createTokenizer() {
method tokenizeTmSnippet (line 244) | tokenizeTmSnippet(str, startState) {
method getVariableValue (line 250) | getVariableValue(editor, name, indentation) {
method tmStrFormat (line 266) | tmStrFormat(str, ch, editor) {
method tmFormatFunction (line 306) | tmFormatFunction(str, ch, editor) {
method resolveVariables (line 314) | resolveVariables(snippet, editor) {
method getDisplayTextForSnippet (line 371) | getDisplayTextForSnippet(editor, snippetText) {
method insertSnippetForSelection (line 376) | insertSnippetForSelection(editor, snippetText, options={}) {
method insertSnippet (line 387) | insertSnippet(editor, snippetText, options={}) {
method $getScope (line 400) | $getScope(editor) {
method getActiveScopes (line 425) | getActiveScopes(editor) {
method expandWithTab (line 436) | expandWithTab(editor, options) {
method expandSnippetForSelection (line 446) | expandSnippetForSelection(editor, options) {
method findMatchingSnippet (line 484) | findMatchingSnippet(snippetList, before, after) {
method register (line 507) | register(snippets, scope) {
method unregister (line 587) | unregister(snippets, scope) {
method parseSnippetFile (line 606) | parseSnippetFile(str) {
method getSnippetByName (line 640) | getSnippetByName(name, editor) {
function copyValue (line 709) | function copyValue(val) {
class TabstopManager (line 780) | class TabstopManager {
method constructor (line 781) | constructor(editor) {
method attach (line 795) | attach(editor) {
method detach (line 807) | detach() {
method onChange (line 824) | onChange(delta) {
method updateLinkedFields (line 850) | updateLinkedFields() {
method onAfterExec (line 870) | onAfterExec(e) {
method onChangeSelection (line 877) | onChangeSelection() {
method onChangeSession (line 896) | onChangeSession() {
method tabNext (line 899) | tabNext(dir) {
method selectTabstop (line 911) | selectTabstop(index) {
method addTabstops (line 940) | addTabstops(tabstops, start, end) {
method addTabstopMarkers (line 1000) | addTabstopMarkers(ts) {
method removeTabstopMarkers (line 1007) | removeTabstopMarkers(ts) {
method updateTabstopMarkers (line 1014) | updateTabstopMarkers() {
method removeRange (line 1027) | removeRange(range) {
FILE: src/snippets_test.js
function testTabstop (line 307) | function testTabstop(tabstop, expected) {
FILE: src/test/all_browser.js
function testHref (line 48) | function testHref(suiteName, name) {
function testLink (line 53) | function testLink(name) {
function normalizeHref (line 56) | function normalizeHref(str) {
function resume (line 189) | function resume() {
function runSteps (line 197) | async function runSteps() {
function runOne (line 215) | async function runOne() {
FILE: src/test/assertions.js
function serializeDom (line 29) | function serializeDom(node) {
FILE: src/test/asyncjs/assert.js
function fail (line 87) | function fail(actual, expected, message, operator, stackStartFunction) {
function _deepEqual (line 137) | function _deepEqual(actual, expected) {
function isUndefinedOrNull (line 172) | function isUndefinedOrNull(value) {
function isArguments (line 176) | function isArguments(object) {
function objEquiv (line 180) | function objEquiv(a, b) {
function expectedException (line 250) | function expectedException(actual, expected) {
function _throws (line 266) | function _throws(shouldThrow, block, expected, message) {
FILE: src/test/mockdom.js
function Style (line 11) | function Style() {
function ClassList (line 34) | function ClassList(node) {
function Attr (line 53) | function Attr(name, value) {
function Context2d (line 111) | function Context2d(w, h) {
function getItem (line 162) | function getItem(i) { return this[i]; }
function Node (line 164) | function Node(name) {
function querySelector (line 267) | function querySelector(node, selector, all) {
function parseCssLength (line 494) | function parseCssLength(styleString, parentSize) {
function call (line 575) | function call(node, capturing) {
function removeAllChildren (line 607) | function removeAllChildren(node) {
function parseSelector (line 617) | function parseSelector(selector) {
function parseSimpleSelector (line 626) | function parseSimpleSelector(selector) {
function setInnerHTML (line 661) | function setInnerHTML(markup, parent, strict) {
function parseCharacterEntity (line 717) | function parseCharacterEntity(encoded) {
function parseDocType (line 732) | function parseDocType(markup, tagRe, strict) {
function escapeHTML (line 751) | function escapeHTML(str) {
function Event (line 759) | function Event(type, options) {
function walk (line 791) | function walk(node, fn) {
function TextNode (line 800) | function TextNode(value) {
method innerHeight (line 819) | get innerHeight() {
method innerWidth (line 822) | get innerWidth() {
function unloadProperty (line 1001) | function unloadProperty(name) {
FILE: src/test/user.js
function reset (line 58) | function reset() {
function updateModifierStates (line 61) | function updateModifierStates(keyCode) {
function sendKey (line 72) | function sendKey(letter, timeout) {
function type (line 158) | function type() {
FILE: src/token_iterator.js
class TokenIterator (line 11) | class TokenIterator {
method constructor (line 18) | constructor(session, initialRow, initialColumn) {
method stepBackward (line 31) | stepBackward() {
method stepForward (line 52) | stepForward() {
method getCurrentToken (line 76) | getCurrentToken() {
method getCurrentTokenRow (line 85) | getCurrentTokenRow() {
method getCurrentTokenColumn (line 94) | getCurrentTokenColumn() {
method getCurrentTokenPosition (line 116) | getCurrentTokenPosition() {
method getCurrentTokenRange (line 124) | getCurrentTokenRange() {
FILE: src/tokenizer.js
class Tokenizer (line 9) | class Tokenizer {
method constructor (line 14) | constructor(rules) {
method $setMaxTokenCount (line 108) | $setMaxTokenCount(m) {
method $applyToken (line 116) | $applyToken(str) {
method $arrayTokens (line 140) | $arrayTokens(str) {
method removeCapturingGroups (line 163) | removeCapturingGroups(src) {
method createSplitterRegexp (line 175) | createSplitterRegexp(src, flag) {
method getLineTokens (line 220) | getLineTokens(line, startState) {
FILE: src/tokenizer_dev.js
class Tokenizer (line 11) | class Tokenizer extends BaseTokenizer {
method getLineTokens (line 17) | getLineTokens(line, startState) {
FILE: src/tooltip.js
class Tooltip (line 15) | class Tooltip {
method constructor (line 19) | constructor(parentNode) {
method $init (line 25) | $init() {
method getElement (line 36) | getElement() {
method setText (line 43) | setText(text) {
method setHtml (line 50) | setHtml(html) {
method setPosition (line 58) | setPosition(x, y) {
method setClassName (line 66) | setClassName(className) {
method setTheme (line 73) | setTheme(theme) {
method show (line 95) | show(text, x, y) {
method hide (line 106) | hide(e) {
method getHeight (line 117) | getHeight() {
method getWidth (line 124) | getWidth() {
method destroy (line 128) | destroy() {
class PopupManager (line 137) | class PopupManager {
method constructor (line 138) | constructor () {
method addPopup (line 146) | addPopup(popup) {
method removePopup (line 154) | removePopup(popup) {
method updatePopups (line 162) | updatePopups() {
method doPopupsOverlap (line 189) | doPopupsOverlap(popupA, popupB) {
class HoverTooltip (line 204) | class HoverTooltip extends Tooltip {
method constructor (line 205) | constructor(parentNode=document.body) {
method addToEditor (line 235) | addToEditor(editor) {
method removeFromEditor (line 248) | removeFromEditor(editor) {
method onMouseMove (line 266) | onMouseMove(e, editor) {
method waitForHover (line 285) | waitForHover() {
method isOutsideOfText (line 302) | isOutsideOfText(e) {
method setDataProvider (line 322) | setDataProvider(value) {
method showForRange (line 332) | showForRange(editor, range, domNode, startingEvent) {
method $setPosition (line 369) | $setPosition(editor, position, withMarker, range) {
method $shouldPlaceAbove (line 400) | $shouldPlaceAbove(labelHeight, anchorTop, spaceBelow) {
method addMarker (line 408) | addMarker(range, session) {
method hide (line 416) | hide(e) {
method $registerCloseEvents (line 439) | $registerCloseEvents() {
method $removeCloseEvents (line 445) | $removeCloseEvents() {
method onMouseOut (line 454) | onMouseOut(e) {
FILE: src/tooltip_test.js
function mouse (line 168) | function mouse(type, pos, properties) {
FILE: src/undomanager.js
class UndoManager (line 12) | class UndoManager {
method constructor (line 16) | constructor() {
method addSession (line 29) | addSession(session) {
method add (line 42) | add(delta, allowMerge, session) {
method addSelection (line 65) | addSelection(selection, rev) {
method startNewGroup (line 72) | startNewGroup() {
method markIgnored (line 82) | markIgnored(from, to) {
method getSelection (line 101) | getSelection(rev, after) {
method getRevision (line 116) | getRevision() {
method getDeltas (line 126) | getDe
Copy disabled (too large)
Download .json
Condensed preview — 1431 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (10,491K chars).
[
{
"path": ".github/ISSUE_TEMPLATE/add-to-website.yml",
"chars": 1803,
"preview": "---\nname: \"🌐 Add a project to the list of project using Ace on its website.\"\ndescription: Add a project to the list of p"
},
{
"path": ".github/ISSUE_TEMPLATE/bug-report.yml",
"chars": 2019,
"preview": "---\nname: \"🐞 Bug Report\"\ndescription: Report a bug\ntitle: \"(module name): (short issue description)\"\nlabels: [bug, needs"
},
{
"path": ".github/ISSUE_TEMPLATE/config.yml",
"chars": 209,
"preview": "---\nblank_issues_enabled: false\ncontact_links:\n - name: 🤔 General Question\n url: https://github.com/ajaxorg/ace/disc"
},
{
"path": ".github/ISSUE_TEMPLATE/documentation.yml",
"chars": 552,
"preview": "---\nname: \"📕 Documentation Issue\"\ndescription: Report an issue in the documentation\ntitle: \"(short issue description)\"\nl"
},
{
"path": ".github/ISSUE_TEMPLATE/feature-request.yml",
"chars": 1542,
"preview": "---\nname: 🚀 Feature Request\ndescription: Suggest an idea for this project\ntitle: \"(short issue description)\"\nlabels: [fe"
},
{
"path": ".github/PULL_REQUEST_TEMPLATE.md",
"chars": 572,
"preview": "*Issue #, if available:*\n\n*Description of changes:*\n\n\nBy submitting this pull request, I confirm that you can use, modif"
},
{
"path": ".github/workflows/backwards-compatibility-commenter.yml",
"chars": 615,
"preview": "name: Comments for ensuring backward compatibility\n\non:\n pull_request_target:\n paths:\n - 'ace.d.ts'\n - 'ac"
},
{
"path": ".github/workflows/close-stale-issues.yml",
"chars": 1800,
"preview": "name: \"Close Stale Issues\"\n\n# Controls when the action will run.\non:\n workflow_dispatch:\n schedule:\n - cron: \"0 */4"
},
{
"path": ".github/workflows/issue-reprioritization.yml",
"chars": 623,
"preview": "name: issue-reprioritization\non:\n schedule:\n - cron: \"0 0 * * 0\"\n\njobs:\n issue-reprioritization:\n permissions:\n "
},
{
"path": ".github/workflows/link-comment.yml",
"chars": 1413,
"preview": "name: Update PR Description\n\non:\n pull_request_target: # use this trigger to run on external pull requests too\n type"
},
{
"path": ".github/workflows/nodejs.yml",
"chars": 2229,
"preview": "# This workflow will do a clean install of node dependencies, build the source code and run tests across different versi"
},
{
"path": ".github/workflows/publish.yml",
"chars": 756,
"preview": "# This workflow will do a clean install of node dependencies, build the source code and run tests across different versi"
},
{
"path": ".gitignore",
"chars": 320,
"preview": "# Junk that could exist anywhere:\n.DS_Store\n*.swp\n*.tmp\n*~\n\n# Project files that should not be in the repo\n.*\n\\#*\n!/.git"
},
{
"path": "CHANGELOG.md",
"chars": 78303,
"preview": "# Changelog\n\nAll notable changes to this project will be documented in this file. See [standard-version](https://github."
},
{
"path": "CNAME",
"chars": 9,
"preview": "ace.c9.io"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 311,
"preview": "## Code of Conduct\nThis project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-condu"
},
{
"path": "CONTRIBUTING.md",
"chars": 717,
"preview": "Contributing\n------------\n\nAce is a community project and wouldn't be what it is without contributions! We actively enco"
},
{
"path": "LICENSE",
"chars": 1490,
"preview": "Copyright (c) 2010, Ajax.org B.V.\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or witho"
},
{
"path": "Makefile",
"chars": 1115,
"preview": ".PHONY : doc build clean dist\n\npre_build:\n\tgit rev-parse HEAD > .git-ref\n\tmkdir -p build/src\n\tmkdir -p build/demo/kitche"
},
{
"path": "Makefile.dryice.js",
"chars": 34029,
"preview": "#!/usr/bin/env node\n/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, A"
},
{
"path": "Readme.md",
"chars": 6754,
"preview": "Ace (Ajax.org Cloud9 Editor)\n============================\n\n[.Anchor;\n type Editor = import(\"./src/editor\").Editor;"
},
{
"path": "ace-modes.d.ts",
"chars": 58268,
"preview": "declare module \"ace-code/src/mode/abap_highlight_rules\" {\n export const AbapHighlightRules: new () => import(\"ace-cod"
},
{
"path": "ace.d.ts",
"chars": 48659,
"preview": "/* This file is generated using `npm run update-types` */\n\n/// <reference path=\"./types/ace-lib.d.ts\" />\n/// <reference "
},
{
"path": "amplify.yml",
"chars": 352,
"preview": "version: 0.1\nfrontend:\n phases:\n preBuild:\n commands:\n - npm install\n # IMPORTANT - Please verify you"
},
{
"path": "build_support/editor.html",
"chars": 804,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,c"
},
{
"path": "build_support/mini_require.js",
"chars": 5818,
"preview": "/* ***** BEGIN LICENSE BLOCK *****\n * Distributed under the BSD license:\n *\n * Copyright (c) 2010, Ajax.org B.V.\n * All "
},
{
"path": "demo/autocompletion.html",
"chars": 1020,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>ACE Autocompletion demo</title>\n <style type="
},
{
"path": "demo/autoresize.html",
"chars": 2217,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,c"
},
{
"path": "demo/code_lens.html",
"chars": 3340,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>ACE Code Lens demo</title>\n <style type=\"text"
},
{
"path": "demo/csp.html",
"chars": 930,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,c"
},
{
"path": "demo/diff/examples/editor.16.js",
"chars": 98720,
"preview": "\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar use"
},
{
"path": "demo/diff/examples/editor.17.js",
"chars": 98022,
"preview": "\"use strict\";\n\nvar oop = require(\"./lib/oop\");\nvar dom = require(\"./lib/dom\");\nvar lang = require(\"./lib/lang\");\nvar use"
},
{
"path": "demo/diff/examples/editor.40.js",
"chars": 104789,
"preview": "\"use strict\";\n\n/**\n * @typedef {import(\"./virtual_renderer\").VirtualRenderer} VirtualRenderer\n * @typedef {import(\"./sel"
},
{
"path": "demo/diff/index.html",
"chars": 8762,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <title>Ace-diff - Simple Demo #1</title>\n\n <script src=\"../kitchen-sink/r"
},
{
"path": "demo/emmet.html",
"chars": 915,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>ACE Emmet demo</title>\n <style type=\"text/css"
},
{
"path": "demo/i18n.html",
"chars": 6071,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,c"
},
{
"path": "demo/inline_autocompletion.html",
"chars": 1117,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <title>ACE Inline Autocompletion demo</title>\n <styl"
},
{
"path": "demo/keyboard_shortcuts.html",
"chars": 1260,
"preview": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,c"
},
{
"path": "demo/kitchen-sink/demo.js",
"chars": 26064,
"preview": "\"use strict\";\n\nrequire(\"ace/ext/rtl\");\n\nrequire(\"ace/multi_select\");\nrequire(\"./inline_editor\");\nvar devUtil = require(\""
},
{
"path": "demo/kitchen-sink/dev_util.js",
"chars": 12001,
"preview": "var ace = require(\"ace/ace\");\nvar dom = require(\"ace/lib/dom\");\nvar event = require(\"ace/lib/event\");\nvar Range = requir"
},
{
"path": "demo/kitchen-sink/doclist.js",
"chars": 4957,
"preview": "\"use strict\";\n\nvar EditSession = require(\"ace/edit_session\").EditSession;\nvar UndoManager = require(\"ace/undomanager\").U"
},
{
"path": "demo/kitchen-sink/docs/Dockerfile",
"chars": 2493,
"preview": "#\n# example Dockerfile for http://docs.docker.io/en/latest/examples/postgresql_service/\n#\n\nFROM ubuntu\nMAINTAINER SvenDo"
},
{
"path": "demo/kitchen-sink/docs/Makefile",
"chars": 4566,
"preview": ".PHONY: apf ext worker mode theme package test\n\ndefault: apf worker\n\nupdate: worker\n\n# packages apf\n\n# This is the fi"
},
{
"path": "demo/kitchen-sink/docs/abap.abap",
"chars": 1037,
"preview": "***************************************\n** Program: EXAMPLE **\n** Author: Joe Byte, 07-Jul-2007 **\n"
},
{
"path": "demo/kitchen-sink/docs/abc.abc",
"chars": 5431,
"preview": "%abc-2.1\nH:This file contains some example English tunes\n% note that the comments (like this one) are to highlight usage"
},
{
"path": "demo/kitchen-sink/docs/actionscript.as",
"chars": 1133,
"preview": "package code\n{\n /*****************************************\n\t * based on textmate actionscript bundle\n\t **************"
},
{
"path": "demo/kitchen-sink/docs/ada.ada",
"chars": 99,
"preview": "with Ada.Text_IO; use Ada.Text_IO;\nprocedure Hello is\nbegin\n Put_Line(\"Hello, world!\");\nend Hello;"
},
{
"path": "demo/kitchen-sink/docs/alda.alda",
"chars": 248,
"preview": "# Example taken from https://github.com/alda-lang/alda-core/blob/master/examples/across_the_sea.alda\n(tempo! 90)\n(quant!"
},
{
"path": "demo/kitchen-sink/docs/apex.apex",
"chars": 1542,
"preview": "public class testBlockDuplicatesLeadTrigger {\n\t\n\tstatic testMethod void testDuplicateTrigger(){ \n\t\n\t\tLead[] l1 =new Lea"
},
{
"path": "demo/kitchen-sink/docs/aql.aql",
"chars": 67,
"preview": "FOR user IN users\n FILTER user.username == \"olivier\"\n RETURN user"
},
{
"path": "demo/kitchen-sink/docs/asciidoc.asciidoc",
"chars": 223386,
"preview": "AsciiDoc User Guide\n===================\nStuart Rackham <srackham@gmail.com>\n:Author Initials: SJR\n:toc:\n:icons:\n:numbere"
},
{
"path": "demo/kitchen-sink/docs/asl.dsl",
"chars": 2416,
"preview": "/*\n * Intel ACPI Component Architecture\n * AML/ASL+ Disassembler version 20180105\n *\n * ASL example\n */\nDefinitionBlock "
},
{
"path": "demo/kitchen-sink/docs/assembly_arm32.s",
"chars": 1491,
"preview": ".section .text\n.global _start\n.global msg\n\n_start:\n bl _asmtest\n mov r1, r0 // move return value into r1 for sysca"
},
{
"path": "demo/kitchen-sink/docs/assembly_x86.asm",
"chars": 506,
"preview": "section\t.text\n global main ;must be declared for using gcc\n\nmain:\t ;tell linker entry point\n\n\t"
},
{
"path": "demo/kitchen-sink/docs/astro.astro",
"chars": 156,
"preview": "---\nconst visible = true;\nconst name = \"Legend Sabbir\"\n---\n{visible && <p>Show me!</p>}\n\n{visible ? <p>Show me!</p> : <p"
},
{
"path": "demo/kitchen-sink/docs/autohotkey.ahk",
"chars": 720,
"preview": "#NoEnv\nSetBatchLines -1\n\nCoordMode Mouse, Screen\nOnExit GuiClose\n\nzoom := 9\n\ncomputeSize(){\n\tglobal as_x\n\tas_x := Round("
},
{
"path": "demo/kitchen-sink/docs/basic.bas",
"chars": 1250,
"preview": "120 OPEN\"R\" #1 \"INVEN.DAT\",39\n125 FIELD#1,1 AS F$,30 AS D$, 2 AS Q$,2 AS R$,4 AS PH\n130 PRINT:PRINT \"FUNCTIONS:\":PRINT\n1"
},
{
"path": "demo/kitchen-sink/docs/batchfile.bat",
"chars": 260,
"preview": ":: batch file highlighting in Ace!\n@echo off\n\nCALL set var1=%cd%\necho unhide everything in %var1%!\n\n:: FOR loop in bat i"
},
{
"path": "demo/kitchen-sink/docs/bibtex.bib",
"chars": 684,
"preview": "@Comment{\n @Book{tes03,\n author =\t {John Smith},\n title =\t {Cooking},\n publisher =\t {Culinary Expert},\n yea"
},
{
"path": "demo/kitchen-sink/docs/c9search.c9search_results",
"chars": 817,
"preview": "Searching for \u0001var\u0001 in\u0001/.c9/metadata/workspace/plugins\u0001\u0001regexp, case sensitive, whole word\u0001\n\nconfigs/default.js:\n 1: "
},
{
"path": "demo/kitchen-sink/docs/c_cpp.cpp",
"chars": 808,
"preview": "// compound assignment operators\n\n#include <iostream>\n\n#include \\\n <iostream>\n\n#include \\\n \\\n <iostream>\n\n#include"
},
{
"path": "demo/kitchen-sink/docs/cirru.cirru",
"chars": 520,
"preview": "-- https://github.com/Cirru/cirru-gopher/blob/master/code/scope.cr,\n\nset a (int 2)\n\nprint (self)\n\nset c (child)\n\nunder c"
},
{
"path": "demo/kitchen-sink/docs/clojure.clj",
"chars": 867,
"preview": "(defn parting\n \"returns a String parting in a given language\"\n ([] (parting \"World\"))\n ([name] (parting name \"en\"))\n "
},
{
"path": "demo/kitchen-sink/docs/clue.clue",
"chars": 8347,
"preview": "@iflua jit {\n\tlocal fn pack(...) {\n\t\treturn love.data.pack(\"string\", ...)\n\t}\n\tlocal fn unpack(...) {\n\t\treturn love.data."
},
{
"path": "demo/kitchen-sink/docs/cobol.CBL",
"chars": 1420,
"preview": "GNU >>SOURCE FORMAT IS FIXED\nCobol *> ***************************************************************\n *> Purpos"
},
{
"path": "demo/kitchen-sink/docs/coffee.coffee",
"chars": 402,
"preview": "#!/usr/bin/env coffee\n\ntry\n throw URIError decodeURI(0xC0ffee * 123456.7e-8 / .9)\ncatch e\n console.log 'qstring' +"
},
{
"path": "demo/kitchen-sink/docs/coldfusion.cfm",
"chars": 86,
"preview": "<!--- hello world --->\n\n<cfset welcome=\"Hello World!\">\n\n<cfoutput>#welcome#</cfoutput>"
},
{
"path": "demo/kitchen-sink/docs/crystal.cr",
"chars": 746,
"preview": "# crystal comment\n\nrequire \"llvm\"\n\nNUM_CELLS = 30000\nCELL_SIZE_IN_BYTES = 1\n\nabstract class Instruction\n a"
},
{
"path": "demo/kitchen-sink/docs/csharp.cs",
"chars": 83,
"preview": "public void HelloWorld() {\n //Say Hello!\n Console.WriteLine(\"Hello World\");\n}"
},
{
"path": "demo/kitchen-sink/docs/csound_document.csd",
"chars": 173,
"preview": "text\n<CsoundSynthesizer>\n<CsInstruments>\n0dbfs = 1\nprints \"hello, world\\n\"\n</CsInstruments>\n<CsScore>\ni 1 0 0\n</CsScore>"
},
{
"path": "demo/kitchen-sink/docs/csound_orchestra.orc",
"chars": 1076,
"preview": "/*\n * comment\n */\n; comment\n// comment\n\ninstr/**/1,/**/N_a_M_e_,/**/+Name/**///\n iDuration = p3\n outc:a(aSignal)\nendin"
},
{
"path": "demo/kitchen-sink/docs/csound_score.sco",
"chars": 281,
"preview": "/*\n * comment\n */\n; comment\n// comment\na B b C d e f i q s t v x y\nz\nnp0 nP1 Np2 NP3\nm/**/label;\nn label\n123 0123456789\n"
},
{
"path": "demo/kitchen-sink/docs/css.css",
"chars": 738,
"preview": ".text-layer {\n font: 12px Monaco, \"Courier New\", monospace;\n font-size: 3vmin;\n cursor: text;\n}\n\n.blinker {\n "
},
{
"path": "demo/kitchen-sink/docs/csv.csv",
"chars": 431,
"preview": "col1,col2 long,col3,col4,\n\"col1,with quotes\",col2,col3,col4,\ncol1,col2,col\"\"\"3,co\"\"l4,\ncol1,col2,col3\"broken\",col4,\ncol1"
},
{
"path": "demo/kitchen-sink/docs/curly.curly",
"chars": 301,
"preview": "<html>\n <head>\n\n <style type=\"text/css\">\n .text-layer {\n font-family: Monaco, \"Courier New\", mon"
},
{
"path": "demo/kitchen-sink/docs/cuttlefish.conf",
"chars": 203,
"preview": "include extras.conf # overflow config file\n\nring_size = 32\n\n# experimental\nanti_entropy = debug\n\n# logging\nlog.error"
},
{
"path": "demo/kitchen-sink/docs/d.d",
"chars": 324,
"preview": "#!/usr/bin/env rdmd\n// Computes average line length for standard input.\nimport std.stdio;\n\nvoid main() {\n ulong lines"
},
{
"path": "demo/kitchen-sink/docs/dart.dart",
"chars": 489,
"preview": "// Go ahead and modify this example.\n\nimport \"dart:html\";\n\n// Computes the nth Fibonacci number.\nint fibonacci(int n) {\n"
},
{
"path": "demo/kitchen-sink/docs/diff.diff",
"chars": 2487,
"preview": "diff --git a/lib/ace/edit_session.js b/lib/ace/edit_session.js\nindex 23fc3fc..ed3b273 100644\n--- a/lib/ace/edit_session."
},
{
"path": "demo/kitchen-sink/docs/django.djt",
"chars": 358,
"preview": "{% extends \"base.html\" %}\n\n{% block title %}Ace Django Template{% endblock %}\n\n{% block content %}\n <h1>Hello, {{ name|"
},
{
"path": "demo/kitchen-sink/docs/dot.dot",
"chars": 5910,
"preview": "// Original source: http://www.graphviz.org/content/lion_share\n##\"A few people in the field of genetics are using dot to"
},
{
"path": "demo/kitchen-sink/docs/drools.drl",
"chars": 3061,
"preview": "/*\n * Copyright 2010 JBoss Inc\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use "
},
{
"path": "demo/kitchen-sink/docs/edifact.edi",
"chars": 541,
"preview": "UNB+UNOA:1+005435656:1+006415160:1+060515:1434+00000000000778'\nUNH+00000000000117+INVnrOIC:D:97B:UN'\nBGM+380+342459+9'\nD"
},
{
"path": "demo/kitchen-sink/docs/eiffel.e",
"chars": 375,
"preview": "note\n\tdescription: \"Represents a person.\"\n\nclass\n\tPERSON\n\ncreate\n\tmake, make_unknown\n\nfeature {NONE} -- Creation\n\n\tmake "
},
{
"path": "demo/kitchen-sink/docs/ejs.ejs",
"chars": 752,
"preview": "<!DOCTYPE html>\n<html>\n <head>\n <title>Cloud9 Rocks!</title>\n </head>\n <body>\n\n <table class=\"table\">"
},
{
"path": "demo/kitchen-sink/docs/elixir.ex",
"chars": 692,
"preview": "defmodule HelloModule do\n @moduledoc \"\"\"\n This is supposed to be `markdown`.\n __Yes__ this is [mark](http://down."
},
{
"path": "demo/kitchen-sink/docs/elm.elm",
"chars": 487,
"preview": "{- Ace {- 4 -} Elm -}\nmain = lift clock (every second)\n\nclock t = collage 400 400 [ filled lightGrey (ngon 12 110)\n"
},
{
"path": "demo/kitchen-sink/docs/erlang.erl",
"chars": 590,
"preview": " %% A process whose only job is to keep a counter.\n %% First version\n -module(counter).\n -export([start/0, codeswitc"
},
{
"path": "demo/kitchen-sink/docs/flix.flix",
"chars": 1032,
"preview": "/// Mooo's `n` times on channel `c`.\ndef mooo(tx: Sender[String, r], n: Int32): Unit \\ IO =\n match n {\n case 0"
},
{
"path": "demo/kitchen-sink/docs/forth.frt",
"chars": 979,
"preview": ": HELLO ( -- ) CR .\" Hello, world!\" ; \n\nHELLO <cr>\nHello, world!\n\n: [CHAR] CHAR POSTPONE LITERAL ; IMMEDIATE\n\n0 val"
},
{
"path": "demo/kitchen-sink/docs/fortran.f",
"chars": 713,
"preview": "#include \"globalDefines.h\"\n\n!=========================================================\nprogram main\n!==================="
},
{
"path": "demo/kitchen-sink/docs/fsharp.fsi",
"chars": 390,
"preview": "(* fsharp (* example *) *)\nmodule Test =\n let (*) x y = (x + y)\n let func1 x = \n if x < 100 then\n "
},
{
"path": "demo/kitchen-sink/docs/fsl.fsl",
"chars": 1180,
"preview": "machine_name : \"BGP\";\nmachine_version : 1.0.0;\n\nmachine_author : \"John Haugeland <stonecypher@gmail.com>\";\nmac"
},
{
"path": "demo/kitchen-sink/docs/ftl.ftl",
"chars": 1017,
"preview": "<#ftl encoding=\"utf-8\" />\n<#setting locale=\"en_US\" />\n<#import \"library\" as lib />\n<#--\n FreeMarker comment\n ${abc"
},
{
"path": "demo/kitchen-sink/docs/gcode.gcode",
"chars": 521,
"preview": "O003 (DIAMOND SQUARE)\nN2 G54 G90 G49 G80\nN3 M6 T1 (1.ENDMILL)\nN4 M3 S1800\nN5 G0 X-.6 Y2.050\nN6 G43 H1 Z.1\nN7 G1 Z-.3 F"
},
{
"path": "demo/kitchen-sink/docs/gherkin.feature",
"chars": 699,
"preview": "@these @_are_ @tags\nFeature: Serve coffee\n Coffee should not be served until paid for\n Coffee should not be served unt"
},
{
"path": "demo/kitchen-sink/docs/glsl.glsl",
"chars": 512,
"preview": "uniform float amplitude;\nattribute float displacement;\nvarying vec3 vNormal;\n\nvoid main() {\n\n vNormal = normal;\n \n "
},
{
"path": "demo/kitchen-sink/docs/gobstones.gbs",
"chars": 4219,
"preview": "/*\n * A Gobstones implementation of Conwey's Game of Life\n * that tries to use most of Gobstones syntax.\n *\n * Check out"
},
{
"path": "demo/kitchen-sink/docs/golang.go",
"chars": 641,
"preview": "// Concurrent computation of pi.\n// See http://goo.gl/ZuTZM.\n//\n// This demonstrates Go's ability to handle\n// large num"
},
{
"path": "demo/kitchen-sink/docs/graphqlschema.gql",
"chars": 1265,
"preview": "# Main Schema\nschema {\n\tquery: Query;\n}\n\nscalar Date;\n\n# Simple type to contain all scalar types\ntype AllTypes {\n\t# Fiel"
},
{
"path": "demo/kitchen-sink/docs/groovy.groovy",
"chars": 1080,
"preview": "//http://groovy.codehaus.org/Martin+Fowler%27s+closure+examples+in+Groovy\n\nclass Employee {\n def name, salary\n boo"
},
{
"path": "demo/kitchen-sink/docs/haml.haml",
"chars": 1240,
"preview": "!!!5\n\n/[if IE]\n %a{ :href => 'http://www.mozilla.com/en-US/firefox/' }\n %h1 Get Firefox\n\n-# This is a HAML comment. "
},
{
"path": "demo/kitchen-sink/docs/handlebars.hbs",
"chars": 173,
"preview": "{{!-- Ace + :-}} --}}\n\n<div id=\"comments\">\n {{#each comments}}\n <h2><a href=\"/posts/{{../permalink}}#{{id}}\">{{title}}"
},
{
"path": "demo/kitchen-sink/docs/haskell.hs",
"chars": 512,
"preview": "-- Type annotation (optional)\nfib :: Int -> Integer\n \n-- With self-referencing data\nfib n = fibs !! n\n where fibs"
},
{
"path": "demo/kitchen-sink/docs/haskell_cabal.cabal",
"chars": 2593,
"preview": "name: reload\nversion: 0.1.0.0\nsynopsis: Initial project template from stack\nDescri"
},
{
"path": "demo/kitchen-sink/docs/haxe.hx",
"chars": 447,
"preview": "class Haxe \n{\n public static function main() \n {\n // Say Hello!\n var greeting:String = \"Hello World\""
},
{
"path": "demo/kitchen-sink/docs/hjson.hjson",
"chars": 319,
"preview": "{\n # specify rate in requests/second (because comments are helpful!)\n rate: 1000\n\n // prefer c-style comments?\n /* f"
},
{
"path": "demo/kitchen-sink/docs/htaccess",
"chars": 229,
"preview": "Redirect /linux http://www.linux.org\nRedirect 301 /kernel http://www.linux.org\n\n# comment\nRewriteEngine on\n\nRewriteCond "
},
{
"path": "demo/kitchen-sink/docs/html.html",
"chars": 313,
"preview": "<!DOCTYPE html>\n<html>\n <head>\n\n <style type=\"text/css\">\n .text-layer {\n font-family: Monaco, \"C"
},
{
"path": "demo/kitchen-sink/docs/html_elixir.eex",
"chars": 595,
"preview": "<h1>Listing Books</h1>\n \n<table>\n <tr>\n <th>Title</th>\n <th>Summary</th>\n <th></th>\n <th></th>\n <th></th"
},
{
"path": "demo/kitchen-sink/docs/html_ruby.erb",
"chars": 518,
"preview": "<h1>Listing Books</h1>\n \n<table>\n <tr>\n <th>Title</th>\n <th>Summary</th>\n <th></th>\n <th></th>\n <th></th"
},
{
"path": "demo/kitchen-sink/docs/ini.ini",
"chars": 74,
"preview": "[.ShellClassInfo]\nIconResource=..\\logo.png\n[ViewState]\nFolderType=Generic\n"
},
{
"path": "demo/kitchen-sink/docs/io.io",
"chars": 140,
"preview": "// computes factorial of a number\nfactorial := method(n,\n if(n == 0, return 1)\n res := 1\n Range 1 to(n) foreach"
},
{
"path": "demo/kitchen-sink/docs/ion.ion",
"chars": 1391,
"preview": "// Comment\n/*\nMulti\nLine\nComment\n*/\n[1,2,3,45 /*TODO: should be 42, obviously*/, 2016-04-21T08:10:46Z, 2016-04-21T08:10:"
},
{
"path": "demo/kitchen-sink/docs/jack.jack",
"chars": 4760,
"preview": "vars it, p\n\np = {label, value|\n print(\"\\n\" + label)\n print(inspect(value))\n}\n-- Create an array from 0 to 15\np(\"range\""
},
{
"path": "demo/kitchen-sink/docs/jade.jade",
"chars": 584,
"preview": "!!!doctype\n!!!5\n!!!\n\ninclude something\n\n include another_thing\n\n // let's talk about it\n\n// \n here it is. a bl"
},
{
"path": "demo/kitchen-sink/docs/java.java",
"chars": 1427,
"preview": "import java.util.ArrayList;\nimport java.util.Vector;\n\npublic class InfiniteLoop {\n\n /*\n * This will cause the pro"
},
{
"path": "demo/kitchen-sink/docs/javascript.js",
"chars": 180,
"preview": "/**\n * \n * @param {string[]} items\n * @param nada\n */\nfunction foo(items, nada) {\n for (var i=0; i<items.length; i++)"
},
{
"path": "demo/kitchen-sink/docs/jexl.jexl",
"chars": 387,
"preview": "#pragma execution.option 42\n\n##\n## This is a test script\n##\n\n/* This is\na multi-line\ncomment\n*/\nif (out != null and resu"
},
{
"path": "demo/kitchen-sink/docs/json.json",
"chars": 1304,
"preview": "{\n \"query\": {\n \"count\": 10,\n \"created\": \"2011-06-21T08:10:46Z\",\n \"lang\": \"en-US\",\n \"results\": {\n \"photo\": [\n {\n"
},
{
"path": "demo/kitchen-sink/docs/json5.json5",
"chars": 411,
"preview": "{\n foo: 'bar',\n while: true,\n\n this: 'is a \\\nmulti-line string',\n\n // this is an inline comment\n here: 'is another'"
},
{
"path": "demo/kitchen-sink/docs/jsoniq.jq",
"chars": 2235,
"preview": "(: Single line comment :)\n\n(:\n : Multi-line comment block\n : JSONiq uses XQuery-style comments\n :)\n\nlet $string := \"Hell"
},
{
"path": "demo/kitchen-sink/docs/jsp.jsp",
"chars": 2709,
"preview": "<%-- initial comment --%>\n<%@ page import=\"java.util.Date\" %>\n<%--@ page isELIgnored=\"true\" //Now EL will be ignored -"
},
{
"path": "demo/kitchen-sink/docs/jssm.jssm",
"chars": 561,
"preview": "\nmachine_name : \"Three-state traffic light, plus off and flash-red\";\nmachine_version : 1.2.1;\n\njssm_version : >= 5"
},
{
"path": "demo/kitchen-sink/docs/jsx.jsx",
"chars": 178,
"preview": "import * as React from \"react\";\n\nexport default () => {\n return (\n <div variant=\"p\">\n Keywords here are not hig"
},
{
"path": "demo/kitchen-sink/docs/julia.jl",
"chars": 209,
"preview": "for op = (:+, :*, :&, :|, :$)\n @eval ($op)(a,b,c) = ($op)(($op)(a,b),c)\nend\n\nv = α';\nfunction g(x,y)\n return x * y\n x"
},
{
"path": "demo/kitchen-sink/docs/kotlin.kt",
"chars": 3641,
"preview": "#!/usr/bin/env kotlinc -script\n\n/*Taken from http://try.kotlinlang.org/#/Examples/Longer%20examples/Life/Life.kt*/\n/**\n "
},
{
"path": "demo/kitchen-sink/docs/latex.tex",
"chars": 875,
"preview": "\\usepackage{amsmath}\n\\title{\\LaTeX}\n\\date{}\n\\begin{document}\n \\maketitle\n \\LaTeX{} is a document preparation system fo"
},
{
"path": "demo/kitchen-sink/docs/latte.latte",
"chars": 794,
"preview": "<!doctype html>\n<html>\n <head>\n <title>{$title}</title>\n {* \n \tcomment\n *}\n </head>\n "
},
{
"path": "demo/kitchen-sink/docs/less.less",
"chars": 552,
"preview": "/* styles.less */\n\n@base: #f938ab;\n\n.box-shadow(@style, @c) when (iscolor(@c)) {\n box-shadow: @style @c;\n "
},
{
"path": "demo/kitchen-sink/docs/liquid.liquid",
"chars": 2853,
"preview": "There are a couple of different Liquid variations in circulation. This grammars supports\nboth the Standard and Shopify L"
},
{
"path": "demo/kitchen-sink/docs/lisp.lisp",
"chars": 632,
"preview": "(defun prompt-for-cd ()\n \"Prompts\n for CD\"\n (prompt-read \"Title\" 1.53 1 2/4 1.7 1.7e0 2.9E-4 +42 -7 #b001 #b001/1"
},
{
"path": "demo/kitchen-sink/docs/livescript.ls",
"chars": 5745,
"preview": "# Defines an editing mode for [Ace](https://ace.c9.io).\n#\n# Open [test/ace.html](../test/ace.html) to test.\n\nrequire, ex"
},
{
"path": "demo/kitchen-sink/docs/logiql.logic",
"chars": 399,
"preview": "// ancestors\nparentof(\"douglas\", \"john\").\nparentof(\"john\", \"bob\").\nparentof(\"bob\", \"ebbon\").\n\nparentof(\"douglas\", \"jane\""
},
{
"path": "demo/kitchen-sink/docs/logtalk.lgt",
"chars": 599,
"preview": ":- object(bottles).\n\n\t:- initialization(sing(99)).\n\n\tsing(0) :-\n\t\twrite('No more bottles of beer on the wall, no more bo"
},
{
"path": "demo/kitchen-sink/docs/lsl.lsl",
"chars": 2080,
"preview": "/*\n Testing syntax highlighting\n of Ace Editor\n for the Linden Scripting Language\n*/\n\ninteger someIntNormal "
},
{
"path": "demo/kitchen-sink/docs/lua.lua",
"chars": 983,
"preview": "--[[--\nnum_args takes in 5.1 byte code and extracts the number of arguments\nfrom its function header.\n--]]--\n\nfunction i"
},
{
"path": "demo/kitchen-sink/docs/luapage.lp",
"chars": 1863,
"preview": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html>"
},
{
"path": "demo/kitchen-sink/docs/lucene.lucene",
"chars": 51,
"preview": "(title:\"foo bar\" AND body:\"quick fox\") OR title:fox"
},
{
"path": "demo/kitchen-sink/docs/markdown.md",
"chars": 7733,
"preview": "Ace (Ajax.org Cloud9 Editor)\n============================\n\nAce is a standalone code editor written in JavaScript. Our go"
},
{
"path": "demo/kitchen-sink/docs/mask.mask",
"chars": 597,
"preview": "/* Mask Syntax Demo */\n\ndiv > ' Test ~[name]';\n\ndefine :userProfile {\n\theader {\n\t\th4 > @title;\n\t\tbutton.close;\n\t}\n}\n\n:us"
},
{
"path": "demo/kitchen-sink/docs/matlab.matlab",
"chars": 203,
"preview": "%{\n %{\n Ace Matlab demo\n %}\n%}\n\nclassdef hello\n methods\n function greet(this)\n disp('Hello!') %"
},
{
"path": "demo/kitchen-sink/docs/maze.mz",
"chars": 401,
"preview": "## ## () ## ^^ ## ## ## ##\n## H1 C2 S1 <> S2 H2 DN ##\n## %U <> %D *2 %L IZ .. ##\n## ## ## .. ## DN *3 ## ##\n## ## ## %R "
},
{
"path": "demo/kitchen-sink/docs/mediawiki.wiki",
"chars": 1743,
"preview": "{{Languages}}\n\n'''Ace''' is a standalone code editor written in [[wikipedia:JavaScript|JavaScript]]. Our goal is to crea"
},
{
"path": "demo/kitchen-sink/docs/mel.mel",
"chars": 945,
"preview": "// animated duplicates, instances script\nproc animatedDuplication (int $rangeStart, int $rangeEnd, int $numOfDuplicates,"
},
{
"path": "demo/kitchen-sink/docs/mips.s",
"chars": 943,
"preview": "# Original source from https://eng.libretexts.org\n# Kann, Charles W., \"Introduction To MIPS Assembly Language Programmin"
},
{
"path": "demo/kitchen-sink/docs/mixal.mixal",
"chars": 136,
"preview": "* PROGRAM START\nΔSTART LDA 2000 LOAD A FROM CELL 2000\n CMP7 =15=\n12345 HLT\n END START\nABC"
},
{
"path": "demo/kitchen-sink/docs/mushcode.mc",
"chars": 1751,
"preview": "@create phone\n&pickup phone=$pick up:@ifelse [u(is,u(mode),ICC)]={@pemit %#=You pick up the [fullname(me)].[set(me,PHONE"
},
{
"path": "demo/kitchen-sink/docs/mysql.mysql",
"chars": 3813,
"preview": "-- Single line comment\n\n/*\n * Multi-line comment block\n *\n */\n\n# Hash-style comment (MySQL specific)\n\n-- Database and Ta"
},
{
"path": "demo/kitchen-sink/docs/nasal.nas",
"chars": 177,
"preview": "var sayHello = func(names, favorite) {\n foreach (var name; names) {\n printf(\"Hello %s, %s is the best!\", name, favor"
},
{
"path": "demo/kitchen-sink/docs/nginx.nginx",
"chars": 1833,
"preview": "user www www; ## Default: nobody\nworker_processes 5; ## Default: 1\nerror_log logs/error.log;\npid logs/n"
},
{
"path": "demo/kitchen-sink/docs/nim.nim",
"chars": 354,
"preview": "#[ #[ Multiline comment in already\n commented out code. ]#\nproc p[T](x: T) = discard\n]#\necho \"This is code\"\nvar\n p"
},
{
"path": "demo/kitchen-sink/docs/nix.nix",
"chars": 2212,
"preview": "{\n # Name of our deployment\n network.description = \"HelloWorld\";\n # Enable rolling back to previous versions of our i"
},
{
"path": "demo/kitchen-sink/docs/nsis.nsi",
"chars": 486,
"preview": "/*\n NSIS Mode\n for Ace\n*/\n\n; Includes\n!include MUI2.nsh\n\n; Settings\nName \"installer_name\"\nOutFile \"installer_name.exe\""
},
{
"path": "demo/kitchen-sink/docs/nunjucks.nunjucks",
"chars": 2463,
"preview": "{{ foo.bar }}\n{{ foo[\"bar\"] }}\n{{ foo | title }}\n{{ foo | join(\",\") }}\n{{ foo | replace(\"foo\", \"bar\") | capitalize }}\n{%"
},
{
"path": "demo/kitchen-sink/docs/objectivec.m",
"chars": 2672,
"preview": "@protocol Printing: someParent\n-(void) print;\n@end\n\n@interface Fraction: NSObject <Printing, NSCopying> {\n int numera"
},
{
"path": "demo/kitchen-sink/docs/ocaml.ml",
"chars": 539,
"preview": "(*\n * Example of early return implementation taken from\n * http://ocaml.janestreet.com/?q=node/91\n *)\n\nlet with_return ("
},
{
"path": "demo/kitchen-sink/docs/odin.odin",
"chars": 417,
"preview": "package main\n\nimport \"core:fmt\"\n\nmain :: proc() {\n\tprogram := \"+ + * 😃 - /\"\n\taccumulator := 0\n\n\tfor token in program {\n\t"
},
{
"path": "demo/kitchen-sink/docs/partiql.partiql",
"chars": 1635,
"preview": "-- comment\n/* multi\n line\n comment */\n\nSELECT \"a\", b, c FROM stuff s INNER CROSS JOIN @s WHERE f(s) -- comment\n-- c"
},
{
"path": "demo/kitchen-sink/docs/pascal.pas",
"chars": 1412,
"preview": "(*****************************************************************************\n * A simple bubble sort program. Reads i"
},
{
"path": "demo/kitchen-sink/docs/perl.pl",
"chars": 703,
"preview": "#!/usr/bin/perl\n=begin\n perl example code for Ace\n=cut\n\nuse v5.10;\nuse strict;\nuse warnings;\n\nuse List::Util qw(first);\n"
},
{
"path": "demo/kitchen-sink/docs/pgsql.pgsql",
"chars": 2667,
"preview": "\nBEGIN;\n\n/**\n* Samples from PostgreSQL src/tutorial/basics.source\n*/\nCREATE TABLE weather (\n\tcity\t\tvarchar(80),\n\ttemp_lo"
},
{
"path": "demo/kitchen-sink/docs/php.php",
"chars": 351,
"preview": "<?php\n\nfunction nfact($n) {\n if ($n == 0) {\n return 1;\n }\n else {\n return $n * nfact($n - 1);\n "
},
{
"path": "demo/kitchen-sink/docs/php_laravel_blade.blade.php",
"chars": 1804,
"preview": "<!-- Stored in resources/views/layouts/app.blade.php -->\n\n<html>\n <head>\n <title>App Name - @yield('title')</t"
},
{
"path": "demo/kitchen-sink/docs/pig.pig",
"chars": 277,
"preview": "A = load 'mobydick.txt';\nB = foreach A generate flatten(TOKENIZE((chararray)$0)) as word;\nC = filter B by word matches '"
},
{
"path": "demo/kitchen-sink/docs/plaintext.txt",
"chars": 3008,
"preview": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magn"
},
{
"path": "demo/kitchen-sink/docs/plsql.plsql",
"chars": 381,
"preview": "create table t (\n id integer, \n month varchar(3), \n value integer\n);\n\ninsert into t (month, value) values ('jan"
},
{
"path": "demo/kitchen-sink/docs/powershell.ps1",
"chars": 1701,
"preview": "# This is a simple comment\nfunction Hello($name) {\n Write-host \"Hello $name\"\n}\n\nfunction add($left, $right=4) {\n if "
},
{
"path": "demo/kitchen-sink/docs/praat.praat",
"chars": 4016,
"preview": "form Highlighter test\n sentence My_sentence This should all be a string\n text My_text This should also all be a string"
},
{
"path": "demo/kitchen-sink/docs/prisma.prisma",
"chars": 8345,
"preview": "generator photon {\n provider = \"photonjs\"\n}\n\nmodel User {\n id String @default(cuid()) @id\n "
},
{
"path": "demo/kitchen-sink/docs/prolog.plg",
"chars": 498,
"preview": "partition([], _, [], []).\npartition([X|Xs], Pivot, Smalls, Bigs) :-\n ( X @< Pivot ->\n Smalls = [X|Rest],\n "
},
{
"path": "demo/kitchen-sink/docs/properties.properties",
"chars": 589,
"preview": "# You are reading the \".properties\" entry.\n! The exclamation mark can also mark text as comments.\n# The key and element "
},
{
"path": "demo/kitchen-sink/docs/protobuf.proto",
"chars": 274,
"preview": "message Point {\n required int32 x = 1;\n required int32 y = 2;\n optional string label = 3;\n}\n\nmessage Line {\n require"
},
{
"path": "demo/kitchen-sink/docs/prql.prql",
"chars": 435,
"preview": "from invoices\nfilter invoice_date >= @1970-01-16\nderive {\n transaction_fees = 0.8,\n income = total - transaction_fees\n"
},
{
"path": "demo/kitchen-sink/docs/puppet.epp",
"chars": 1393,
"preview": "define apache::vhost ($port, $docroot, $servername = $title, $vhost_name = '*') {\n include apache\n include apache::par"
},
{
"path": "demo/kitchen-sink/docs/python.py",
"chars": 478,
"preview": "#!/usr/local/bin/python\n\nimport string, sys\n\n# If no arguments were given, print a helpful message\nif len(sys.argv)==1:\n"
},
{
"path": "demo/kitchen-sink/docs/qml.qml",
"chars": 433,
"preview": "// A simple example\nimport QtQuick 2.7\nimport QtQuick.Controls 2.3\n\nRectangle {\n color: \"red\"\n anchors.fill: paren"
},
{
"path": "demo/kitchen-sink/docs/r.r",
"chars": 648,
"preview": "Call:\nlm(formula = y ~ x)\n \nResiduals:\n1 2 3 4 5 6\n3.3333 -0.6667 -2.6667 -2.6667 -0.6667 "
},
{
"path": "demo/kitchen-sink/docs/raku.raku",
"chars": 1122,
"preview": "=begin comment\nRaku example for ace\n=end comment\nclass Cook is Employee {\n has @.utensils is rw;\n has @.cookbooks"
},
{
"path": "demo/kitchen-sink/docs/razor.cshtml",
"chars": 68,
"preview": "@* razor mode *@\n@{\n\tLayout = \"~/layout\"\n\t@: <a>\n\t@Layout\n\t@: </a>\n}"
},
{
"path": "demo/kitchen-sink/docs/rdoc.Rd",
"chars": 1777,
"preview": "\\name{picker}\n\\alias{picker}\n\\title{Create a picker control}\n\\description{\n Create a picker control to enable manipulat"
},
{
"path": "demo/kitchen-sink/docs/red.red",
"chars": 1848,
"preview": "Red []\ninfo: func ['fn /name /intro /args /refinements /locals /return /spec \n\t/arg-num /arg-names /arg-types /ref-name"
},
{
"path": "demo/kitchen-sink/docs/rhtml.Rhtml",
"chars": 476,
"preview": "<html>\n\n<head>\n<title>Title</title>\n</head>\n\n<body>\n\n<p>This is an R HTML document. When you click the <b>Knit HTML</b> "
},
{
"path": "demo/kitchen-sink/docs/robot.robot",
"chars": 6735,
"preview": "*** Settings ***\nDocumentation Robot Framework 4 syntax recipes cheat sheet robot.\n... Demonstrates Ro"
},
{
"path": "demo/kitchen-sink/docs/rst.rst",
"chars": 11359,
"preview": "==========================================\n*reStructuredText* Highlighter for **Ace**\n=================================="
},
{
"path": "demo/kitchen-sink/docs/ruby.rb",
"chars": 531,
"preview": "#!/usr/bin/ruby\n\n# Program to find the factorial of a number\ndef fact(n)\n if n == 0\n 1\n else\n n * fa"
},
{
"path": "demo/kitchen-sink/docs/rust.rs",
"chars": 1891,
"preview": "use core::rand::RngUtil;\n\nfn main() {\n for [\"Alice\", \"Bob\", \"Carol\"].each |&name| {\n do spawn {\n le"
},
{
"path": "demo/kitchen-sink/docs/sac.sac",
"chars": 1395,
"preview": "/*****************************************************************************\n *\n * SAC demo program\n *\n * This SAC"
},
{
"path": "demo/kitchen-sink/docs/sass.sass",
"chars": 770,
"preview": "// sass ace mode;\n\n@import url(http://fonts.googleapis.com/css?family=Ace:700)\n\nhtml, body\n :background-color #ace\n te"
},
{
"path": "demo/kitchen-sink/docs/scad.scad",
"chars": 333,
"preview": "// ace can highlight scad!\nmodule Element(xpos, ypos, zpos){\n\ttranslate([xpos,ypos,zpos]){\n\t\tunion(){\n\t\t\tcube([10,10,4],"
},
{
"path": "demo/kitchen-sink/docs/scala.scala",
"chars": 1541,
"preview": "// http://www.scala-lang.org/node/54\n\npackage examples.actors\n\nimport scala.actors.Actor\nimport scala.actors.Actor._\n\nab"
},
{
"path": "demo/kitchen-sink/docs/scheme.scm",
"chars": 559,
"preview": "(define (prompt-for-cd)\n \"Prompts\n for CD\"\n (prompt-read \"Title\" 1.53 1 2/4 1.7 1.7e0 2.9E-4 +42 -7 #b001 #b001/1"
},
{
"path": "demo/kitchen-sink/docs/scrypt.scrypt",
"chars": 1182,
"preview": "// https://github.com/sCrypt-Inc/boilerplate/blob/master/contracts/ackermann.scrypt\n\ncontract Ackermann {\n int a; // "
},
{
"path": "demo/kitchen-sink/docs/scss.scss",
"chars": 393,
"preview": "/* style.scss */\n\n#navbar {\n $navbar-width: 800px;\n $items: 5;\n $navbar-color: #ce4dd6;\n\n width: $navbar-wid"
},
{
"path": "demo/kitchen-sink/docs/sh.sh",
"chars": 1154,
"preview": "#!/bin/sh\n\n# Script to open a browser to current branch\n# Repo formats:\n# ssh git@github.com:richo/gh_pr.git\n# http h"
},
{
"path": "demo/kitchen-sink/docs/sjs.sjs",
"chars": 660,
"preview": "var { each, map } = require('sjs:sequence');\nvar { get } = require('sjs:http');\n\nfunction foo(items, nada) {\n var com"
},
{
"path": "demo/kitchen-sink/docs/slim.slim",
"chars": 762,
"preview": "doctype html\nhtml\n head\n title Slim Examples\n meta name=\"keywords\" content=\"template language\"\n meta name=\"aut"
},
{
"path": "demo/kitchen-sink/docs/smarty.smarty",
"chars": 193,
"preview": "{foreach $foo as $bar}\n <a href=\"{$bar.zig}\">{$bar.zag}</a>\n <a href=\"{$bar.zig2}\">{$bar.zag2}</a>\n <a href=\"{$bar.zi"
}
]
// ... and 1231 more files (download for full content)
About this extraction
This page contains the full source code of the ajaxorg/ace GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1431 files (9.3 MB), approximately 2.5M tokens, and a symbol index with 3272 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.