qword 0.1.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (363) hide show
  1. package/ChangeLog +5 -0
  2. package/README.md +29 -27
  3. package/assets/index.html +3 -4
  4. package/bin/{dword.js → qword.js} +8 -4
  5. package/client/_init-socket.js +9 -10
  6. package/client/loadremote.js +2 -2
  7. package/client/qword.js +432 -0
  8. package/dist/qword.js +2 -0
  9. package/dist/qword.js.map +1 -0
  10. package/dist-dev/qword.js +1038 -0
  11. package/json/modules.json +1 -1
  12. package/package.json +15 -5
  13. package/server/edit.js +2 -2
  14. package/server/index.js +6 -6
  15. package/client/dword.js +0 -717
  16. package/codemirror/codemirror.js +0 -3
  17. package/modules/codemirror/AUTHORS +0 -992
  18. package/modules/codemirror/CHANGELOG.md +0 -2290
  19. package/modules/codemirror/CONTRIBUTING.md +0 -97
  20. package/modules/codemirror/LICENSE +0 -21
  21. package/modules/codemirror/README.md +0 -48
  22. package/modules/codemirror/addon/comment/comment.js +0 -211
  23. package/modules/codemirror/addon/comment/continuecomment.js +0 -114
  24. package/modules/codemirror/addon/dialog/dialog.css +0 -32
  25. package/modules/codemirror/addon/dialog/dialog.js +0 -163
  26. package/modules/codemirror/addon/display/autorefresh.js +0 -47
  27. package/modules/codemirror/addon/display/fullscreen.css +0 -6
  28. package/modules/codemirror/addon/display/fullscreen.js +0 -41
  29. package/modules/codemirror/addon/display/panel.js +0 -133
  30. package/modules/codemirror/addon/display/placeholder.js +0 -78
  31. package/modules/codemirror/addon/display/rulers.js +0 -51
  32. package/modules/codemirror/addon/edit/closebrackets.js +0 -201
  33. package/modules/codemirror/addon/edit/closetag.js +0 -185
  34. package/modules/codemirror/addon/edit/continuelist.js +0 -101
  35. package/modules/codemirror/addon/edit/matchbrackets.js +0 -160
  36. package/modules/codemirror/addon/edit/matchtags.js +0 -66
  37. package/modules/codemirror/addon/edit/trailingspace.js +0 -27
  38. package/modules/codemirror/addon/fold/brace-fold.js +0 -119
  39. package/modules/codemirror/addon/fold/comment-fold.js +0 -59
  40. package/modules/codemirror/addon/fold/foldcode.js +0 -159
  41. package/modules/codemirror/addon/fold/foldgutter.css +0 -20
  42. package/modules/codemirror/addon/fold/foldgutter.js +0 -169
  43. package/modules/codemirror/addon/fold/indent-fold.js +0 -48
  44. package/modules/codemirror/addon/fold/markdown-fold.js +0 -49
  45. package/modules/codemirror/addon/fold/xml-fold.js +0 -184
  46. package/modules/codemirror/addon/hint/anyword-hint.js +0 -41
  47. package/modules/codemirror/addon/hint/css-hint.js +0 -66
  48. package/modules/codemirror/addon/hint/html-hint.js +0 -351
  49. package/modules/codemirror/addon/hint/javascript-hint.js +0 -162
  50. package/modules/codemirror/addon/hint/show-hint.css +0 -37
  51. package/modules/codemirror/addon/hint/show-hint.js +0 -523
  52. package/modules/codemirror/addon/hint/sql-hint.js +0 -304
  53. package/modules/codemirror/addon/hint/xml-hint.js +0 -132
  54. package/modules/codemirror/addon/lint/coffeescript-lint.js +0 -47
  55. package/modules/codemirror/addon/lint/css-lint.js +0 -40
  56. package/modules/codemirror/addon/lint/html-lint.js +0 -59
  57. package/modules/codemirror/addon/lint/javascript-lint.js +0 -65
  58. package/modules/codemirror/addon/lint/json-lint.js +0 -40
  59. package/modules/codemirror/addon/lint/lint.css +0 -79
  60. package/modules/codemirror/addon/lint/lint.js +0 -288
  61. package/modules/codemirror/addon/lint/yaml-lint.js +0 -41
  62. package/modules/codemirror/addon/merge/merge.css +0 -119
  63. package/modules/codemirror/addon/merge/merge.js +0 -1018
  64. package/modules/codemirror/addon/mode/loadmode.js +0 -66
  65. package/modules/codemirror/addon/mode/multiplex.js +0 -136
  66. package/modules/codemirror/addon/mode/multiplex_test.js +0 -49
  67. package/modules/codemirror/addon/mode/overlay.js +0 -90
  68. package/modules/codemirror/addon/mode/simple.js +0 -216
  69. package/modules/codemirror/addon/runmode/colorize.js +0 -40
  70. package/modules/codemirror/addon/runmode/runmode-standalone.js +0 -334
  71. package/modules/codemirror/addon/runmode/runmode.js +0 -76
  72. package/modules/codemirror/addon/runmode/runmode.node.js +0 -329
  73. package/modules/codemirror/addon/scroll/annotatescrollbar.js +0 -128
  74. package/modules/codemirror/addon/scroll/scrollpastend.js +0 -48
  75. package/modules/codemirror/addon/scroll/simplescrollbars.css +0 -66
  76. package/modules/codemirror/addon/scroll/simplescrollbars.js +0 -152
  77. package/modules/codemirror/addon/search/jump-to-line.js +0 -53
  78. package/modules/codemirror/addon/search/match-highlighter.js +0 -167
  79. package/modules/codemirror/addon/search/matchesonscrollbar.css +0 -8
  80. package/modules/codemirror/addon/search/matchesonscrollbar.js +0 -97
  81. package/modules/codemirror/addon/search/search.js +0 -295
  82. package/modules/codemirror/addon/search/searchcursor.js +0 -305
  83. package/modules/codemirror/addon/selection/active-line.js +0 -72
  84. package/modules/codemirror/addon/selection/mark-selection.js +0 -119
  85. package/modules/codemirror/addon/selection/selection-pointer.js +0 -98
  86. package/modules/codemirror/addon/tern/tern.css +0 -87
  87. package/modules/codemirror/addon/tern/tern.js +0 -756
  88. package/modules/codemirror/addon/tern/worker.js +0 -44
  89. package/modules/codemirror/addon/wrap/hardwrap.js +0 -160
  90. package/modules/codemirror/bin/source-highlight +0 -48
  91. package/modules/codemirror/changes +0 -3
  92. package/modules/codemirror/changes.md +0 -42
  93. package/modules/codemirror/changes.txt +0 -8
  94. package/modules/codemirror/diff +0 -781
  95. package/modules/codemirror/dist/index.cjs +0 -102
  96. package/modules/codemirror/dist/index.d.cts +0 -52
  97. package/modules/codemirror/dist/index.d.ts +0 -52
  98. package/modules/codemirror/dist/index.js +0 -96
  99. package/modules/codemirror/keymap/emacs.js +0 -545
  100. package/modules/codemirror/keymap/sublime.js +0 -720
  101. package/modules/codemirror/keymap/vim.js +0 -5978
  102. package/modules/codemirror/lib/codemirror.css +0 -344
  103. package/modules/codemirror/lib/codemirror.js +0 -9884
  104. package/modules/codemirror/mode/apl/apl.js +0 -174
  105. package/modules/codemirror/mode/asciiarmor/asciiarmor.js +0 -74
  106. package/modules/codemirror/mode/asn.1/asn.1.js +0 -204
  107. package/modules/codemirror/mode/asterisk/asterisk.js +0 -220
  108. package/modules/codemirror/mode/brainfuck/brainfuck.js +0 -85
  109. package/modules/codemirror/mode/clike/clike.js +0 -942
  110. package/modules/codemirror/mode/clojure/clojure.js +0 -293
  111. package/modules/codemirror/mode/cmake/cmake.js +0 -97
  112. package/modules/codemirror/mode/cobol/cobol.js +0 -255
  113. package/modules/codemirror/mode/coffeescript/coffeescript.js +0 -359
  114. package/modules/codemirror/mode/commonlisp/commonlisp.js +0 -125
  115. package/modules/codemirror/mode/crystal/crystal.js +0 -433
  116. package/modules/codemirror/mode/css/css.js +0 -862
  117. package/modules/codemirror/mode/cypher/cypher.js +0 -152
  118. package/modules/codemirror/mode/d/d.js +0 -223
  119. package/modules/codemirror/mode/dart/dart.js +0 -168
  120. package/modules/codemirror/mode/diff/diff.js +0 -47
  121. package/modules/codemirror/mode/django/django.js +0 -356
  122. package/modules/codemirror/mode/dockerfile/dockerfile.js +0 -211
  123. package/modules/codemirror/mode/dtd/dtd.js +0 -142
  124. package/modules/codemirror/mode/dylan/dylan.js +0 -352
  125. package/modules/codemirror/mode/ebnf/ebnf.js +0 -195
  126. package/modules/codemirror/mode/ecl/ecl.js +0 -206
  127. package/modules/codemirror/mode/eiffel/eiffel.js +0 -160
  128. package/modules/codemirror/mode/elm/elm.js +0 -245
  129. package/modules/codemirror/mode/erlang/erlang.js +0 -619
  130. package/modules/codemirror/mode/factor/factor.js +0 -85
  131. package/modules/codemirror/mode/fcl/fcl.js +0 -173
  132. package/modules/codemirror/mode/forth/forth.js +0 -180
  133. package/modules/codemirror/mode/fortran/fortran.js +0 -188
  134. package/modules/codemirror/mode/gas/gas.js +0 -355
  135. package/modules/codemirror/mode/gfm/gfm.js +0 -129
  136. package/modules/codemirror/mode/gherkin/gherkin.js +0 -194
  137. package/modules/codemirror/mode/go/go.js +0 -187
  138. package/modules/codemirror/mode/groovy/groovy.js +0 -245
  139. package/modules/codemirror/mode/haml/haml.js +0 -161
  140. package/modules/codemirror/mode/handlebars/handlebars.js +0 -70
  141. package/modules/codemirror/mode/haskell/haskell.js +0 -268
  142. package/modules/codemirror/mode/haskell-literate/haskell-literate.js +0 -43
  143. package/modules/codemirror/mode/haxe/haxe.js +0 -515
  144. package/modules/codemirror/mode/htmlembedded/htmlembedded.js +0 -37
  145. package/modules/codemirror/mode/htmlmixed/htmlmixed.js +0 -153
  146. package/modules/codemirror/mode/http/http.js +0 -113
  147. package/modules/codemirror/mode/idl/idl.js +0 -290
  148. package/modules/codemirror/mode/javascript/javascript.js +0 -960
  149. package/modules/codemirror/mode/jinja2/jinja2.js +0 -193
  150. package/modules/codemirror/mode/jsx/jsx.js +0 -149
  151. package/modules/codemirror/mode/julia/julia.js +0 -390
  152. package/modules/codemirror/mode/livescript/livescript.js +0 -280
  153. package/modules/codemirror/mode/lua/lua.js +0 -160
  154. package/modules/codemirror/mode/markdown/markdown.js +0 -886
  155. package/modules/codemirror/mode/mathematica/mathematica.js +0 -176
  156. package/modules/codemirror/mode/mbox/mbox.js +0 -129
  157. package/modules/codemirror/mode/meta.js +0 -221
  158. package/modules/codemirror/mode/mirc/mirc.js +0 -193
  159. package/modules/codemirror/mode/mllike/mllike.js +0 -359
  160. package/modules/codemirror/mode/modelica/modelica.js +0 -245
  161. package/modules/codemirror/mode/mscgen/mscgen.js +0 -175
  162. package/modules/codemirror/mode/mumps/mumps.js +0 -148
  163. package/modules/codemirror/mode/nginx/nginx.js +0 -178
  164. package/modules/codemirror/mode/nsis/nsis.js +0 -95
  165. package/modules/codemirror/mode/ntriples/ntriples.js +0 -195
  166. package/modules/codemirror/mode/octave/octave.js +0 -139
  167. package/modules/codemirror/mode/oz/oz.js +0 -252
  168. package/modules/codemirror/mode/pascal/pascal.js +0 -136
  169. package/modules/codemirror/mode/pegjs/pegjs.js +0 -111
  170. package/modules/codemirror/mode/perl/perl.js +0 -836
  171. package/modules/codemirror/mode/php/php.js +0 -234
  172. package/modules/codemirror/mode/pig/pig.js +0 -178
  173. package/modules/codemirror/mode/powershell/powershell.js +0 -398
  174. package/modules/codemirror/mode/properties/properties.js +0 -78
  175. package/modules/codemirror/mode/protobuf/protobuf.js +0 -72
  176. package/modules/codemirror/mode/pug/pug.js +0 -591
  177. package/modules/codemirror/mode/puppet/puppet.js +0 -220
  178. package/modules/codemirror/mode/python/python.js +0 -402
  179. package/modules/codemirror/mode/q/q.js +0 -139
  180. package/modules/codemirror/mode/r/r.js +0 -190
  181. package/modules/codemirror/mode/rpm/changes/index.html +0 -66
  182. package/modules/codemirror/mode/rpm/rpm.js +0 -109
  183. package/modules/codemirror/mode/rst/rst.js +0 -557
  184. package/modules/codemirror/mode/ruby/ruby.js +0 -303
  185. package/modules/codemirror/mode/rust/rust.js +0 -72
  186. package/modules/codemirror/mode/sas/sas.js +0 -303
  187. package/modules/codemirror/mode/sass/sass.js +0 -459
  188. package/modules/codemirror/mode/scheme/scheme.js +0 -284
  189. package/modules/codemirror/mode/shell/shell.js +0 -168
  190. package/modules/codemirror/mode/sieve/sieve.js +0 -193
  191. package/modules/codemirror/mode/slim/slim.js +0 -575
  192. package/modules/codemirror/mode/smalltalk/smalltalk.js +0 -168
  193. package/modules/codemirror/mode/smarty/smarty.js +0 -225
  194. package/modules/codemirror/mode/solr/solr.js +0 -104
  195. package/modules/codemirror/mode/soy/soy.js +0 -665
  196. package/modules/codemirror/mode/sparql/sparql.js +0 -184
  197. package/modules/codemirror/mode/spreadsheet/spreadsheet.js +0 -112
  198. package/modules/codemirror/mode/sql/sql.js +0 -529
  199. package/modules/codemirror/mode/stex/stex.js +0 -264
  200. package/modules/codemirror/mode/stylus/stylus.js +0 -775
  201. package/modules/codemirror/mode/swift/swift.js +0 -221
  202. package/modules/codemirror/mode/tcl/tcl.js +0 -140
  203. package/modules/codemirror/mode/textile/textile.js +0 -469
  204. package/modules/codemirror/mode/tiddlywiki/tiddlywiki.css +0 -14
  205. package/modules/codemirror/mode/tiddlywiki/tiddlywiki.js +0 -308
  206. package/modules/codemirror/mode/tiki/tiki.css +0 -26
  207. package/modules/codemirror/mode/tiki/tiki.js +0 -312
  208. package/modules/codemirror/mode/toml/toml.js +0 -88
  209. package/modules/codemirror/mode/tornado/tornado.js +0 -68
  210. package/modules/codemirror/mode/troff/troff.js +0 -84
  211. package/modules/codemirror/mode/ttcn/ttcn.js +0 -283
  212. package/modules/codemirror/mode/ttcn-cfg/ttcn-cfg.js +0 -214
  213. package/modules/codemirror/mode/turtle/turtle.js +0 -162
  214. package/modules/codemirror/mode/twig/twig.js +0 -141
  215. package/modules/codemirror/mode/vb/vb.js +0 -275
  216. package/modules/codemirror/mode/vbscript/vbscript.js +0 -350
  217. package/modules/codemirror/mode/velocity/velocity.js +0 -202
  218. package/modules/codemirror/mode/verilog/verilog.js +0 -781
  219. package/modules/codemirror/mode/vhdl/vhdl.js +0 -189
  220. package/modules/codemirror/mode/vue/vue.js +0 -77
  221. package/modules/codemirror/mode/wast/wast.js +0 -132
  222. package/modules/codemirror/mode/webidl/webidl.js +0 -195
  223. package/modules/codemirror/mode/xml/xml.js +0 -417
  224. package/modules/codemirror/mode/xquery/xquery.js +0 -448
  225. package/modules/codemirror/mode/yacas/yacas.js +0 -204
  226. package/modules/codemirror/mode/yaml/yaml.js +0 -120
  227. package/modules/codemirror/mode/yaml-frontmatter/yaml-frontmatter.js +0 -72
  228. package/modules/codemirror/mode/z80/z80.js +0 -116
  229. package/modules/codemirror/package.json +0 -52
  230. package/modules/codemirror/src/addon/runmode/codemirror-standalone.js +0 -24
  231. package/modules/codemirror/src/addon/runmode/codemirror.node.js +0 -21
  232. package/modules/codemirror/src/addon/runmode/runmode-standalone.js +0 -2
  233. package/modules/codemirror/src/addon/runmode/runmode.node.js +0 -2
  234. package/modules/codemirror/src/codemirror.js +0 -3
  235. package/modules/codemirror/src/display/Display.js +0 -116
  236. package/modules/codemirror/src/display/focus.js +0 -50
  237. package/modules/codemirror/src/display/gutters.js +0 -44
  238. package/modules/codemirror/src/display/highlight_worker.js +0 -55
  239. package/modules/codemirror/src/display/line_numbers.js +0 -48
  240. package/modules/codemirror/src/display/mode_state.js +0 -22
  241. package/modules/codemirror/src/display/operations.js +0 -206
  242. package/modules/codemirror/src/display/scroll_events.js +0 -132
  243. package/modules/codemirror/src/display/scrollbars.js +0 -194
  244. package/modules/codemirror/src/display/scrolling.js +0 -186
  245. package/modules/codemirror/src/display/selection.js +0 -173
  246. package/modules/codemirror/src/display/update_display.js +0 -267
  247. package/modules/codemirror/src/display/update_line.js +0 -189
  248. package/modules/codemirror/src/display/update_lines.js +0 -82
  249. package/modules/codemirror/src/display/view_tracking.js +0 -153
  250. package/modules/codemirror/src/edit/CodeMirror.js +0 -217
  251. package/modules/codemirror/src/edit/commands.js +0 -178
  252. package/modules/codemirror/src/edit/deleteNearSelection.js +0 -30
  253. package/modules/codemirror/src/edit/drop_events.js +0 -130
  254. package/modules/codemirror/src/edit/fromTextArea.js +0 -61
  255. package/modules/codemirror/src/edit/global_events.js +0 -45
  256. package/modules/codemirror/src/edit/key_events.js +0 -163
  257. package/modules/codemirror/src/edit/legacy.js +0 -62
  258. package/modules/codemirror/src/edit/main.js +0 -69
  259. package/modules/codemirror/src/edit/methods.js +0 -555
  260. package/modules/codemirror/src/edit/mouse_events.js +0 -417
  261. package/modules/codemirror/src/edit/options.js +0 -194
  262. package/modules/codemirror/src/edit/utils.js +0 -7
  263. package/modules/codemirror/src/input/#ContentEditableInput.js# +0 -475
  264. package/modules/codemirror/src/input/ContentEditableInput.js +0 -546
  265. package/modules/codemirror/src/input/TextareaInput.js +0 -380
  266. package/modules/codemirror/src/input/indent.js +0 -71
  267. package/modules/codemirror/src/input/input.js +0 -134
  268. package/modules/codemirror/src/input/keymap.js +0 -147
  269. package/modules/codemirror/src/input/keynames.js +0 -17
  270. package/modules/codemirror/src/input/movement.js +0 -111
  271. package/modules/codemirror/src/line/highlight.js +0 -284
  272. package/modules/codemirror/src/line/line_data.js +0 -349
  273. package/modules/codemirror/src/line/pos.js +0 -40
  274. package/modules/codemirror/src/line/saw_special_spans.js +0 -10
  275. package/modules/codemirror/src/line/spans.js +0 -390
  276. package/modules/codemirror/src/line/utils_line.js +0 -85
  277. package/modules/codemirror/src/measurement/position_measurement.js +0 -702
  278. package/modules/codemirror/src/measurement/widgets.js +0 -26
  279. package/modules/codemirror/src/model/Doc.js +0 -436
  280. package/modules/codemirror/src/model/change_measurement.js +0 -61
  281. package/modules/codemirror/src/model/changes.js +0 -339
  282. package/modules/codemirror/src/model/chunk.js +0 -167
  283. package/modules/codemirror/src/model/document_data.js +0 -112
  284. package/modules/codemirror/src/model/history.js +0 -228
  285. package/modules/codemirror/src/model/line_widget.js +0 -78
  286. package/modules/codemirror/src/model/mark_text.js +0 -293
  287. package/modules/codemirror/src/model/selection.js +0 -84
  288. package/modules/codemirror/src/model/selection_updates.js +0 -216
  289. package/modules/codemirror/src/modes.js +0 -96
  290. package/modules/codemirror/src/util/StringStream.js +0 -90
  291. package/modules/codemirror/src/util/bidi.js +0 -215
  292. package/modules/codemirror/src/util/browser.js +0 -34
  293. package/modules/codemirror/src/util/dom.js +0 -111
  294. package/modules/codemirror/src/util/event.js +0 -103
  295. package/modules/codemirror/src/util/feature_detection.js +0 -84
  296. package/modules/codemirror/src/util/misc.js +0 -168
  297. package/modules/codemirror/src/util/operation_group.js +0 -72
  298. package/modules/codemirror/theme/3024-day.css +0 -41
  299. package/modules/codemirror/theme/3024-night.css +0 -39
  300. package/modules/codemirror/theme/abbott.css +0 -268
  301. package/modules/codemirror/theme/abcdef.css +0 -32
  302. package/modules/codemirror/theme/ambiance-mobile.css +0 -5
  303. package/modules/codemirror/theme/ambiance.css +0 -74
  304. package/modules/codemirror/theme/ayu-dark.css +0 -44
  305. package/modules/codemirror/theme/ayu-mirage.css +0 -45
  306. package/modules/codemirror/theme/base16-dark.css +0 -40
  307. package/modules/codemirror/theme/base16-light.css +0 -38
  308. package/modules/codemirror/theme/bespin.css +0 -34
  309. package/modules/codemirror/theme/blackboard.css +0 -32
  310. package/modules/codemirror/theme/cobalt.css +0 -25
  311. package/modules/codemirror/theme/colorforth.css +0 -33
  312. package/modules/codemirror/theme/darcula.css +0 -53
  313. package/modules/codemirror/theme/dracula.css +0 -40
  314. package/modules/codemirror/theme/duotone-dark.css +0 -35
  315. package/modules/codemirror/theme/duotone-light.css +0 -36
  316. package/modules/codemirror/theme/eclipse.css +0 -23
  317. package/modules/codemirror/theme/elegant.css +0 -13
  318. package/modules/codemirror/theme/erlang-dark.css +0 -34
  319. package/modules/codemirror/theme/gruvbox-dark.css +0 -39
  320. package/modules/codemirror/theme/hopscotch.css +0 -34
  321. package/modules/codemirror/theme/icecoder.css +0 -43
  322. package/modules/codemirror/theme/idea.css +0 -42
  323. package/modules/codemirror/theme/isotope.css +0 -34
  324. package/modules/codemirror/theme/juejin.css +0 -30
  325. package/modules/codemirror/theme/lesser-dark.css +0 -47
  326. package/modules/codemirror/theme/liquibyte.css +0 -95
  327. package/modules/codemirror/theme/lucario.css +0 -37
  328. package/modules/codemirror/theme/material-darker.css +0 -135
  329. package/modules/codemirror/theme/material-ocean.css +0 -141
  330. package/modules/codemirror/theme/material-palenight.css +0 -141
  331. package/modules/codemirror/theme/material.css +0 -141
  332. package/modules/codemirror/theme/mbo.css +0 -37
  333. package/modules/codemirror/theme/mdn-like.css +0 -46
  334. package/modules/codemirror/theme/midnight.css +0 -39
  335. package/modules/codemirror/theme/monokai.css +0 -41
  336. package/modules/codemirror/theme/moxer.css +0 -143
  337. package/modules/codemirror/theme/neat.css +0 -12
  338. package/modules/codemirror/theme/neo.css +0 -43
  339. package/modules/codemirror/theme/night.css +0 -27
  340. package/modules/codemirror/theme/nord.css +0 -42
  341. package/modules/codemirror/theme/oceanic-next.css +0 -46
  342. package/modules/codemirror/theme/panda-syntax.css +0 -85
  343. package/modules/codemirror/theme/paraiso-dark.css +0 -38
  344. package/modules/codemirror/theme/paraiso-light.css +0 -38
  345. package/modules/codemirror/theme/pastel-on-dark.css +0 -52
  346. package/modules/codemirror/theme/railscasts.css +0 -34
  347. package/modules/codemirror/theme/rubyblue.css +0 -25
  348. package/modules/codemirror/theme/seti.css +0 -44
  349. package/modules/codemirror/theme/shadowfox.css +0 -52
  350. package/modules/codemirror/theme/solarized.css +0 -165
  351. package/modules/codemirror/theme/ssms.css +0 -16
  352. package/modules/codemirror/theme/the-matrix.css +0 -30
  353. package/modules/codemirror/theme/tomorrow-night-bright.css +0 -35
  354. package/modules/codemirror/theme/tomorrow-night-eighties.css +0 -38
  355. package/modules/codemirror/theme/ttcn.css +0 -64
  356. package/modules/codemirror/theme/twilight.css +0 -32
  357. package/modules/codemirror/theme/vibrant-ink.css +0 -34
  358. package/modules/codemirror/theme/xq-dark.css +0 -53
  359. package/modules/codemirror/theme/xq-light.css +0 -43
  360. package/modules/codemirror/theme/yeti.css +0 -44
  361. package/modules/codemirror/theme/yonce.css +0 -59
  362. package/modules/codemirror/theme/zenburn.css +0 -37
  363. /package/css/{dword.css → qword.css} +0 -0
