I'm trying to make an editor where one can choose the mode before starting the program. I'm using the npm packages react-ace
and brace
for my project. The problem is, that the brace documentation suggests importing the modes one using e.g. import 'brace/mode/java';
, but I ideally want to support all ace modes.
Does anyone know whether this is possible?
I had the same problem. I didn't come up with a better solution, but here's what works for me.
Please note that these 143 imports sum up to 6+ MB.
editor.js:
import 'acemodes'
/*
...
*/
acemodes.js:
/*
cmd to reproduce: ls node_modules/brace/mode/ | awk '{split($9, s, "."); print "import \"brace/mode/"s[1]"\";"}'
*/
import 'brace/mode/ada';
import 'brace/mode/apache_conf';
import 'brace/mode/applescript';
import 'brace/mode/asciidoc';
import 'brace/mode/assembly_x86';
import 'brace/mode/autohotkey';
import 'brace/mode/batchfile';
import 'brace/mode/bro';
import 'brace/mode/c9search';
import 'brace/mode/c_cpp';
import 'brace/mode/cirru';
import 'brace/mode/clojure';
import 'brace/mode/cobol';
import 'brace/mode/coffee';
import 'brace/mode/coldfusion';
import 'brace/mode/csharp';
import 'brace/mode/css';
import 'brace/mode/curly';
import 'brace/mode/dart';
import 'brace/mode/django';
import 'brace/mode/d';
import 'brace/mode/dockerfile';
import 'brace/mode/dot';
import 'brace/mode/drools';
import 'brace/mode/eiffel';
import 'brace/mode/ejs';
import 'brace/mode/elixir';
import 'brace/mode/elm';
import 'brace/mode/erlang';
import 'brace/mode/forth';
import 'brace/mode/fortran';
import 'brace/mode/ftl';
import 'brace/mode/gcode';
import 'brace/mode/gherkin';
import 'brace/mode/gitignore';
import 'brace/mode/glsl';
import 'brace/mode/gobstones';
import 'brace/mode/golang';
import 'brace/mode/groovy';
import 'brace/mode/haml';
import 'brace/mode/handlebars';
import 'brace/mode/haskell_cabal';
import 'brace/mode/haskell';
import 'brace/mode/haxe';
import 'brace/mode/hjson';
import 'brace/mode/html_elixir';
import 'brace/mode/html';
import 'brace/mode/html_ruby';
import 'brace/mode/ini';
import 'brace/mode/io';
import 'brace/mode/jack';
import 'brace/mode/jade';
import 'brace/mode/java';
import 'brace/mode/javascript';
import 'brace/mode/jsoniq';
import 'brace/mode/json';
import 'brace/mode/jsp';
import 'brace/mode/jsx';
import 'brace/mode/julia';
import 'brace/mode/kotlin';
import 'brace/mode/latex';
import 'brace/mode/less';
import 'brace/mode/liquid';
import 'brace/mode/lisp';
import 'brace/mode/logiql';
import 'brace/mode/lsl';
import 'brace/mode/lua';
import 'brace/mode/luapage';
import 'brace/mode/lucene';
import 'brace/mode/makefile';
import 'brace/mode/markdown';
import 'brace/mode/mask';
import 'brace/mode/matlab';
import 'brace/mode/maze';
import 'brace/mode/mel';
import 'brace/mode/mushcode';
import 'brace/mode/mysql';
import 'brace/mode/nix';
import 'brace/mode/nsis';
import 'brace/mode/objectivec';
import 'brace/mode/ocaml';
import 'brace/mode/pascal';
import 'brace/mode/perl';
import 'brace/mode/pgsql';
import 'brace/mode/php';
import 'brace/mode/powershell';
import 'brace/mode/praat';
import 'brace/mode/prolog';
import 'brace/mode/properties';
import 'brace/mode/protobuf';
import 'brace/mode/python';
import 'brace/mode/razor';
import 'brace/mode/rdoc';
import 'brace/mode/rhtml';
import 'brace/mode/r';
import 'brace/mode/rst';
import 'brace/mode/ruby';
import 'brace/mode/rust';
import 'brace/mode/sass';
import 'brace/mode/scad';
import 'brace/mode/scala';
import 'brace/mode/scheme';
import 'brace/mode/scss';
import 'brace/mode/sh';
import 'brace/mode/sjs';
import 'brace/mode/smarty';
import 'brace/mode/snippets';
import 'brace/mode/soy_template';
import 'brace/mode/space';
import 'brace/mode/sql';
import 'brace/mode/sqlserver';
import 'brace/mode/stylus';
import 'brace/mode/svg';
import 'brace/mode/swift';
import 'brace/mode/tcl';
import 'brace/mode/tex';
import 'brace/mode/textile';
import 'brace/mode/toml';
import 'brace/mode/tsx';
import 'brace/mode/twig';
import 'brace/mode/typescript';
import 'brace/mode/vala';
import 'brace/mode/vbscript';
import 'brace/mode/velocity';
import 'brace/mode/verilog';
import 'brace/mode/vhdl';
import 'brace/mode/wollok';
import 'brace/mode/xml';
import 'brace/mode/xquery';
import 'brace/mode/yaml';
import 'brace/mode/abap';
import 'brace/mode/abc';
import 'brace/mode/actionscript';
import 'brace/mode/lean';
import 'brace/mode/live_script';
import 'brace/mode/livescript';
import 'brace/mode/mavens_mate_log';
import 'brace/mode/mips_assembler';
import 'brace/mode/mipsassembler';
import 'brace/mode/swig';
import 'brace/mode/diff';
import 'brace/mode/plain_text';
import 'brace/mode/text';