daftos 0.1.0 → 0.2.0

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 (307) hide show
  1. data/.DS_Store +0 -0
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +2 -0
  4. data/Rakefile +4 -0
  5. data/VERSION +1 -1
  6. data/bin/daftos +14 -0
  7. data/daftos.gemspec +363 -0
  8. data/lib/.DS_Store +0 -0
  9. data/lib/apis/.DS_Store +0 -0
  10. data/lib/apis/filesystem_api.rb +68 -0
  11. data/lib/apps/.DS_Store +0 -0
  12. data/lib/apps/apps/body.html +6 -0
  13. data/lib/apps/apps/options.json +7 -0
  14. data/lib/apps/filebrowser/.DS_Store +0 -0
  15. data/lib/apps/filebrowser/body.html +32 -0
  16. data/lib/apps/filebrowser/coffee/filebrowser.coffee +51 -0
  17. data/lib/apps/filebrowser/js/.DS_Store +0 -0
  18. data/lib/apps/filebrowser/js/daftos.js +1 -0
  19. data/lib/apps/filebrowser/options.json +7 -0
  20. data/lib/apps/photobooth/.DS_Store +0 -0
  21. data/lib/apps/photobooth/body.html +1 -0
  22. data/lib/apps/photobooth/coffee/photobooth.coffee +37 -0
  23. data/lib/apps/photobooth/coffee/test.html +278 -0
  24. data/lib/apps/photobooth/css/style.css +30 -0
  25. data/lib/apps/photobooth/js/.DS_Store +0 -0
  26. data/lib/apps/photobooth/js/daftos.js +1 -0
  27. data/lib/apps/photobooth/options.json +26 -0
  28. data/lib/apps/photobrowser/body.html +2 -0
  29. data/lib/apps/photobrowser/coffee/photobrowser.coffee +18 -0
  30. data/lib/apps/photobrowser/js/.DS_Store +0 -0
  31. data/lib/apps/photobrowser/options.json +16 -0
  32. data/lib/apps/texteditor/body.html +1 -0
  33. data/lib/apps/texteditor/coffee/texteditor.coffee +31 -0
  34. data/lib/apps/texteditor/js/.DS_Store +0 -0
  35. data/lib/apps/texteditor/js/ace-compat-noconflict.js +1 -0
  36. data/lib/apps/texteditor/js/ace-compat-uncompressed-noconflict.js +480 -0
  37. data/lib/apps/texteditor/js/ace-compat-uncompressed.js +480 -0
  38. data/lib/apps/texteditor/js/ace-compat.js +1 -0
  39. data/lib/apps/texteditor/js/ace-noconflict.js +10 -0
  40. data/lib/apps/texteditor/js/ace-uncompressed-noconflict.js +19559 -0
  41. data/lib/apps/texteditor/js/ace-uncompressed.js +19559 -0
  42. data/lib/apps/texteditor/js/ace.js +10 -0
  43. data/lib/apps/texteditor/js/keybinding-emacs-noconflict.js +1 -0
  44. data/lib/apps/texteditor/js/keybinding-emacs-uncompressed-noconflict.js +150 -0
  45. data/lib/apps/texteditor/js/keybinding-emacs-uncompressed.js +150 -0
  46. data/lib/apps/texteditor/js/keybinding-emacs.js +1 -0
  47. data/lib/apps/texteditor/js/keybinding-vim-noconflict.js +1 -0
  48. data/lib/apps/texteditor/js/keybinding-vim-uncompressed-noconflict.js +138 -0
  49. data/lib/apps/texteditor/js/keybinding-vim-uncompressed.js +138 -0
  50. data/lib/apps/texteditor/js/keybinding-vim.js +1 -0
  51. data/lib/apps/texteditor/js/mode-c_cpp-noconflict.js +1 -0
  52. data/lib/apps/texteditor/js/mode-c_cpp-uncompressed-noconflict.js +917 -0
  53. data/lib/apps/texteditor/js/mode-c_cpp-uncompressed.js +917 -0
  54. data/lib/apps/texteditor/js/mode-c_cpp.js +1 -0
  55. data/lib/apps/texteditor/js/mode-clojure-noconflict.js +1 -0
  56. data/lib/apps/texteditor/js/mode-clojure-uncompressed-noconflict.js +422 -0
  57. data/lib/apps/texteditor/js/mode-clojure-uncompressed.js +422 -0
  58. data/lib/apps/texteditor/js/mode-clojure.js +1 -0
  59. data/lib/apps/texteditor/js/mode-coffee-noconflict.js +1 -0
  60. data/lib/apps/texteditor/js/mode-coffee-uncompressed-noconflict.js +605 -0
  61. data/lib/apps/texteditor/js/mode-coffee-uncompressed.js +605 -0
  62. data/lib/apps/texteditor/js/mode-coffee.js +1 -0
  63. data/lib/apps/texteditor/js/mode-coldfusion-noconflict.js +1 -0
  64. data/lib/apps/texteditor/js/mode-coldfusion-uncompressed-noconflict.js +2454 -0
  65. data/lib/apps/texteditor/js/mode-coldfusion-uncompressed.js +2454 -0
  66. data/lib/apps/texteditor/js/mode-coldfusion.js +1 -0
  67. data/lib/apps/texteditor/js/mode-csharp-noconflict.js +1 -0
  68. data/lib/apps/texteditor/js/mode-csharp-uncompressed-noconflict.js +767 -0
  69. data/lib/apps/texteditor/js/mode-csharp-uncompressed.js +767 -0
  70. data/lib/apps/texteditor/js/mode-csharp.js +1 -0
  71. data/lib/apps/texteditor/js/mode-css-noconflict.js +1 -0
  72. data/lib/apps/texteditor/js/mode-css-uncompressed-noconflict.js +640 -0
  73. data/lib/apps/texteditor/js/mode-css-uncompressed.js +640 -0
  74. data/lib/apps/texteditor/js/mode-css.js +1 -0
  75. data/lib/apps/texteditor/js/mode-golang-noconflict.js +1 -0
  76. data/lib/apps/texteditor/js/mode-golang-uncompressed-noconflict.js +378 -0
  77. data/lib/apps/texteditor/js/mode-golang-uncompressed.js +378 -0
  78. data/lib/apps/texteditor/js/mode-golang.js +1 -0
  79. data/lib/apps/texteditor/js/mode-groovy-noconflict.js +1 -0
  80. data/lib/apps/texteditor/js/mode-groovy-uncompressed-noconflict.js +1391 -0
  81. data/lib/apps/texteditor/js/mode-groovy-uncompressed.js +1391 -0
  82. data/lib/apps/texteditor/js/mode-groovy.js +1 -0
  83. data/lib/apps/texteditor/js/mode-haxe-noconflict.js +1 -0
  84. data/lib/apps/texteditor/js/mode-haxe-uncompressed-noconflict.js +767 -0
  85. data/lib/apps/texteditor/js/mode-haxe-uncompressed.js +767 -0
  86. data/lib/apps/texteditor/js/mode-haxe.js +1 -0
  87. data/lib/apps/texteditor/js/mode-html-noconflict.js +1 -0
  88. data/lib/apps/texteditor/js/mode-html-uncompressed-noconflict.js +2470 -0
  89. data/lib/apps/texteditor/js/mode-html-uncompressed.js +2470 -0
  90. data/lib/apps/texteditor/js/mode-html.js +1 -0
  91. data/lib/apps/texteditor/js/mode-java-noconflict.js +1 -0
  92. data/lib/apps/texteditor/js/mode-java-uncompressed-noconflict.js +1393 -0
  93. data/lib/apps/texteditor/js/mode-java-uncompressed.js +1393 -0
  94. data/lib/apps/texteditor/js/mode-java.js +1 -0
  95. data/lib/apps/texteditor/js/mode-javascript-noconflict.js +1 -0
  96. data/lib/apps/texteditor/js/mode-javascript-uncompressed-noconflict.js +1224 -0
  97. data/lib/apps/texteditor/js/mode-javascript-uncompressed.js +1224 -0
  98. data/lib/apps/texteditor/js/mode-javascript.js +1 -0
  99. data/lib/apps/texteditor/js/mode-json-noconflict.js +1 -0
  100. data/lib/apps/texteditor/js/mode-json-uncompressed-noconflict.js +698 -0
  101. data/lib/apps/texteditor/js/mode-json-uncompressed.js +698 -0
  102. data/lib/apps/texteditor/js/mode-json.js +1 -0
  103. data/lib/apps/texteditor/js/mode-latex-noconflict.js +1 -0
  104. data/lib/apps/texteditor/js/mode-latex-uncompressed-noconflict.js +95 -0
  105. data/lib/apps/texteditor/js/mode-latex-uncompressed.js +95 -0
  106. data/lib/apps/texteditor/js/mode-latex.js +1 -0
  107. data/lib/apps/texteditor/js/mode-less-noconflict.js +1 -0
  108. data/lib/apps/texteditor/js/mode-less-uncompressed-noconflict.js +654 -0
  109. data/lib/apps/texteditor/js/mode-less-uncompressed.js +654 -0
  110. data/lib/apps/texteditor/js/mode-less.js +1 -0
  111. data/lib/apps/texteditor/js/mode-liquid-noconflict.js +1 -0
  112. data/lib/apps/texteditor/js/mode-liquid-uncompressed-noconflict.js +1353 -0
  113. data/lib/apps/texteditor/js/mode-liquid-uncompressed.js +1353 -0
  114. data/lib/apps/texteditor/js/mode-liquid.js +1 -0
  115. data/lib/apps/texteditor/js/mode-lua-noconflict.js +1 -0
  116. data/lib/apps/texteditor/js/mode-lua-uncompressed-noconflict.js +523 -0
  117. data/lib/apps/texteditor/js/mode-lua-uncompressed.js +523 -0
  118. data/lib/apps/texteditor/js/mode-lua.js +1 -0
  119. data/lib/apps/texteditor/js/mode-markdown-noconflict.js +1 -0
  120. data/lib/apps/texteditor/js/mode-markdown-uncompressed-noconflict.js +2918 -0
  121. data/lib/apps/texteditor/js/mode-markdown-uncompressed.js +2918 -0
  122. data/lib/apps/texteditor/js/mode-markdown.js +1 -0
  123. data/lib/apps/texteditor/js/mode-ocaml-noconflict.js +1 -0
  124. data/lib/apps/texteditor/js/mode-ocaml-uncompressed-noconflict.js +539 -0
  125. data/lib/apps/texteditor/js/mode-ocaml-uncompressed.js +539 -0
  126. data/lib/apps/texteditor/js/mode-ocaml.js +1 -0
  127. data/lib/apps/texteditor/js/mode-perl-noconflict.js +1 -0
  128. data/lib/apps/texteditor/js/mode-perl-uncompressed-noconflict.js +573 -0
  129. data/lib/apps/texteditor/js/mode-perl-uncompressed.js +573 -0
  130. data/lib/apps/texteditor/js/mode-perl.js +1 -0
  131. data/lib/apps/texteditor/js/mode-pgsql-noconflict.js +1 -0
  132. data/lib/apps/texteditor/js/mode-pgsql-uncompressed-noconflict.js +1104 -0
  133. data/lib/apps/texteditor/js/mode-pgsql-uncompressed.js +1104 -0
  134. data/lib/apps/texteditor/js/mode-pgsql.js +1 -0
  135. data/lib/apps/texteditor/js/mode-php-noconflict.js +1 -0
  136. data/lib/apps/texteditor/js/mode-php-uncompressed-noconflict.js +1883 -0
  137. data/lib/apps/texteditor/js/mode-php-uncompressed.js +1883 -0
  138. data/lib/apps/texteditor/js/mode-php.js +1 -0
  139. data/lib/apps/texteditor/js/mode-powershell-noconflict.js +1 -0
  140. data/lib/apps/texteditor/js/mode-powershell-uncompressed-noconflict.js +708 -0
  141. data/lib/apps/texteditor/js/mode-powershell-uncompressed.js +708 -0
  142. data/lib/apps/texteditor/js/mode-powershell.js +1 -0
  143. data/lib/apps/texteditor/js/mode-python-noconflict.js +1 -0
  144. data/lib/apps/texteditor/js/mode-python-uncompressed-noconflict.js +506 -0
  145. data/lib/apps/texteditor/js/mode-python-uncompressed.js +506 -0
  146. data/lib/apps/texteditor/js/mode-python.js +1 -0
  147. data/lib/apps/texteditor/js/mode-ruby-noconflict.js +1 -0
  148. data/lib/apps/texteditor/js/mode-ruby-uncompressed-noconflict.js +391 -0
  149. data/lib/apps/texteditor/js/mode-ruby-uncompressed.js +391 -0
  150. data/lib/apps/texteditor/js/mode-ruby.js +1 -0
  151. data/lib/apps/texteditor/js/mode-scad-noconflict.js +1 -0
  152. data/lib/apps/texteditor/js/mode-scad-uncompressed-noconflict.js +905 -0
  153. data/lib/apps/texteditor/js/mode-scad-uncompressed.js +905 -0
  154. data/lib/apps/texteditor/js/mode-scad.js +1 -0
  155. data/lib/apps/texteditor/js/mode-scala-noconflict.js +1 -0
  156. data/lib/apps/texteditor/js/mode-scala-uncompressed-noconflict.js +1393 -0
  157. data/lib/apps/texteditor/js/mode-scala-uncompressed.js +1393 -0
  158. data/lib/apps/texteditor/js/mode-scala.js +1 -0
  159. data/lib/apps/texteditor/js/mode-scss-noconflict.js +1 -0
  160. data/lib/apps/texteditor/js/mode-scss-uncompressed-noconflict.js +678 -0
  161. data/lib/apps/texteditor/js/mode-scss-uncompressed.js +678 -0
  162. data/lib/apps/texteditor/js/mode-scss.js +1 -0
  163. data/lib/apps/texteditor/js/mode-sh-noconflict.js +1 -0
  164. data/lib/apps/texteditor/js/mode-sh-uncompressed-noconflict.js +289 -0
  165. data/lib/apps/texteditor/js/mode-sh-uncompressed.js +289 -0
  166. data/lib/apps/texteditor/js/mode-sh.js +1 -0
  167. data/lib/apps/texteditor/js/mode-sql-noconflict.js +1 -0
  168. data/lib/apps/texteditor/js/mode-sql-uncompressed-noconflict.js +159 -0
  169. data/lib/apps/texteditor/js/mode-sql-uncompressed.js +159 -0
  170. data/lib/apps/texteditor/js/mode-sql.js +1 -0
  171. data/lib/apps/texteditor/js/mode-svg-noconflict.js +1 -0
  172. data/lib/apps/texteditor/js/mode-svg-uncompressed-noconflict.js +2133 -0
  173. data/lib/apps/texteditor/js/mode-svg-uncompressed.js +2133 -0
  174. data/lib/apps/texteditor/js/mode-svg.js +1 -0
  175. data/lib/apps/texteditor/js/mode-text-noconflict.js +0 -0
  176. data/lib/apps/texteditor/js/mode-text-uncompressed-noconflict.js +0 -0
  177. data/lib/apps/texteditor/js/mode-text-uncompressed.js +0 -0
  178. data/lib/apps/texteditor/js/mode-text.js +0 -0
  179. data/lib/apps/texteditor/js/mode-textile-noconflict.js +1 -0
  180. data/lib/apps/texteditor/js/mode-textile-uncompressed-noconflict.js +254 -0
  181. data/lib/apps/texteditor/js/mode-textile-uncompressed.js +254 -0
  182. data/lib/apps/texteditor/js/mode-textile.js +1 -0
  183. data/lib/apps/texteditor/js/mode-xml-noconflict.js +1 -0
  184. data/lib/apps/texteditor/js/mode-xml-uncompressed-noconflict.js +1009 -0
  185. data/lib/apps/texteditor/js/mode-xml-uncompressed.js +1009 -0
  186. data/lib/apps/texteditor/js/mode-xml.js +1 -0
  187. data/lib/apps/texteditor/js/mode-xquery-noconflict.js +1 -0
  188. data/lib/apps/texteditor/js/mode-xquery-uncompressed-noconflict.js +540 -0
  189. data/lib/apps/texteditor/js/mode-xquery-uncompressed.js +540 -0
  190. data/lib/apps/texteditor/js/mode-xquery.js +1 -0
  191. data/lib/apps/texteditor/js/theme-chrome-noconflict.js +1 -0
  192. data/lib/apps/texteditor/js/theme-chrome-uncompressed-noconflict.js +207 -0
  193. data/lib/apps/texteditor/js/theme-chrome-uncompressed.js +207 -0
  194. data/lib/apps/texteditor/js/theme-chrome.js +1 -0
  195. data/lib/apps/texteditor/js/theme-clouds-noconflict.js +1 -0
  196. data/lib/apps/texteditor/js/theme-clouds-uncompressed-noconflict.js +160 -0
  197. data/lib/apps/texteditor/js/theme-clouds-uncompressed.js +160 -0
  198. data/lib/apps/texteditor/js/theme-clouds.js +1 -0
  199. data/lib/apps/texteditor/js/theme-clouds_midnight-noconflict.js +1 -0
  200. data/lib/apps/texteditor/js/theme-clouds_midnight-uncompressed-noconflict.js +161 -0
  201. data/lib/apps/texteditor/js/theme-clouds_midnight-uncompressed.js +161 -0
  202. data/lib/apps/texteditor/js/theme-clouds_midnight.js +1 -0
  203. data/lib/apps/texteditor/js/theme-cobalt-noconflict.js +1 -0
  204. data/lib/apps/texteditor/js/theme-cobalt-uncompressed-noconflict.js +187 -0
  205. data/lib/apps/texteditor/js/theme-cobalt-uncompressed.js +187 -0
  206. data/lib/apps/texteditor/js/theme-cobalt.js +1 -0
  207. data/lib/apps/texteditor/js/theme-crimson_editor-noconflict.js +1 -0
  208. data/lib/apps/texteditor/js/theme-crimson_editor-uncompressed-noconflict.js +198 -0
  209. data/lib/apps/texteditor/js/theme-crimson_editor-uncompressed.js +198 -0
  210. data/lib/apps/texteditor/js/theme-crimson_editor.js +1 -0
  211. data/lib/apps/texteditor/js/theme-dawn-noconflict.js +1 -0
  212. data/lib/apps/texteditor/js/theme-dawn-uncompressed-noconflict.js +191 -0
  213. data/lib/apps/texteditor/js/theme-dawn-uncompressed.js +191 -0
  214. data/lib/apps/texteditor/js/theme-dawn.js +1 -0
  215. data/lib/apps/texteditor/js/theme-dreamweaver-noconflict.js +1 -0
  216. data/lib/apps/texteditor/js/theme-dreamweaver-uncompressed-noconflict.js +227 -0
  217. data/lib/apps/texteditor/js/theme-dreamweaver-uncompressed.js +227 -0
  218. data/lib/apps/texteditor/js/theme-dreamweaver.js +1 -0
  219. data/lib/apps/texteditor/js/theme-eclipse-noconflict.js +1 -0
  220. data/lib/apps/texteditor/js/theme-eclipse-uncompressed-noconflict.js +147 -0
  221. data/lib/apps/texteditor/js/theme-eclipse-uncompressed.js +147 -0
  222. data/lib/apps/texteditor/js/theme-eclipse.js +1 -0
  223. data/lib/apps/texteditor/js/theme-idle_fingers-noconflict.js +1 -0
  224. data/lib/apps/texteditor/js/theme-idle_fingers-uncompressed-noconflict.js +179 -0
  225. data/lib/apps/texteditor/js/theme-idle_fingers-uncompressed.js +179 -0
  226. data/lib/apps/texteditor/js/theme-idle_fingers.js +1 -0
  227. data/lib/apps/texteditor/js/theme-kr_theme-noconflict.js +1 -0
  228. data/lib/apps/texteditor/js/theme-kr_theme-uncompressed-noconflict.js +182 -0
  229. data/lib/apps/texteditor/js/theme-kr_theme-uncompressed.js +182 -0
  230. data/lib/apps/texteditor/js/theme-kr_theme.js +1 -0
  231. data/lib/apps/texteditor/js/theme-merbivore-noconflict.js +1 -0
  232. data/lib/apps/texteditor/js/theme-merbivore-uncompressed-noconflict.js +182 -0
  233. data/lib/apps/texteditor/js/theme-merbivore-uncompressed.js +182 -0
  234. data/lib/apps/texteditor/js/theme-merbivore.js +1 -0
  235. data/lib/apps/texteditor/js/theme-merbivore_soft-noconflict.js +1 -0
  236. data/lib/apps/texteditor/js/theme-merbivore_soft-uncompressed-noconflict.js +188 -0
  237. data/lib/apps/texteditor/js/theme-merbivore_soft-uncompressed.js +188 -0
  238. data/lib/apps/texteditor/js/theme-merbivore_soft.js +1 -0
  239. data/lib/apps/texteditor/js/theme-mono_industrial-noconflict.js +1 -0
  240. data/lib/apps/texteditor/js/theme-mono_industrial-uncompressed-noconflict.js +190 -0
  241. data/lib/apps/texteditor/js/theme-mono_industrial-uncompressed.js +190 -0
  242. data/lib/apps/texteditor/js/theme-mono_industrial.js +1 -0
  243. data/lib/apps/texteditor/js/theme-monokai-noconflict.js +1 -0
  244. data/lib/apps/texteditor/js/theme-monokai-uncompressed-noconflict.js +188 -0
  245. data/lib/apps/texteditor/js/theme-monokai-uncompressed.js +188 -0
  246. data/lib/apps/texteditor/js/theme-monokai.js +1 -0
  247. data/lib/apps/texteditor/js/theme-pastel_on_dark-noconflict.js +1 -0
  248. data/lib/apps/texteditor/js/theme-pastel_on_dark-uncompressed-noconflict.js +192 -0
  249. data/lib/apps/texteditor/js/theme-pastel_on_dark-uncompressed.js +192 -0
  250. data/lib/apps/texteditor/js/theme-pastel_on_dark.js +1 -0
  251. data/lib/apps/texteditor/js/theme-solarized_dark-noconflict.js +1 -0
  252. data/lib/apps/texteditor/js/theme-solarized_dark-uncompressed-noconflict.js +173 -0
  253. data/lib/apps/texteditor/js/theme-solarized_dark-uncompressed.js +173 -0
  254. data/lib/apps/texteditor/js/theme-solarized_dark.js +1 -0
  255. data/lib/apps/texteditor/js/theme-solarized_light-noconflict.js +1 -0
  256. data/lib/apps/texteditor/js/theme-solarized_light-uncompressed-noconflict.js +172 -0
  257. data/lib/apps/texteditor/js/theme-solarized_light-uncompressed.js +172 -0
  258. data/lib/apps/texteditor/js/theme-solarized_light.js +1 -0
  259. data/lib/apps/texteditor/js/theme-textmate-noconflict.js +0 -0
  260. data/lib/apps/texteditor/js/theme-textmate-uncompressed-noconflict.js +0 -0
  261. data/lib/apps/texteditor/js/theme-textmate-uncompressed.js +0 -0
  262. data/lib/apps/texteditor/js/theme-textmate.js +0 -0
  263. data/lib/apps/texteditor/js/theme-tomorrow-noconflict.js +1 -0
  264. data/lib/apps/texteditor/js/theme-tomorrow-uncompressed-noconflict.js +206 -0
  265. data/lib/apps/texteditor/js/theme-tomorrow-uncompressed.js +206 -0
  266. data/lib/apps/texteditor/js/theme-tomorrow.js +1 -0
  267. data/lib/apps/texteditor/js/theme-tomorrow_night-noconflict.js +1 -0
  268. data/lib/apps/texteditor/js/theme-tomorrow_night-uncompressed-noconflict.js +206 -0
  269. data/lib/apps/texteditor/js/theme-tomorrow_night-uncompressed.js +206 -0
  270. data/lib/apps/texteditor/js/theme-tomorrow_night.js +1 -0
  271. data/lib/apps/texteditor/js/theme-tomorrow_night_blue-noconflict.js +1 -0
  272. data/lib/apps/texteditor/js/theme-tomorrow_night_blue-uncompressed-noconflict.js +206 -0
  273. data/lib/apps/texteditor/js/theme-tomorrow_night_blue-uncompressed.js +206 -0
  274. data/lib/apps/texteditor/js/theme-tomorrow_night_blue.js +1 -0
  275. data/lib/apps/texteditor/js/theme-tomorrow_night_bright-noconflict.js +1 -0
  276. data/lib/apps/texteditor/js/theme-tomorrow_night_bright-uncompressed-noconflict.js +206 -0
  277. data/lib/apps/texteditor/js/theme-tomorrow_night_bright-uncompressed.js +206 -0
  278. data/lib/apps/texteditor/js/theme-tomorrow_night_bright.js +1 -0
  279. data/lib/apps/texteditor/js/theme-tomorrow_night_eighties-noconflict.js +1 -0
  280. data/lib/apps/texteditor/js/theme-tomorrow_night_eighties-uncompressed-noconflict.js +202 -0
  281. data/lib/apps/texteditor/js/theme-tomorrow_night_eighties-uncompressed.js +202 -0
  282. data/lib/apps/texteditor/js/theme-tomorrow_night_eighties.js +1 -0
  283. data/lib/apps/texteditor/js/theme-twilight-noconflict.js +1 -0
  284. data/lib/apps/texteditor/js/theme-twilight-uncompressed-noconflict.js +204 -0
  285. data/lib/apps/texteditor/js/theme-twilight-uncompressed.js +204 -0
  286. data/lib/apps/texteditor/js/theme-twilight.js +1 -0
  287. data/lib/apps/texteditor/js/theme-vibrant_ink-noconflict.js +1 -0
  288. data/lib/apps/texteditor/js/theme-vibrant_ink-uncompressed-noconflict.js +183 -0
  289. data/lib/apps/texteditor/js/theme-vibrant_ink-uncompressed.js +183 -0
  290. data/lib/apps/texteditor/js/theme-vibrant_ink.js +1 -0
  291. data/lib/apps/texteditor/js/worker-coffee.js +7991 -0
  292. data/lib/apps/texteditor/js/worker-css.js +12224 -0
  293. data/lib/apps/texteditor/js/worker-javascript.js +11124 -0
  294. data/lib/apps/texteditor/js/worker-json.js +3593 -0
  295. data/lib/apps/texteditor/options.json +16 -0
  296. data/lib/daftos/.DS_Store +0 -0
  297. data/lib/daftos/server.rb +106 -0
  298. data/lib/daftos/views/app_footer.erb +2 -0
  299. data/lib/daftos/views/app_header.erb +33 -0
  300. data/lib/daftos.rb +25 -2
  301. data/lib/libs/.DS_Store +0 -0
  302. data/lib/libs/coffee/daftos.coffee +36 -0
  303. data/lib/libs/css/bootstrap.css +3496 -0
  304. data/lib/libs/js/bootstrap.js +1720 -0
  305. data/lib/libs/js/jquery.js +4 -0
  306. data/myapp.pid +1 -0
  307. metadata +325 -12