@@ -0,0 +1,432 @@
1
+ import '../css/qword.css';
2
+ import {EditorState, Compartment} from '@codemirror/state';
3
+ import {
4
+ EditorView,
5
+ keymap,
6
+ lineNumbers,
7
+ highlightActiveLine,
8
+ } from '@codemirror/view';
9
+ import {
10
+ history,
11
+ historyKeymap,
12
+ defaultKeymap,
13
+ } from '@codemirror/commands';
14
+ import {
15
+ syntaxHighlighting,
16
+ defaultHighlightStyle,
17
+ } from '@codemirror/language';
18
+ import {oneDark} from '@codemirror/theme-one-dark';
19
+ import {javascript} from '@codemirror/lang-javascript';
20
+ import {json} from '@codemirror/lang-json';
21
+ import {html} from '@codemirror/lang-html';
22
+ import Emitify from 'emitify';
23
+ import * as smalltalk from 'smalltalk';
24
+ import jssha from 'jssha';
25
+ import load from 'load.js';
26
+ import {createPatch} from 'daffy';
27
+ import * as restafary from 'restafary/client';
28
+ import {tryCatch} from 'try-catch';
29
+ import {vim} from '@replit/codemirror-vim';
30
+ import {tryToCatch} from 'try-to-catch';
31
+ import Story from './story.js';
32
+ import loadRemote, {loadModules, loadOptions} from './loadremote.js';
33
+ import _clipboard from './_clipboard.js';
34
+ import save from './save.js';
35
+ import _initSocket from './_init-socket.js';
36
+ import _onSave from './_on-save.js';
37
+ import showMessage from './show-message.js';
38
+
39
+ const noop = () => {};
40
+
41
+ const isFn = (a) => typeof a === 'function';
42
+ const isString = (a) => typeof a === 'string';
43
+
44
+ export default function Qword(el, options = {}, callback = noop) {
45
+ if (!(this instanceof Qword))
46
+ return new Qword(el, options, callback);
47
+
48
+ if (isFn(options)) {
49
+ callback = options;
50
+ options = {};
51
+ }
52
+
53
+ this._DIR = '/modules/';
54
+ this._TITLE = 'Qword';
55
+
56
+ this._story = Story();
57
+
58
+ this._Separator = '\n';
59
+ this._isKey = true;
60
+
61
+ this._Element = isString(el) ? document.querySelector(el) : el || document.body;
62
+
63
+ if (!this._Element)
64
+ throw Error('Qword: element not found');
65
+
66
+ this._maxSize = options.maxSize || 512_000;
67
+
68
+ this._PREFIX = options.prefix || '/qword';
69
+ this._prefixSocket = options.prefixSocket || '/qword';
70
+ this._socketPath = options.socketPath || '';
71
+
72
+ this._Emitter = Emitify();
73
+
74
+ this._view = null;
75
+ this._pendingValue = null;
76
+
77
+ this._modeCompartment = new Compartment();
78
+ this._keymapCompartment = new Compartment();
79
+ this._fontCompartment = new Compartment();
80
+ this._langCompartment = new Compartment();
81
+ // ✅ FIX: добавили vim compartment
82
+ this._vimCompartment = new Compartment();
83
+
84
+ this._Element.addEventListener('drop', this._onDrop.bind(this));
85
+ this._Element.addEventListener('dragover', this._onDragOver.bind(this));
86
+
87
+ this
88
+ ._init()
89
+ .then(() => callback(this));
90
+
91
+ this._patch = (path, patch) => {
92
+ this._patchHttp(path, patch);
93
+ };
94
+
95
+ this._write = (path, result) => {
96
+ this._writeHttp(path, result);
97
+ };
98
+ }
99
+
100
+ Qword.prototype._init = async function() {
101
+ const prefix = this._PREFIX;
102
+
103
+ const [error, config] = await tryToCatch(load.json, this._PREFIX + '/edit.json');
104
+
105
+ if (error)
106
+ return smalltalk.alert(this._TITLE, 'Could not load edit.json!');
107
+
108
+ this._Config = config;
109
+
110
+ await Promise.all([
111
+ loadOptions(prefix),
112
+ loadModules(prefix),
113
+ ]);
114
+
115
+ await loadRemote('socket', {
116
+ prefix: this._socketPath,
117
+ });
118
+
119
+ restafary.prefix(`${this._PREFIX}/api/v1/fs`);
120
+
121
+ this._initEditor();
122
+
123
+ if (this._pendingValue !== null) {
124
+ this.setValue(this._pendingValue);
125
+ this._pendingValue = null;
126
+ }
127
+
128
+ this._initSocket();
129
+
130
+ return this;
131
+ };
132
+
133
+ Qword.prototype._initEditor = function() {
134
+ const baseExtensions = () => [
135
+ lineNumbers(),
136
+ history(),
137
+ highlightActiveLine(),
138
+ syntaxHighlighting(defaultHighlightStyle),
139
+ oneDark,
140
+ this._langCompartment.of(javascript()),
141
+ // ✅ FIX: vim теперь через compartment
142
+ this._vimCompartment.of([]),
143
+ keymap.of([
144
+ ...defaultKeymap,
145
+ ...historyKeymap, {
146
+ key: 'Mod-s',
147
+ run: () => {
148
+ this.save();
149
+ return true;
150
+ },
151
+ },
152
+ ]),
153
+ ];
154
+
155
+ this._vimEnabled = false;
156
+
157
+ const state = EditorState.create({
158
+ doc: '',
159
+ extensions: baseExtensions(),
160
+ });
161
+
162
+ this._view = new EditorView({
163
+ state,
164
+ parent: this._Element,
165
+ });
166
+
167
+ this._baseExtensions = baseExtensions;
168
+ };
169
+
170
+ Qword.prototype.getValue = function() {
171
+ return this._view.state.doc.toString();
172
+ };
173
+
174
+ Qword.prototype.setValue = function(value) {
175
+ if (!this._view) {
176
+ this._pendingValue = value;
177
+ return this;
178
+ }
179
+
180
+ this._view.dispatch({
181
+ changes: {
182
+ from: 0,
183
+ to: this._view.state.doc.length,
184
+ insert: value,
185
+ },
186
+ });
187
+
188
+ return this;
189
+ };
190
+
191
+ Qword.prototype.focus = function() {
192
+ this._view.focus();
193
+ return this;
194
+ };
195
+
196
+ Qword.prototype.getCursor = function() {
197
+ const pos = this._view.state.selection.main.head;
198
+ const line = this._view.state.doc.lineAt(pos);
199
+
200
+ return {
201
+ row: line.number - 1,
202
+ column: pos - line.from,
203
+ };
204
+ };
205
+
206
+ Qword.prototype.moveCursorTo = function(row, column = 0) {
207
+ const line = this._view.state.doc.line(row + 1);
208
+
209
+ this._view.dispatch({
210
+ selection: {
211
+ anchor: line.from + column,
212
+ },
213
+ scrollIntoView: true,
214
+ });
215
+
216
+ return this;
217
+ };
218
+
219
+ Qword.prototype.remove = function(direction) {
220
+ const pos = this._view.state.selection.main.head;
221
+
222
+ this._view.dispatch({
223
+ changes: direction === 'right' ? {
224
+ from: pos,
225
+ to: pos + 1,
226
+ } : {
227
+ from: pos - 1,
228
+ to: pos,
229
+ },
230
+ });
231
+
232
+ return this;
233
+ };
234
+
235
+ Qword.prototype.setModeForPath = function(path) {
236
+ const ext = path
237
+ .split('.')
238
+ .pop();
239
+
240
+ let lang = javascript();
241
+
242
+ if (ext === 'json')
243
+ lang = json();
244
+
245
+ if (ext === 'html')
246
+ lang = html();
247
+
248
+ this._view.dispatch({
249
+ effects: this._langCompartment.reconfigure(lang),
250
+ });
251
+
252
+ return this;
253
+ };
254
+
255
+ Qword.prototype.setValueFirst = function(name, value) {
256
+ this.setModeForPath(name);
257
+ this.setValue(value);
258
+
259
+ this._FileName = name;
260
+ this._Value = value;
261
+
262
+ this.moveCursorTo(0, 0);
263
+
264
+ return this;
265
+ };
266
+
267
+ Qword.prototype.addKeyMap = function(map) {
268
+ const bindings = Object
269
+ .entries(map)
270
+ .map(([key, fn]) => ({
271
+ key,
272
+ run: () => {
273
+ fn.call(this);
274
+ return true;
275
+ },
276
+ }));
277
+
278
+ this._view.dispatch({
279
+ effects: this._keymapCompartment.reconfigure(keymap.of(bindings)),
280
+ });
281
+
282
+ return this;
283
+ };
284
+
285
+ Qword.prototype.on = function(event, fn) {
286
+ this._Emitter.on(event, fn);
287
+ return this;
288
+ };
289
+
290
+ Qword.prototype.emit = function(...args) {
291
+ this._Emitter.emit(...args);
292
+ return this;
293
+ };
294
+
295
+ Qword.prototype.isChanged = function() {
296
+ return this.getValue() !== this._Value;
297
+ };
298
+
299
+ Qword.prototype._diff = function(newValue) {
300
+ return createPatch(this._Value || '', newValue);
301
+ };
302
+
303
+ Qword.prototype._patchHttp = function(path, patch) {
304
+ restafary.patch(path, patch, this._onSave.bind(this));
305
+ };
306
+
307
+ Qword.prototype._writeHttp = function(path, result) {
308
+ restafary.write(path, result, this._onSave.bind(this));
309
+ };
310
+
311
+ Qword.prototype.evaluate = function() {
312
+ if (!this._FileName?.endsWith('.js'))
313
+ return smalltalk.alert(this._TITLE, 'JS only');
314
+
315
+ const [e] = tryCatch(new Function(this.getValue()));
316
+
317
+ if (e)
318
+ smalltalk.alert(this._TITLE, e.message);
319
+
320
+ return this;
321
+ };
322
+
323
+ Qword.prototype.goToLine = function() {
324
+ const num = Number(prompt('Line number'));
325
+
326
+ if (!num)
327
+ return;
328
+
329
+ const line = this._view.state.doc.line(num);
330
+
331
+ this._view.dispatch({
332
+ selection: {
333
+ anchor: line.from,
334
+ },
335
+ scrollIntoView: true,
336
+ });
337
+
338
+ this.focus();
339
+ };
340
+
341
+ Qword.prototype._clipboard = _clipboard;
342
+ Qword.prototype.save = save;
343
+ Qword.prototype._onSave = _onSave;
344
+ Qword.prototype._initSocket = _initSocket;
345
+
346
+ Qword.prototype._onDragOver = function(event) {
347
+ event.preventDefault();
348
+ event.dataTransfer.dropEffect = 'copy';
349
+ };
350
+
351
+ Qword.prototype._onDrop = function(event) {
352
+ event.preventDefault();
353
+
354
+ const [file] = event.dataTransfer.files;
355
+
356
+ if (!file)
357
+ return;
358
+
359
+ const reader = new FileReader();
360
+
361
+ reader.onload = (e) => {
362
+ this.setValue(e.target.result);
363
+ };
364
+
365
+ reader.readAsText(file);
366
+ };
367
+
368
+ Qword.prototype.sha = function() {
369
+ const shaObj = new jssha('SHA-1', 'TEXT');
370
+ shaObj.update(this.getValue());
371
+
372
+ return shaObj.getHash('HEX');
373
+ };
374
+
375
+ Qword.prototype.setOption = function(name, value) {
376
+ const {_Ace} = this;
377
+ const preventOverwrite = () => {
378
+ this._Config.options[name] = value;
379
+ };
380
+
381
+ preventOverwrite();
382
+
383
+ if (name === 'keyMap')
384
+ this.setKeyMap(value);
385
+
386
+ return this;
387
+ };
388
+
389
+ Qword.prototype.setOptions = function(options) {
390
+ const theme = EditorView.theme({
391
+ '&': {
392
+ fontSize: options.fontSize,
393
+ fontFamily: options.fontFamily,
394
+ },
395
+ });
396
+
397
+ this._view.dispatch({
398
+ effects: this._fontCompartment.reconfigure(theme),
399
+ });
400
+
401
+ return this;
402
+ };
403
+
404
+ Qword.prototype.showMessage = showMessage;
405
+
406
+ Qword.prototype.setKeyMap = function(mode) {
407
+ this._vimEnabled = mode === 'vim';
408
+
409
+ this._view.dispatch({
410
+ effects: this._vimCompartment.reconfigure(this._vimEnabled ? vim() : []),
411
+ });
412
+
413
+ return this;
414
+ };
415
+
416
+ Qword.prototype._loadOptions = async function() {
417
+ const url = this._PREFIX + '/options.json';
418
+
419
+ if (this._Options)
420
+ return this._Options;
421
+
422
+ const data = await load.json(url);
423
+
424
+ this._Options = data;
425
+
426
+ return data;
427
+ };
428
+
429
+ Qword.prototype.enableKey = function() {
430
+ this._isKey = true;
431
+ return this;
432
+ };