@@ -0,0 +1,708 @@
1
+ ace.define('ace/mode/powershell', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/text', 'ace/tokenizer', 'ace/mode/powershell_highlight_rules', 'ace/mode/matching_brace_outdent', 'ace/mode/behaviour/cstyle', 'ace/mode/folding/cstyle'], function(require, exports, module) {
2
+ "use strict";
3
+
4
+ var oop = require("../lib/oop");
5
+ var TextMode = require("./text").Mode;
6
+ var Tokenizer = require("../tokenizer").Tokenizer;
7
+ var PowershellHighlightRules = require("./powershell_highlight_rules").PowershellHighlightRules;
8
+ var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent;
9
+ var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour;
10
+ var CStyleFoldMode = require("./folding/cstyle").FoldMode;
11
+
12
+ var Mode = function() {
13
+ this.$tokenizer = new Tokenizer(new PowershellHighlightRules().getRules());
14
+ this.$outdent = new MatchingBraceOutdent();
15
+ this.$behaviour = new CstyleBehaviour();
16
+ this.foldingRules = new CStyleFoldMode();
17
+ };
18
+ oop.inherits(Mode, TextMode);
19
+
20
+ (function() {
21
+
22
+ this.getNextLineIndent = function(state, line, tab) {
23
+ var indent = this.$getIndent(line);
24
+
25
+ var tokenizedLine = this.$tokenizer.getLineTokens(line, state);
26
+ var tokens = tokenizedLine.tokens;
27
+
28
+ if (tokens.length && tokens[tokens.length-1].type == "comment") {
29
+ return indent;
30
+ }
31
+
32
+ if (state == "start") {
33
+ var match = line.match(/^.*[\{\(\[]\s*$/);
34
+ if (match) {
35
+ indent += tab;
36
+ }
37
+ }
38
+
39
+ return indent;
40
+ };
41
+
42
+ this.checkOutdent = function(state, line, input) {
43
+ return this.$outdent.checkOutdent(line, input);
44
+ };
45
+
46
+ this.autoOutdent = function(state, doc, row) {
47
+ this.$outdent.autoOutdent(doc, row);
48
+ };
49
+
50
+
51
+ this.createWorker = function(session) {
52
+ return null;
53
+ };
54
+
55
+ }).call(Mode.prototype);
56
+
57
+ exports.Mode = Mode;
58
+ });
59
+ ace.define('ace/mode/powershell_highlight_rules', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/lib/lang', 'ace/mode/text_highlight_rules'], function(require, exports, module) {
60
+ "use strict";
61
+
62
+ var oop = require("../lib/oop");
63
+ var lang = require("../lib/lang");
64
+ var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules;
65
+
66
+ var PowershellHighlightRules = function() {
67
+
68
+ var keywords = lang.arrayToMap(
69
+ ("function|if|else|elseif|switch|while|default|for|do|until|break|continue|" +
70
+ "foreach|return|filter|in|trap|throw|param|begin|process|end").split("|")
71
+ );
72
+
73
+ var builtinFunctions = lang.arrayToMap(
74
+ ("Get-Alias|Import-Alias|New-Alias|Set-Alias|Get-AuthenticodeSignature|Set-AuthenticodeSignature|" +
75
+ "Set-Location|Get-ChildItem|Clear-Item|Get-Command|Measure-Command|Trace-Command|" +
76
+ "Add-Computer|Checkpoint-Computer|Remove-Computer|Restart-Computer|Restore-Computer|Stop-Computer|" +
77
+ "Reset-ComputerMachinePassword|Test-ComputerSecureChannel|Add-Content|Get-Content|Set-Content|Clear-Content|" +
78
+ "Get-Command|Invoke-Command|Enable-ComputerRestore|Disable-ComputerRestore|Get-ComputerRestorePoint|Test-Connection|" +
79
+ "ConvertFrom-CSV|ConvertTo-CSV|ConvertTo-Html|ConvertTo-Xml|ConvertFrom-SecureString|ConvertTo-SecureString|" +
80
+ "Copy-Item|Export-Counter|Get-Counter|Import-Counter|Get-Credential|Get-Culture|" +
81
+ "Get-ChildItem|Get-Date|Set-Date|Remove-Item|Compare-Object|Get-Event|" +
82
+ "Get-WinEvent|New-Event|Remove-Event|Unregister-Event|Wait-Event|Clear-EventLog|" +
83
+ "Get-Eventlog|Limit-EventLog|New-Eventlog|Remove-EventLog|Show-EventLog|Write-EventLog|" +
84
+ "Get-EventSubscriber|Register-EngineEvent|Register-ObjectEvent|Register-WmiEvent|Get-ExecutionPolicy|Set-ExecutionPolicy|" +
85
+ "Export-Alias|Export-Clixml|Export-Console|Export-Csv|ForEach-Object|Format-Custom|" +
86
+ "Format-List|Format-Table|Format-Wide|Export-FormatData|Get-FormatData|Get-Item|" +
87
+ "Get-ChildItem|Get-Help|Add-History|Clear-History|Get-History|Invoke-History|" +
88
+ "Get-Host|Read-Host|Write-Host|Get-HotFix|Import-Clixml|Import-Csv|" +
89
+ "Invoke-Command|Invoke-Expression|Get-Item|Invoke-Item|New-Item|Remove-Item|" +
90
+ "Set-Item|Clear-ItemProperty|Copy-ItemProperty|Get-ItemProperty|Move-ItemProperty|New-ItemProperty|" +
91
+ "Remove-ItemProperty|Rename-ItemProperty|Set-ItemProperty|Get-Job|Receive-Job|Remove-Job|" +
92
+ "Start-Job|Stop-Job|Wait-Job|Stop-Process|Update-List|Get-Location|" +
93
+ "Pop-Location|Push-Location|Set-Location|Send-MailMessage|Add-Member|Get-Member|" +
94
+ "Move-Item|Compare-Object|Group-Object|Measure-Object|New-Object|Select-Object|" +
95
+ "Sort-Object|Where-Object|Out-Default|Out-File|Out-GridView|Out-Host|" +
96
+ "Out-Null|Out-Printer|Out-String|Convert-Path|Join-Path|Resolve-Path|" +
97
+ "Split-Path|Test-Path|Get-Pfxcertificate|Pop-Location|Push-Location|Get-Process|" +
98
+ "Start-Process|Stop-Process|Wait-Process|Enable-PSBreakpoint|Disable-PSBreakpoint|Get-PSBreakpoint|" +
99
+ "Set-PSBreakpoint|Remove-PSBreakpoint|Get-PSDrive|New-PSDrive|Remove-PSDrive|Get-PSProvider|" +
100
+ "Set-PSdebug|Enter-PSSession|Exit-PSSession|Export-PSSession|Get-PSSession|Import-PSSession|" +
101
+ "New-PSSession|Remove-PSSession|Disable-PSSessionConfiguration|Enable-PSSessionConfiguration|Get-PSSessionConfiguration|Register-PSSessionConfiguration|" +
102
+ "Set-PSSessionConfiguration|Unregister-PSSessionConfiguration|New-PSSessionOption|Add-PsSnapIn|Get-PsSnapin|Remove-PSSnapin|" +
103
+ "Get-Random|Read-Host|Remove-Item|Rename-Item|Rename-ItemProperty|Select-Object|" +
104
+ "Select-XML|Send-MailMessage|Get-Service|New-Service|Restart-Service|Resume-Service|" +
105
+ "Set-Service|Start-Service|Stop-Service|Suspend-Service|Sort-Object|Start-Sleep|" +
106
+ "ConvertFrom-StringData|Select-String|Tee-Object|New-Timespan|Trace-Command|Get-Tracesource|" +
107
+ "Set-Tracesource|Start-Transaction|Complete-Transaction|Get-Transaction|Use-Transaction|Undo-Transaction|" +
108
+ "Start-Transcript|Stop-Transcript|Add-Type|Update-TypeData|Get-Uiculture|Get-Unique|" +
109
+ "Update-Formatdata|Update-Typedata|Clear-Variable|Get-Variable|New-Variable|Remove-Variable|" +
110
+ "Set-Variable|New-WebServiceProxy|Where-Object|Write-Debug|Write-Error|Write-Host|" +
111
+ "Write-Output|Write-Progress|Write-Verbose|Write-Warning|Set-WmiInstance|Invoke-WmiMethod|" +
112
+ "Get-WmiObject|Remove-WmiObject|Connect-WSMan|Disconnect-WSMan|Test-WSMan|Invoke-WSManAction|" +
113
+ "Disable-WSManCredSSP|Enable-WSManCredSSP|Get-WSManCredSSP|New-WSManInstance|Get-WSManInstance|Set-WSManInstance|" +
114
+ "Remove-WSManInstance|Set-WSManQuickConfig|New-WSManSessionOption").split("|"));
115
+
116
+ var binaryOperatorsRe = "eq|ne|ge|gt|lt|le|like|notlike|match|notmatch|replace|contains|notcontains|" +
117
+ "ieq|ine|ige|igt|ile|ilt|ilike|inotlike|imatch|inotmatch|ireplace|icontains|inotcontains|" +
118
+ "is|isnot|as|" +
119
+ "and|or|band|bor|not";
120
+
121
+ // regexp must not have capturing parentheses. Use (?:) instead.
122
+ // regexps are ordered -> the first match is used
123
+
124
+ this.$rules = {
125
+ "start" : [
126
+ {
127
+ token : "comment",
128
+ regex : "#.*$"
129
+ }, {
130
+ token : "string", // single line
131
+ regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]'
132
+ }, {
133
+ token : "string", // single line
134
+ regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"
135
+ }, {
136
+ token : "constant.numeric", // hex
137
+ regex : "0[xX][0-9a-fA-F]+\\b"
138
+ }, {
139
+ token : "constant.numeric", // float
140
+ regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"
141
+ }, {
142
+ token : "constant.language.boolean",
143
+ regex : "[$](?:[Tt]rue|[Ff]alse)\\b"
144
+ }, {
145
+ token : "constant.language",
146
+ regex : "[$][Nn]ull\\b"
147
+ }, {
148
+ token : "variable.instance",
149
+ regex : "[$][a-zA-Z][a-zA-Z0-9_]*\\b"
150
+ }, {
151
+ token : function(value) {
152
+ if (keywords.hasOwnProperty(value))
153
+ return "keyword";
154
+ else if (builtinFunctions.hasOwnProperty(value))
155
+ return "support.function";
156
+ else
157
+ return "identifier";
158
+ },
159
+ // TODO: Unicode escape sequences
160
+ // TODO: Unicode identifiers
161
+ regex : "[a-zA-Z_$][a-zA-Z0-9_$\\-]*\\b"
162
+ }, {
163
+ token : "keyword.operator",
164
+ regex : "\\-(?:" + binaryOperatorsRe + ")"
165
+ }, {
166
+ token : "keyword.operator",
167
+ regex : "&|\\*|\\+|\\-|\\=|\\+=|\\-="
168
+ }, {
169
+ token : "lparen",
170
+ regex : "[[({]"
171
+ }, {
172
+ token : "rparen",
173
+ regex : "[\\])}]"
174
+ }, {
175
+ token : "text",
176
+ regex : "\\s+"
177
+ }
178
+ ],
179
+ "comment" : [
180
+ {
181
+ token : "comment", // closing comment
182
+ regex : ".*?\\*\\/",
183
+ next : "start"
184
+ }, {
185
+ token : "comment", // comment spanning whole line
186
+ merge : true,
187
+ regex : ".+"
188
+ }
189
+ ]
190
+ };
191
+ };
192
+
193
+ oop.inherits(PowershellHighlightRules, TextHighlightRules);
194
+
195
+ exports.PowershellHighlightRules = PowershellHighlightRules;
196
+ });
197
+ /* ***** BEGIN LICENSE BLOCK *****
198
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
199
+ *
200
+ * The contents of this file are subject to the Mozilla Public License Version
201
+ * 1.1 (the "License"); you may not use this file except in compliance with
202
+ * the License. You may obtain a copy of the License at
203
+ * http://www.mozilla.org/MPL/
204
+ *
205
+ * Software distributed under the License is distributed on an "AS IS" basis,
206
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
207
+ * for the specific language governing rights and limitations under the
208
+ * License.
209
+ *
210
+ * The Original Code is Ajax.org Code Editor (ACE).
211
+ *
212
+ * The Initial Developer of the Original Code is
213
+ * Ajax.org B.V.
214
+ * Portions created by the Initial Developer are Copyright (C) 2010
215
+ * the Initial Developer. All Rights Reserved.
216
+ *
217
+ * Contributor(s):
218
+ * Fabian Jakobs <fabian AT ajax DOT org>
219
+ *
220
+ * Alternatively, the contents of this file may be used under the terms of
221
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
222
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
223
+ * in which case the provisions of the GPL or the LGPL are applicable instead
224
+ * of those above. If you wish to allow use of your version of this file only
225
+ * under the terms of either the GPL or the LGPL, and not to allow others to
226
+ * use your version of this file under the terms of the MPL, indicate your
227
+ * decision by deleting the provisions above and replace them with the notice
228
+ * and other provisions required by the GPL or the LGPL. If you do not delete
229
+ * the provisions above, a recipient may use your version of this file under
230
+ * the terms of any one of the MPL, the GPL or the LGPL.
231
+ *
232
+ * ***** END LICENSE BLOCK ***** */
233
+
234
+ ace.define('ace/mode/matching_brace_outdent', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
235
+ "use strict";
236
+
237
+ var Range = require("../range").Range;
238
+
239
+ var MatchingBraceOutdent = function() {};
240
+
241
+ (function() {
242
+
243
+ this.checkOutdent = function(line, input) {
244
+ if (! /^\s+$/.test(line))
245
+ return false;
246
+
247
+ return /^\s*\}/.test(input);
248
+ };
249
+
250
+ this.autoOutdent = function(doc, row) {
251
+ var line = doc.getLine(row);
252
+ var match = line.match(/^(\s*\})/);
253
+
254
+ if (!match) return 0;
255
+
256
+ var column = match[1].length;
257
+ var openBracePos = doc.findMatchingBracket({row: row, column: column});
258
+
259
+ if (!openBracePos || openBracePos.row == row) return 0;
260
+
261
+ var indent = this.$getIndent(doc.getLine(openBracePos.row));
262
+ doc.replace(new Range(row, 0, row, column-1), indent);
263
+ };
264
+
265
+ this.$getIndent = function(line) {
266
+ var match = line.match(/^(\s+)/);
267
+ if (match) {
268
+ return match[1];
269
+ }
270
+
271
+ return "";
272
+ };
273
+
274
+ }).call(MatchingBraceOutdent.prototype);
275
+
276
+ exports.MatchingBraceOutdent = MatchingBraceOutdent;
277
+ });
278
+ /* vim:ts=4:sts=4:sw=4:
279
+ * ***** BEGIN LICENSE BLOCK *****
280
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
281
+ *
282
+ * The contents of this file are subject to the Mozilla Public License Version
283
+ * 1.1 (the "License"); you may not use this file except in compliance with
284
+ * the License. You may obtain a copy of the License at
285
+ * http://www.mozilla.org/MPL/
286
+ *
287
+ * Software distributed under the License is distributed on an "AS IS" basis,
288
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
289
+ * for the specific language governing rights and limitations under the
290
+ * License.
291
+ *
292
+ * The Original Code is Ajax.org Code Editor (ACE).
293
+ *
294
+ * The Initial Developer of the Original Code is
295
+ * Ajax.org B.V.
296
+ * Portions created by the Initial Developer are Copyright (C) 2010
297
+ * the Initial Developer. All Rights Reserved.
298
+ *
299
+ * Contributor(s):
300
+ * Chris Spencer <chris.ag.spencer AT googlemail DOT com>
301
+ *
302
+ * Alternatively, the contents of this file may be used under the terms of
303
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
304
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
305
+ * in which case the provisions of the GPL or the LGPL are applicable instead
306
+ * of those above. If you wish to allow use of your version of this file only
307
+ * under the terms of either the GPL or the LGPL, and not to allow others to
308
+ * use your version of this file under the terms of the MPL, indicate your
309
+ * decision by deleting the provisions above and replace them with the notice
310
+ * and other provisions required by the GPL or the LGPL. If you do not delete
311
+ * the provisions above, a recipient may use your version of this file under
312
+ * the terms of any one of the MPL, the GPL or the LGPL.
313
+ *
314
+ * ***** END LICENSE BLOCK ***** */
315
+
316
+ ace.define('ace/mode/behaviour/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/mode/behaviour'], function(require, exports, module) {
317
+ "use strict";
318
+
319
+ var oop = require("../../lib/oop");
320
+ var Behaviour = require('../behaviour').Behaviour;
321
+
322
+ var CstyleBehaviour = function () {
323
+
324
+ this.add("braces", "insertion", function (state, action, editor, session, text) {
325
+ if (text == '{') {
326
+ var selection = editor.getSelectionRange();
327
+ var selected = session.doc.getTextRange(selection);
328
+ if (selected !== "") {
329
+ return {
330
+ text: '{' + selected + '}',
331
+ selection: false
332
+ };
333
+ } else {
334
+ return {
335
+ text: '{}',
336
+ selection: [1, 1]
337
+ };
338
+ }
339
+ } else if (text == '}') {
340
+ var cursor = editor.getCursorPosition();
341
+ var line = session.doc.getLine(cursor.row);
342
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
343
+ if (rightChar == '}') {
344
+ var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row});
345
+ if (matching !== null) {
346
+ return {
347
+ text: '',
348
+ selection: [1, 1]
349
+ };
350
+ }
351
+ }
352
+ } else if (text == "\n") {
353
+ var cursor = editor.getCursorPosition();
354
+ var line = session.doc.getLine(cursor.row);
355
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
356
+ if (rightChar == '}') {
357
+ var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column + 1});
358
+ if (!openBracePos)
359
+ return null;
360
+
361
+ var indent = this.getNextLineIndent(state, line.substring(0, line.length - 1), session.getTabString());
362
+ var next_indent = this.$getIndent(session.doc.getLine(openBracePos.row));
363
+
364
+ return {
365
+ text: '\n' + indent + '\n' + next_indent,
366
+ selection: [1, indent.length, 1, indent.length]
367
+ };
368
+ }
369
+ }
370
+ });
371
+
372
+ this.add("braces", "deletion", function (state, action, editor, session, range) {
373
+ var selected = session.doc.getTextRange(range);
374
+ if (!range.isMultiLine() && selected == '{') {
375
+ var line = session.doc.getLine(range.start.row);
376
+ var rightChar = line.substring(range.end.column, range.end.column + 1);
377
+ if (rightChar == '}') {
378
+ range.end.column++;
379
+ return range;
380
+ }
381
+ }
382
+ });
383
+
384
+ this.add("parens", "insertion", function (state, action, editor, session, text) {
385
+ if (text == '(') {
386
+ var selection = editor.getSelectionRange();
387
+ var selected = session.doc.getTextRange(selection);
388
+ if (selected !== "") {
389
+ return {
390
+ text: '(' + selected + ')',
391
+ selection: false
392
+ };
393
+ } else {
394
+ return {
395
+ text: '()',
396
+ selection: [1, 1]
397
+ };
398
+ }
399
+ } else if (text == ')') {
400
+ var cursor = editor.getCursorPosition();
401
+ var line = session.doc.getLine(cursor.row);
402
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
403
+ if (rightChar == ')') {
404
+ var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row});
405
+ if (matching !== null) {
406
+ return {
407
+ text: '',
408
+ selection: [1, 1]
409
+ };
410
+ }
411
+ }
412
+ }
413
+ });
414
+
415
+ this.add("parens", "deletion", function (state, action, editor, session, range) {
416
+ var selected = session.doc.getTextRange(range);
417
+ if (!range.isMultiLine() && selected == '(') {
418
+ var line = session.doc.getLine(range.start.row);
419
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
420
+ if (rightChar == ')') {
421
+ range.end.column++;
422
+ return range;
423
+ }
424
+ }
425
+ });
426
+
427
+ this.add("string_dquotes", "insertion", function (state, action, editor, session, text) {
428
+ if (text == '"' || text == "'") {
429
+ var quote = text;
430
+ var selection = editor.getSelectionRange();
431
+ var selected = session.doc.getTextRange(selection);
432
+ if (selected !== "") {
433
+ return {
434
+ text: quote + selected + quote,
435
+ selection: false
436
+ };
437
+ } else {
438
+ var cursor = editor.getCursorPosition();
439
+ var line = session.doc.getLine(cursor.row);
440
+ var leftChar = line.substring(cursor.column-1, cursor.column);
441
+
442
+ // We're escaped.
443
+ if (leftChar == '\\') {
444
+ return null;
445
+ }
446
+
447
+ // Find what token we're inside.
448
+ var tokens = session.getTokens(selection.start.row, selection.start.row)[0].tokens;
449
+ var col = 0, token;
450
+ var quotepos = -1; // Track whether we're inside an open quote.
451
+
452
+ for (var x = 0; x < tokens.length; x++) {
453
+ token = tokens[x];
454
+ if (token.type == "string") {
455
+ quotepos = -1;
456
+ } else if (quotepos < 0) {
457
+ quotepos = token.value.indexOf(quote);
458
+ }
459
+ if ((token.value.length + col) > selection.start.column) {
460
+ break;
461
+ }
462
+ col += tokens[x].value.length;
463
+ }
464
+
465
+ // Try and be smart about when we auto insert.
466
+ if (!token || (quotepos < 0 && token.type !== "comment" && (token.type !== "string" || ((selection.start.column !== token.value.length+col-1) && token.value.lastIndexOf(quote) === token.value.length-1)))) {
467
+ return {
468
+ text: quote + quote,
469
+ selection: [1,1]
470
+ };
471
+ } else if (token && token.type === "string") {
472
+ // Ignore input and move right one if we're typing over the closing quote.
473
+ var rightChar = line.substring(cursor.column, cursor.column + 1);
474
+ if (rightChar == quote) {
475
+ return {
476
+ text: '',
477
+ selection: [1, 1]
478
+ };
479
+ }
480
+ }
481
+ }
482
+ }
483
+ });
484
+
485
+ this.add("string_dquotes", "deletion", function (state, action, editor, session, range) {
486
+ var selected = session.doc.getTextRange(range);
487
+ if (!range.isMultiLine() && (selected == '"' || selected == "'")) {
488
+ var line = session.doc.getLine(range.start.row);
489
+ var rightChar = line.substring(range.start.column + 1, range.start.column + 2);
490
+ if (rightChar == '"') {
491
+ range.end.column++;
492
+ return range;
493
+ }
494
+ }
495
+ });
496
+
497
+ };
498
+
499
+ oop.inherits(CstyleBehaviour, Behaviour);
500
+
501
+ exports.CstyleBehaviour = CstyleBehaviour;
502
+ });/* ***** BEGIN LICENSE BLOCK *****
503
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
504
+ *
505
+ * The contents of this file are subject to the Mozilla Public License Version
506
+ * 1.1 (the "License"); you may not use this file except in compliance with
507
+ * the License. You may obtain a copy of the License at
508
+ * http://www.mozilla.org/MPL/
509
+ *
510
+ * Software distributed under the License is distributed on an "AS IS" basis,
511
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
512
+ * for the specific language governing rights and limitations under the
513
+ * License.
514
+ *
515
+ * The Original Code is Ajax.org Code Editor (ACE).
516
+ *
517
+ * The Initial Developer of the Original Code is
518
+ * Ajax.org B.V.
519
+ * Portions created by the Initial Developer are Copyright (C) 2010
520
+ * the Initial Developer. All Rights Reserved.
521
+ *
522
+ * Contributor(s):
523
+ * Fabian Jakobs <fabian AT ajax DOT org>
524
+ *
525
+ * Alternatively, the contents of this file may be used under the terms of
526
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
527
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
528
+ * in which case the provisions of the GPL or the LGPL are applicable instead
529
+ * of those above. If you wish to allow use of your version of this file only
530
+ * under the terms of either the GPL or the LGPL, and not to allow others to
531
+ * use your version of this file under the terms of the MPL, indicate your
532
+ * decision by deleting the provisions above and replace them with the notice
533
+ * and other provisions required by the GPL or the LGPL. If you do not delete
534
+ * the provisions above, a recipient may use your version of this file under
535
+ * the terms of any one of the MPL, the GPL or the LGPL.
536
+ *
537
+ * ***** END LICENSE BLOCK ***** */
538
+
539
+ ace.define('ace/mode/folding/cstyle', ['require', 'exports', 'module' , 'ace/lib/oop', 'ace/range', 'ace/mode/folding/fold_mode'], function(require, exports, module) {
540
+ "use strict";
541
+
542
+ var oop = require("../../lib/oop");
543
+ var Range = require("../../range").Range;
544
+ var BaseFoldMode = require("./fold_mode").FoldMode;
545
+
546
+ var FoldMode = exports.FoldMode = function() {};
547
+ oop.inherits(FoldMode, BaseFoldMode);
548
+
549
+ (function() {
550
+
551
+ this.foldingStartMarker = /(\{|\[)[^\}\]]*$|^\s*(\/\*)/;
552
+ this.foldingStopMarker = /^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/;
553
+
554
+ this.getFoldWidgetRange = function(session, foldStyle, row) {
555
+ var line = session.getLine(row);
556
+ var match = line.match(this.foldingStartMarker);
557
+ if (match) {
558
+ var i = match.index;
559
+
560
+ if (match[1])
561
+ return this.openingBracketBlock(session, match[1], row, i);
562
+
563
+ var range = session.getCommentFoldRange(row, i + match[0].length);
564
+ range.end.column -= 2;
565
+ return range;
566
+ }
567
+
568
+ if (foldStyle !== "markbeginend")
569
+ return;
570
+
571
+ var match = line.match(this.foldingStopMarker);
572
+ if (match) {
573
+ var i = match.index + match[0].length;
574
+
575
+ if (match[2]) {
576
+ var range = session.getCommentFoldRange(row, i);
577
+ range.end.column -= 2;
578
+ return range;
579
+ }
580
+
581
+ var end = {row: row, column: i};
582
+ var start = session.$findOpeningBracket(match[1], end);
583
+
584
+ if (!start)
585
+ return;
586
+
587
+ start.column++;
588
+ end.column--;
589
+
590
+ return Range.fromPoints(start, end);
591
+ }
592
+ };
593
+
594
+ }).call(FoldMode.prototype);
595
+
596
+ });/* ***** BEGIN LICENSE BLOCK *****
597
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
598
+ *
599
+ * The contents of this file are subject to the Mozilla Public License Version
600
+ * 1.1 (the "License"); you may not use this file except in compliance with
601
+ * the License. You may obtain a copy of the License at
602
+ * http://www.mozilla.org/MPL/
603
+ *
604
+ * Software distributed under the License is distributed on an "AS IS" basis,
605
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
606
+ * for the specific language governing rights and limitations under the
607
+ * License.
608
+ *
609
+ * The Original Code is Ajax.org Code Editor (ACE).
610
+ *
611
+ * The Initial Developer of the Original Code is
612
+ * Ajax.org B.V.
613
+ * Portions created by the Initial Developer are Copyright (C) 2010
614
+ * the Initial Developer. All Rights Reserved.
615
+ *
616
+ * Contributor(s):
617
+ * Fabian Jakobs <fabian AT ajax DOT org>
618
+ *
619
+ * Alternatively, the contents of this file may be used under the terms of
620
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
621
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
622
+ * in which case the provisions of the GPL or the LGPL are applicable instead
623
+ * of those above. If you wish to allow use of your version of this file only
624
+ * under the terms of either the GPL or the LGPL, and not to allow others to
625
+ * use your version of this file under the terms of the MPL, indicate your
626
+ * decision by deleting the provisions above and replace them with the notice
627
+ * and other provisions required by the GPL or the LGPL. If you do not delete
628
+ * the provisions above, a recipient may use your version of this file under
629
+ * the terms of any one of the MPL, the GPL or the LGPL.
630
+ *
631
+ * ***** END LICENSE BLOCK ***** */
632
+
633
+ ace.define('ace/mode/folding/fold_mode', ['require', 'exports', 'module' , 'ace/range'], function(require, exports, module) {
634
+ "use strict";
635
+
636
+ var Range = require("../../range").Range;
637
+
638
+ var FoldMode = exports.FoldMode = function() {};
639
+
640
+ (function() {
641
+
642
+ this.foldingStartMarker = null;
643
+ this.foldingStopMarker = null;
644
+
645
+ // must return "" if there's no fold, to enable caching
646
+ this.getFoldWidget = function(session, foldStyle, row) {
647
+ var line = session.getLine(row);
648
+ if (this.foldingStartMarker.test(line))
649
+ return "start";
650
+ if (foldStyle == "markbeginend"
651
+ && this.foldingStopMarker
652
+ && this.foldingStopMarker.test(line))
653
+ return "end";
654
+ return "";
655
+ };
656
+
657
+ this.getFoldWidgetRange = function(session, foldStyle, row) {
658
+ return null;
659
+ };
660
+
661
+ this.indentationBlock = function(session, row, column) {
662
+ var re = /^\s*/;
663
+ var startRow = row;
664
+ var endRow = row;
665
+ var line = session.getLine(row);
666
+ var startColumn = column || line.length;
667
+ var startLevel = line.match(re)[0].length;
668
+ var maxRow = session.getLength()
669
+
670
+ while (++row < maxRow) {
671
+ line = session.getLine(row);
672
+ var level = line.match(re)[0].length;
673
+
674
+ if (level == line.length)
675
+ continue;
676
+
677
+ if (level <= startLevel)
678
+ break;
679
+
680
+ endRow = row;
681
+ }
682
+
683
+ if (endRow > startRow) {
684
+ var endColumn = session.getLine(endRow).length;
685
+ return new Range(startRow, startColumn, endRow, endColumn);
686
+ }
687
+ };
688
+
689
+ this.openingBracketBlock = function(session, bracket, row, column) {
690
+ var start = {row: row, column: column + 1};
691
+ var end = session.$findClosingBracket(bracket, start);
692
+ if (!end)
693
+ return;
694
+
695
+ var fw = session.foldWidgets[end.row];
696
+ if (fw == null)
697
+ fw = this.getFoldWidget(session, end.row);
698
+
699
+ if (fw == "start") {
700
+ end.row --;
701
+ end.column = session.getLine(end.row).length;
702
+ }
703
+ return Range.fromPoints(start, end);
704
+ };
705
+
706
+ }).call(FoldMode.prototype);
707
+
708
+ });