Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

update list of ace modes, and add support for setting syntax from commandline #1606

Closed
wants to merge 77 commits into from

5 participants

@nightwing
Owner

No description provided.

nightwing and others added some commits
@nightwing nightwing window.event is undefined on firefox 163eb59
@nightwing nightwing fix gitblame plugin (still disabled) ede56ba
@nightwing nightwing update ace bdc9e9e
@nightwing nightwing tweak css and add gitblame to default config 3b7468f
@javruben javruben merged with master 124573a
Vlad Zinculescu ace gutter icons light/dark d817818
Vlad Zinculescu add source psd-s for sprites 085cd65
Vlad Zinculescu preparing for black themes and theme monokai eeec7df
Vlad Zinculescu add c9-find-and-replace.png d902d66
Vlad Zinculescu theme monokai ea57abf
Vlad Zinculescu theme chrome 857d2c8
Vlad Zinculescu default color for ace_gutter_active_line (dark and light themes) 62a2cf8
Vlad Zinculescu theme clouds 19dc186
Vlad Zinculescu c9 changes theme depending on ace theme. increased btnsesssioncontain…
…er to 27px
ad88145
@nightwing nightwing nicer handling of first visible blame line cc06e2d
@nightwing nightwing add tooltip 75150a8
Vlad Zinculescu White horizontal line between hearder of sidebar panel and body is se…
…mi-transparant
3ddce4f
Vlad Zinculescu addapt .divider-status-bar for dark themes b38a800
Vlad Zinculescu removed unnecesary apf.setStyleClass on body f11968e
Vlad Zinculescu fixed dividers for left sidebar 33ee3b8
Vlad Zinculescu removed color from sprite for unselected tabs in dark themes da5a6a4
Vlad Zinculescu adapt gotofile's skin to current ide skin 9058548
Vlad Zinculescu fixed alignment of search elements is wrong 9238fd0
Vlad Zinculescu style improvements for gotofile dialog c77e44a
@mattpardee mattpardee Cut out child elements after a certain point 0df3230
@javruben javruben Merge branch 'master' of github.com:ajaxorg/cloud9 into ui/search d15df8b
Vlad Zinculescu make whithe lines in left sidebar more transparent e81b978
@javruben javruben * Gets white line to be displayed between tab buttons and editor a58cfb8
@javruben javruben * Tab buttons should not go under the c9 logo 637d8fa
@javruben javruben * position fix for settings dropdowns e30db99
@javruben javruben Merge branch 'master' of github.com:ajaxorg/cloud9 into improvement/c…
…onsolebuffer
b6ec2fd
@javruben javruben Merge branch 'master' of github.com:ajaxorg/cloud9 into improvement/c…
…onsolebuffer
1b13bce
Vlad Zinculescu Merge branch 'ui/search' of github.com:ajaxorg/cloud9 into ui/search 171590e
Vlad Zinculescu improvements for tabs and theire containers bbcbf7f
Vlad Zinculescu fixed style in gotofile for highlighted search term fdffc95
Vlad Zinculescu fixed panel-settings bg position; fixed dark theme minimized tabs gra…
…dient
d54d676
Vlad Zinculescu default state for c9-activity 250637c
Vlad Zinculescu fix for pannel-settings and no tabs background 142fb8b
Vlad Zinculescu updated ide theme colors and c9-repeat-x.psd 66736a0
@gjtorikian gjtorikian Changes to packaging to support local & infra 13e7e94
@gjtorikian gjtorikian Turn -r/real into -P/packed 9a23708
@gjtorikian gjtorikian Add gzip target 8ddbfef
@gjtorikian gjtorikian Client-side changes for c9d cli b26f1c1
@mattpardee mattpardee Merge branch 'master' of github.com:ajaxorg/cloud9 into beta 9dc29a9
@mattpardee mattpardee Merged packed_local 9a063e1
@mattpardee mattpardee Merge resolution 97384ae
@mattpardee mattpardee Merge remote-tracking branch 'origin/ui/gitblame' into beta 5807a10
@mattpardee mattpardee Merge remote-tracking branch 'origin/improvement/consolebuffer' into …
…beta
465859c
@mattpardee mattpardee Merge branch 'revisions_reload_dialog' into beta 12ef75e
@gjtorikian gjtorikian Cleanup code 462fc59
@gjtorikian gjtorikian Block root rename dbfa517
@gjtorikian gjtorikian Update & cleanup logic e9e94b6
@gjtorikian gjtorikian Remove debug message 596dcc9
@mattpardee mattpardee Merge pull request #1573 from ajaxorg/cli_files
Client-side changes for opening files
c5f922a
Vlad Zinculescu fixed tabs context menu styling 09abf06
Vlad Zinculescu fixed tab height 37b1c47
Vlad Zinculescu changed position and styling for close buttons in open files sidebar a0deef5
Vlad Zinculescu fixes for saveBtn 2dc330a
@javruben javruben Merge pull request #1587 from ajaxorg/block_root_rename
Block root rename
ab3f508
@cadorn cadorn moved `noexist` property into `options` for remotecontrol 1670239
@gjtorikian gjtorikian Packing changes 93fb987
@gjtorikian gjtorikian Update packaging logic 6bf629d
@gjtorikian gjtorikian Remove needless content from lib.packed b58f504
@gjtorikian gjtorikian Delete useless images f377dca
@mattpardee mattpardee Merge pull request #1589 from ajaxorg/packed_more
Packed more
78b960d
@gjtorikian gjtorikian Add back lost icons 8be7830
@javruben javruben Merge pull request #1591 from ajaxorg/packed_more
Add back lost icons
f42b214
Vlad Zinculescu make revisions bar change skin depending on ace current theme cdde9ae
Vlad Zinculescu Merge branch 'beta', remote-tracking branch 'origin' into ui/revision…
…s-redesign
57aa9c9
Vlad Zinculescu merged beta into ui/revisions-redesign 1aca12e
Vlad Zinculescu fixes for ace-solarized-light a04d1f9
@gjtorikian gjtorikian Add back more icons f149b54
@gjtorikian gjtorikian Merge pull request #1595 from ajaxorg/ui/revisions-redesign
Ui/revisions redesign
17ba030
@gjtorikian gjtorikian Add more icons back 1284869
@gjtorikian gjtorikian Merge branch 'beta' of github.com:ajaxorg/cloud9 into beta 4e0a728
@gjtorikian gjtorikian Update package.json ed32e31
@gjtorikian

This should go into beta, not master.

@nightwing nightwing closed this
@nightwing
Owner

thanks
will open new pr to beta then

@gjtorikian

Ah, in the future, you do not need to open a new PR.

You can click on the word "master" (or "beta") in the very top where it says ("...wants someone to merge..."). That gives you a dropdown of possible branches to commit to. Only the original PR opener can do this though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on May 6, 2012
  1. @nightwing
  2. @nightwing
  3. @nightwing

    update ace

    nightwing authored
Commits on May 7, 2012
  1. @nightwing
Commits on May 9, 2012
  1. @javruben

    merged with master

    javruben authored
Commits on May 10, 2012
  1. ace gutter icons light/dark

    Vlad Zinculescu authored
  2. add source psd-s for sprites

    Vlad Zinculescu authored
Commits on May 11, 2012
  1. preparing for black themes and theme monokai

    Vlad Zinculescu authored
  2. add c9-find-and-replace.png

    Vlad Zinculescu authored
  3. theme monokai

    Vlad Zinculescu authored
  4. theme chrome

    Vlad Zinculescu authored
  5. theme clouds

    Vlad Zinculescu authored
  6. c9 changes theme depending on ace theme. increased btnsesssioncontain…

    Vlad Zinculescu authored
    …er to 27px
Commits on May 12, 2012
  1. @nightwing
  2. @nightwing

    add tooltip

    nightwing authored
Commits on May 13, 2012
  1. White horizontal line between hearder of sidebar panel and body is se…

    Vlad Zinculescu authored
    …mi-transparant
  2. addapt .divider-status-bar for dark themes

    Vlad Zinculescu authored
  3. removed unnecesary apf.setStyleClass on body

    Vlad Zinculescu authored
  4. fixed dividers for left sidebar

    Vlad Zinculescu authored
  5. removed color from sprite for unselected tabs in dark themes

    Vlad Zinculescu authored
  6. adapt gotofile's skin to current ide skin

    Vlad Zinculescu authored
  7. fixed alignment of search elements is wrong

    Vlad Zinculescu authored
  8. style improvements for gotofile dialog

    Vlad Zinculescu authored
  9. @mattpardee
  10. @javruben
  11. make whithe lines in left sidebar more transparent

    Vlad Zinculescu authored
  12. @javruben
  13. @javruben
  14. @javruben
  15. @javruben
  16. @javruben
Commits on May 14, 2012
  1. improvements for tabs and theire containers

    Vlad Zinculescu authored
  2. fixed style in gotofile for highlighted search term

    Vlad Zinculescu authored
  3. fixed panel-settings bg position; fixed dark theme minimized tabs gra…

    Vlad Zinculescu authored
    …dient
  4. default state for c9-activity

    Vlad Zinculescu authored
  5. fix for pannel-settings and no tabs background

    Vlad Zinculescu authored
  6. updated ide theme colors and c9-repeat-x.psd

    Vlad Zinculescu authored
Commits on May 17, 2012
  1. @gjtorikian
Commits on May 18, 2012
  1. @gjtorikian

    Turn -r/real into -P/packed

    gjtorikian authored
  2. @gjtorikian

    Add gzip target

    gjtorikian authored
Commits on May 19, 2012
  1. @gjtorikian
Commits on May 21, 2012
  1. @mattpardee
  2. @mattpardee

    Merged packed_local

    mattpardee authored
  3. @mattpardee

    Merge resolution

    mattpardee authored
  4. @mattpardee
  5. @mattpardee
Commits on May 22, 2012
  1. @mattpardee
  2. @gjtorikian

    Cleanup code

    gjtorikian authored
  3. @gjtorikian

    Block root rename

    gjtorikian authored
  4. @gjtorikian

    Update & cleanup logic

    gjtorikian authored
  5. @gjtorikian

    Remove debug message

    gjtorikian authored
  6. @mattpardee

    Merge pull request #1573 from ajaxorg/cli_files

    mattpardee authored
    Client-side changes for opening files
  7. fixed tabs context menu styling

    Vlad Zinculescu authored
  8. fixed tab height

    Vlad Zinculescu authored
  9. fixes for saveBtn

    Vlad Zinculescu authored
  10. @javruben

    Merge pull request #1587 from ajaxorg/block_root_rename

    javruben authored
    Block root rename
  11. @cadorn
  12. @gjtorikian

    Packing changes

    gjtorikian authored
Commits on May 23, 2012
  1. @gjtorikian

    Update packaging logic

    gjtorikian authored
  2. @gjtorikian
  3. @gjtorikian

    Delete useless images

    gjtorikian authored
  4. @mattpardee

    Merge pull request #1589 from ajaxorg/packed_more

    mattpardee authored
    Packed more
  5. @gjtorikian

    Add back lost icons

    gjtorikian authored
  6. @javruben

    Merge pull request #1591 from ajaxorg/packed_more

    javruben authored
    Add back lost icons
  7. Merge branch 'beta', remote-tracking branch 'origin' into ui/revision…

    Vlad Zinculescu authored
    …s-redesign
  8. merged beta into ui/revisions-redesign

    Vlad Zinculescu authored
  9. fixes for ace-solarized-light

    Vlad Zinculescu authored
Commits on May 24, 2012
  1. @gjtorikian

    Add back more icons

    gjtorikian authored
  2. @gjtorikian

    Merge pull request #1595 from ajaxorg/ui/revisions-redesign

    gjtorikian authored
    Ui/revisions redesign
  3. @gjtorikian

    Add more icons back

    gjtorikian authored
  4. @gjtorikian
Commits on May 25, 2012
  1. @gjtorikian

    Update package.json

    gjtorikian authored
  2. @nightwing
This page is out of date. Refresh to see the latest.
Showing with 581 additions and 291 deletions.
  1. +16 −3 Makefile
  2. +5 −6 build/app.build.tmpl.js
  3. +2 −35 build/packed_helper.js
  4. +4 −1 configs/default.js
  5. +1 −1  package.json
  6. +1 −1  plugins-client/cloud9.core/www/core/ext.js
  7. +2 −2 plugins-client/ext.clipboard/clipboard.js
  8. +168 −194 plugins-client/ext.code/code.js
  9. +2 −2 plugins-client/ext.commands/commands.js
  10. +1 −1  plugins-client/ext.commands/settings.xml
  11. +11 −2 plugins-client/ext.console/logger.js
  12. +16 −8 plugins-client/ext.editors/editors.js
  13. +321 −0 plugins-client/ext.gitblame/blame_gutter.js
  14. +28 −23 plugins-client/ext.gitblame/gitblame.js
  15. +3 −12 plugins-client/ext.gotofile/gotofile.xml
  16. BIN  plugins-client/ext.main/style/icons/accept.png
  17. BIN  plugins-client/ext.main/style/icons/add.png
  18. BIN  plugins-client/ext.main/style/icons/anchor.png
  19. BIN  plugins-client/ext.main/style/icons/application.png
  20. BIN  plugins-client/ext.main/style/icons/application_add.png
  21. BIN  plugins-client/ext.main/style/icons/application_cascade.png
  22. BIN  plugins-client/ext.main/style/icons/application_delete.png
  23. BIN  plugins-client/ext.main/style/icons/application_double.png
  24. BIN  plugins-client/ext.main/style/icons/application_edit.png
  25. BIN  plugins-client/ext.main/style/icons/application_error.png
  26. BIN  plugins-client/ext.main/style/icons/application_form.png
  27. BIN  plugins-client/ext.main/style/icons/application_form_add.png
  28. BIN  plugins-client/ext.main/style/icons/application_form_delete.png
  29. BIN  plugins-client/ext.main/style/icons/application_form_edit.png
  30. BIN  plugins-client/ext.main/style/icons/application_form_magnify.png
  31. BIN  plugins-client/ext.main/style/icons/application_get.png
  32. BIN  plugins-client/ext.main/style/icons/application_go.png
  33. BIN  plugins-client/ext.main/style/icons/application_home.png
  34. BIN  plugins-client/ext.main/style/icons/application_key.png
  35. BIN  plugins-client/ext.main/style/icons/application_lightning.png
  36. BIN  plugins-client/ext.main/style/icons/application_link.png
  37. BIN  plugins-client/ext.main/style/icons/application_osx.png
  38. BIN  plugins-client/ext.main/style/icons/application_osx_terminal.png
  39. BIN  plugins-client/ext.main/style/icons/application_put.png
  40. BIN  plugins-client/ext.main/style/icons/application_side_boxes.png
  41. BIN  plugins-client/ext.main/style/icons/application_side_contract.png
  42. BIN  plugins-client/ext.main/style/icons/application_side_expand.png
  43. BIN  plugins-client/ext.main/style/icons/application_side_list.png
  44. BIN  plugins-client/ext.main/style/icons/application_side_tree.png
  45. BIN  plugins-client/ext.main/style/icons/application_split.png
  46. BIN  plugins-client/ext.main/style/icons/application_tile_horizontal.png
  47. BIN  plugins-client/ext.main/style/icons/application_tile_vertical.png
  48. BIN  plugins-client/ext.main/style/icons/application_view_columns.png
  49. BIN  plugins-client/ext.main/style/icons/application_view_detail.png
  50. BIN  plugins-client/ext.main/style/icons/application_view_gallery.png
  51. BIN  plugins-client/ext.main/style/icons/application_view_icons.png
  52. BIN  plugins-client/ext.main/style/icons/application_view_list.png
  53. BIN  plugins-client/ext.main/style/icons/application_view_tile.png
  54. BIN  plugins-client/ext.main/style/icons/application_xp.png
  55. BIN  plugins-client/ext.main/style/icons/application_xp_terminal.png
  56. BIN  plugins-client/ext.main/style/icons/arrow_branch.png
  57. BIN  plugins-client/ext.main/style/icons/arrow_divide.png
  58. BIN  plugins-client/ext.main/style/icons/arrow_down.png
  59. BIN  plugins-client/ext.main/style/icons/arrow_in.png
  60. BIN  plugins-client/ext.main/style/icons/arrow_inout.png
  61. BIN  plugins-client/ext.main/style/icons/arrow_join.png
  62. BIN  plugins-client/ext.main/style/icons/arrow_left.png
  63. BIN  plugins-client/ext.main/style/icons/arrow_merge.png
  64. BIN  plugins-client/ext.main/style/icons/arrow_out.png
  65. BIN  plugins-client/ext.main/style/icons/arrow_redo.png
  66. BIN  plugins-client/ext.main/style/icons/arrow_refresh.png
  67. BIN  plugins-client/ext.main/style/icons/arrow_refresh_small.png
  68. BIN  plugins-client/ext.main/style/icons/arrow_right.png
  69. BIN  plugins-client/ext.main/style/icons/arrow_rotate_anticlockwise.png
  70. BIN  plugins-client/ext.main/style/icons/arrow_rotate_clockwise.png
  71. BIN  plugins-client/ext.main/style/icons/arrow_switch.png
  72. BIN  plugins-client/ext.main/style/icons/arrow_turn_left.png
  73. BIN  plugins-client/ext.main/style/icons/arrow_turn_right.png
  74. BIN  plugins-client/ext.main/style/icons/arrow_undo.png
  75. BIN  plugins-client/ext.main/style/icons/arrow_up.png
  76. BIN  plugins-client/ext.main/style/icons/asterisk_orange.png
  77. BIN  plugins-client/ext.main/style/icons/asterisk_yellow.png
  78. BIN  plugins-client/ext.main/style/icons/attach.png
  79. BIN  plugins-client/ext.main/style/icons/award_star_add.png
  80. BIN  plugins-client/ext.main/style/icons/award_star_bronze_1.png
  81. BIN  plugins-client/ext.main/style/icons/award_star_bronze_2.png
  82. BIN  plugins-client/ext.main/style/icons/award_star_bronze_3.png
  83. BIN  plugins-client/ext.main/style/icons/award_star_delete.png
  84. BIN  plugins-client/ext.main/style/icons/award_star_gold_1.png
  85. BIN  plugins-client/ext.main/style/icons/award_star_gold_2.png
  86. BIN  plugins-client/ext.main/style/icons/award_star_gold_3.png
  87. BIN  plugins-client/ext.main/style/icons/award_star_silver_1.png
  88. BIN  plugins-client/ext.main/style/icons/award_star_silver_2.png
  89. BIN  plugins-client/ext.main/style/icons/award_star_silver_3.png
  90. BIN  plugins-client/ext.main/style/icons/basket.png
  91. BIN  plugins-client/ext.main/style/icons/basket_add.png
  92. BIN  plugins-client/ext.main/style/icons/basket_delete.png
  93. BIN  plugins-client/ext.main/style/icons/basket_edit.png
  94. BIN  plugins-client/ext.main/style/icons/basket_error.png
  95. BIN  plugins-client/ext.main/style/icons/basket_go.png
  96. BIN  plugins-client/ext.main/style/icons/basket_put.png
  97. BIN  plugins-client/ext.main/style/icons/basket_remove.png
  98. BIN  plugins-client/ext.main/style/icons/bell.png
  99. BIN  plugins-client/ext.main/style/icons/bell_add.png
  100. BIN  plugins-client/ext.main/style/icons/bell_delete.png
  101. BIN  plugins-client/ext.main/style/icons/bell_error.png
  102. BIN  plugins-client/ext.main/style/icons/bell_go.png
  103. BIN  plugins-client/ext.main/style/icons/bell_link.png
  104. BIN  plugins-client/ext.main/style/icons/bin.png
  105. BIN  plugins-client/ext.main/style/icons/bin_closed.png
  106. BIN  plugins-client/ext.main/style/icons/bin_empty.png
  107. BIN  plugins-client/ext.main/style/icons/bomb.png
  108. BIN  plugins-client/ext.main/style/icons/book.png
  109. BIN  plugins-client/ext.main/style/icons/book_add.png
  110. BIN  plugins-client/ext.main/style/icons/book_addresses.png
  111. BIN  plugins-client/ext.main/style/icons/book_delete.png
  112. BIN  plugins-client/ext.main/style/icons/book_edit.png
  113. BIN  plugins-client/ext.main/style/icons/book_error.png
  114. BIN  plugins-client/ext.main/style/icons/book_go.png
  115. BIN  plugins-client/ext.main/style/icons/book_key.png
  116. BIN  plugins-client/ext.main/style/icons/book_link.png
  117. BIN  plugins-client/ext.main/style/icons/book_next.png
  118. BIN  plugins-client/ext.main/style/icons/book_open.png
  119. BIN  plugins-client/ext.main/style/icons/book_previous.png
  120. BIN  plugins-client/ext.main/style/icons/box.png
  121. BIN  plugins-client/ext.main/style/icons/brick.png
  122. BIN  plugins-client/ext.main/style/icons/brick_add.png
  123. BIN  plugins-client/ext.main/style/icons/brick_delete.png
  124. BIN  plugins-client/ext.main/style/icons/brick_edit.png
  125. BIN  plugins-client/ext.main/style/icons/brick_error.png
  126. BIN  plugins-client/ext.main/style/icons/brick_go.png
  127. BIN  plugins-client/ext.main/style/icons/brick_link.png
  128. BIN  plugins-client/ext.main/style/icons/bricks.png
  129. BIN  plugins-client/ext.main/style/icons/briefcase.png
  130. BIN  plugins-client/ext.main/style/icons/brkp_obj.gif
  131. BIN  plugins-client/ext.main/style/icons/brkpd_obj_disabled.gif
  132. BIN  plugins-client/ext.main/style/icons/browser_arrowleft.png
  133. BIN  plugins-client/ext.main/style/icons/browser_arrowright.png
  134. BIN  plugins-client/ext.main/style/icons/browser_refresh.png
  135. BIN  plugins-client/ext.main/style/icons/bug.png
  136. BIN  plugins-client/ext.main/style/icons/bug_add.png
  137. BIN  plugins-client/ext.main/style/icons/bug_delete.png
  138. BIN  plugins-client/ext.main/style/icons/bug_edit.png
  139. BIN  plugins-client/ext.main/style/icons/bug_error.png
  140. BIN  plugins-client/ext.main/style/icons/bug_go.png
  141. BIN  plugins-client/ext.main/style/icons/bug_link.png
  142. BIN  plugins-client/ext.main/style/icons/building.png
  143. BIN  plugins-client/ext.main/style/icons/building_add.png
  144. BIN  plugins-client/ext.main/style/icons/building_delete.png
  145. BIN  plugins-client/ext.main/style/icons/building_edit.png
  146. BIN  plugins-client/ext.main/style/icons/building_error.png
  147. BIN  plugins-client/ext.main/style/icons/building_go.png
  148. BIN  plugins-client/ext.main/style/icons/building_key.png
  149. BIN  plugins-client/ext.main/style/icons/building_link.png
  150. BIN  plugins-client/ext.main/style/icons/bullet_add.png
  151. BIN  plugins-client/ext.main/style/icons/bullet_arrow_bottom.png
  152. BIN  plugins-client/ext.main/style/icons/bullet_arrow_down.png
  153. BIN  plugins-client/ext.main/style/icons/bullet_arrow_top.png
  154. BIN  plugins-client/ext.main/style/icons/bullet_arrow_up.png
  155. BIN  plugins-client/ext.main/style/icons/bullet_black.png
  156. BIN  plugins-client/ext.main/style/icons/bullet_blue.png
  157. BIN  plugins-client/ext.main/style/icons/bullet_delete.png
  158. BIN  plugins-client/ext.main/style/icons/bullet_disk.png
  159. BIN  plugins-client/ext.main/style/icons/bullet_error.png
  160. BIN  plugins-client/ext.main/style/icons/bullet_feed.png
  161. BIN  plugins-client/ext.main/style/icons/bullet_go.png
  162. BIN  plugins-client/ext.main/style/icons/bullet_green.png
  163. BIN  plugins-client/ext.main/style/icons/bullet_key.png
  164. BIN  plugins-client/ext.main/style/icons/bullet_orange.png
  165. BIN  plugins-client/ext.main/style/icons/bullet_picture.png
  166. BIN  plugins-client/ext.main/style/icons/bullet_pink.png
  167. BIN  plugins-client/ext.main/style/icons/bullet_purple.png
  168. BIN  plugins-client/ext.main/style/icons/bullet_red.png
  169. BIN  plugins-client/ext.main/style/icons/bullet_star.png
  170. BIN  plugins-client/ext.main/style/icons/bullet_toggle_minus.png
  171. BIN  plugins-client/ext.main/style/icons/bullet_toggle_plus.png
  172. BIN  plugins-client/ext.main/style/icons/bullet_white.png
  173. BIN  plugins-client/ext.main/style/icons/bullet_wrench.png
  174. BIN  plugins-client/ext.main/style/icons/bullet_yellow.png
  175. BIN  plugins-client/ext.main/style/icons/cake.png
  176. BIN  plugins-client/ext.main/style/icons/calculator.png
  177. BIN  plugins-client/ext.main/style/icons/calculator_add.png
  178. BIN  plugins-client/ext.main/style/icons/calculator_delete.png
  179. BIN  plugins-client/ext.main/style/icons/calculator_edit.png
  180. BIN  plugins-client/ext.main/style/icons/calculator_error.png
  181. BIN  plugins-client/ext.main/style/icons/calculator_link.png
  182. BIN  plugins-client/ext.main/style/icons/calendar.png
  183. BIN  plugins-client/ext.main/style/icons/calendar_add.png
  184. BIN  plugins-client/ext.main/style/icons/calendar_delete.png
  185. BIN  plugins-client/ext.main/style/icons/calendar_edit.png
  186. BIN  plugins-client/ext.main/style/icons/calendar_link.png
  187. BIN  plugins-client/ext.main/style/icons/calendar_view_day.png
  188. BIN  plugins-client/ext.main/style/icons/calendar_view_month.png
  189. BIN  plugins-client/ext.main/style/icons/calendar_view_week.png
  190. BIN  plugins-client/ext.main/style/icons/call_stack.png
  191. BIN  plugins-client/ext.main/style/icons/camera.png
  192. BIN  plugins-client/ext.main/style/icons/camera_add.png
  193. BIN  plugins-client/ext.main/style/icons/camera_delete.png
  194. BIN  plugins-client/ext.main/style/icons/camera_edit.png
  195. BIN  plugins-client/ext.main/style/icons/camera_error.png
  196. BIN  plugins-client/ext.main/style/icons/camera_go.png
  197. BIN  plugins-client/ext.main/style/icons/camera_link.png
  198. BIN  plugins-client/ext.main/style/icons/camera_small.png
  199. BIN  plugins-client/ext.main/style/icons/cancel.png
  200. BIN  plugins-client/ext.main/style/icons/car.png
  201. BIN  plugins-client/ext.main/style/icons/car_add.png
  202. BIN  plugins-client/ext.main/style/icons/car_delete.png
  203. BIN  plugins-client/ext.main/style/icons/cart.png
  204. BIN  plugins-client/ext.main/style/icons/cart_add.png
  205. BIN  plugins-client/ext.main/style/icons/cart_delete.png
  206. BIN  plugins-client/ext.main/style/icons/cart_edit.png
  207. BIN  plugins-client/ext.main/style/icons/cart_error.png
  208. BIN  plugins-client/ext.main/style/icons/cart_go.png
  209. BIN  plugins-client/ext.main/style/icons/cart_put.png
  210. BIN  plugins-client/ext.main/style/icons/cart_remove.png
  211. BIN  plugins-client/ext.main/style/icons/cd.png
  212. BIN  plugins-client/ext.main/style/icons/cd_add.png
  213. BIN  plugins-client/ext.main/style/icons/cd_burn.png
  214. BIN  plugins-client/ext.main/style/icons/cd_delete.png
  215. BIN  plugins-client/ext.main/style/icons/cd_edit.png
  216. BIN  plugins-client/ext.main/style/icons/cd_eject.png
  217. BIN  plugins-client/ext.main/style/icons/cd_go.png
  218. BIN  plugins-client/ext.main/style/icons/chart_bar.png
  219. BIN  plugins-client/ext.main/style/icons/chart_bar_add.png
  220. BIN  plugins-client/ext.main/style/icons/chart_bar_delete.png
  221. BIN  plugins-client/ext.main/style/icons/chart_bar_edit.png
  222. BIN  plugins-client/ext.main/style/icons/chart_bar_error.png
  223. BIN  plugins-client/ext.main/style/icons/chart_bar_link.png
  224. BIN  plugins-client/ext.main/style/icons/chart_curve.png
  225. BIN  plugins-client/ext.main/style/icons/chart_curve_add.png
  226. BIN  plugins-client/ext.main/style/icons/chart_curve_delete.png
  227. BIN  plugins-client/ext.main/style/icons/chart_curve_edit.png
  228. BIN  plugins-client/ext.main/style/icons/chart_curve_error.png
  229. BIN  plugins-client/ext.main/style/icons/chart_curve_go.png
  230. BIN  plugins-client/ext.main/style/icons/chart_curve_link.png
  231. BIN  plugins-client/ext.main/style/icons/chart_line.png
  232. BIN  plugins-client/ext.main/style/icons/chart_line_add.png
  233. BIN  plugins-client/ext.main/style/icons/chart_line_delete.png
  234. BIN  plugins-client/ext.main/style/icons/chart_line_edit.png
  235. BIN  plugins-client/ext.main/style/icons/chart_line_error.png
  236. BIN  plugins-client/ext.main/style/icons/chart_line_link.png
  237. BIN  plugins-client/ext.main/style/icons/chart_organisation.png
  238. BIN  plugins-client/ext.main/style/icons/chart_organisation_add.png
  239. BIN  plugins-client/ext.main/style/icons/chart_organisation_delete.png
  240. BIN  plugins-client/ext.main/style/icons/chart_pie.png
  241. BIN  plugins-client/ext.main/style/icons/chart_pie_add.png
  242. BIN  plugins-client/ext.main/style/icons/chart_pie_delete.png
  243. BIN  plugins-client/ext.main/style/icons/chart_pie_edit.png
  244. BIN  plugins-client/ext.main/style/icons/chart_pie_error.png
  245. BIN  plugins-client/ext.main/style/icons/chart_pie_link.png
  246. BIN  plugins-client/ext.main/style/icons/chromium_16.png
  247. BIN  plugins-client/ext.main/style/icons/clock.png
  248. BIN  plugins-client/ext.main/style/icons/clock_add.png
  249. BIN  plugins-client/ext.main/style/icons/clock_delete.png
  250. BIN  plugins-client/ext.main/style/icons/clock_edit.png
  251. BIN  plugins-client/ext.main/style/icons/clock_error.png
  252. BIN  plugins-client/ext.main/style/icons/clock_go.png
  253. BIN  plugins-client/ext.main/style/icons/clock_link.png
  254. BIN  plugins-client/ext.main/style/icons/clock_pause.png
  255. BIN  plugins-client/ext.main/style/icons/clock_play.png
  256. BIN  plugins-client/ext.main/style/icons/clock_red.png
  257. BIN  plugins-client/ext.main/style/icons/clock_stop.png
  258. BIN  plugins-client/ext.main/style/icons/close.png
  259. BIN  plugins-client/ext.main/style/icons/cog_add.png
  260. BIN  plugins-client/ext.main/style/icons/cog_delete.png
  261. BIN  plugins-client/ext.main/style/icons/cog_edit.png
  262. BIN  plugins-client/ext.main/style/icons/cog_error.png
  263. BIN  plugins-client/ext.main/style/icons/cog_go.png
  264. BIN  plugins-client/ext.main/style/icons/coins.png
  265. BIN  plugins-client/ext.main/style/icons/coins_add.png
  266. BIN  plugins-client/ext.main/style/icons/coins_delete.png
  267. BIN  plugins-client/ext.main/style/icons/collab-led-states.png
  268. BIN  plugins-client/ext.main/style/icons/collaboration_panel_sprite.png
  269. BIN  plugins-client/ext.main/style/icons/color_swatch.png
  270. BIN  plugins-client/ext.main/style/icons/color_wheel.png
  271. BIN  plugins-client/ext.main/style/icons/comment.png
  272. BIN  plugins-client/ext.main/style/icons/comment_add.png
  273. BIN  plugins-client/ext.main/style/icons/comment_delete.png
  274. BIN  plugins-client/ext.main/style/icons/comment_edit.png
  275. BIN  plugins-client/ext.main/style/icons/comments.png
  276. BIN  plugins-client/ext.main/style/icons/comments_add.png
  277. BIN  plugins-client/ext.main/style/icons/comments_delete.png
  278. BIN  plugins-client/ext.main/style/icons/compress.png
  279. BIN  plugins-client/ext.main/style/icons/computer.png
  280. BIN  plugins-client/ext.main/style/icons/computer_add.png
  281. BIN  plugins-client/ext.main/style/icons/computer_delete.png
  282. BIN  plugins-client/ext.main/style/icons/computer_edit.png
  283. BIN  plugins-client/ext.main/style/icons/computer_error.png
  284. BIN  plugins-client/ext.main/style/icons/computer_go.png
  285. BIN  plugins-client/ext.main/style/icons/computer_key.png
  286. BIN  plugins-client/ext.main/style/icons/computer_link.png
  287. BIN  plugins-client/ext.main/style/icons/connect.png
  288. BIN  plugins-client/ext.main/style/icons/console-btn.png
  289. BIN  plugins-client/ext.main/style/icons/console_collapse.png
  290. BIN  plugins-client/ext.main/style/icons/contact_idle.png
  291. BIN  plugins-client/ext.main/style/icons/contact_list.png
  292. BIN  plugins-client/ext.main/style/icons/contact_offline.png
  293. BIN  plugins-client/ext.main/style/icons/contact_online.png
  294. BIN  plugins-client/ext.main/style/icons/contrast.png
  295. BIN  plugins-client/ext.main/style/icons/contrast_decrease.png
  296. BIN  plugins-client/ext.main/style/icons/contrast_high.png
  297. BIN  plugins-client/ext.main/style/icons/contrast_increase.png
  298. BIN  plugins-client/ext.main/style/icons/contrast_low.png
  299. BIN  plugins-client/ext.main/style/icons/control_eject.png
  300. BIN  plugins-client/ext.main/style/icons/control_eject_blue.png
Sorry, we could not display the entire diff because too many files (1,133) changed.
View
19 Makefile
@@ -20,8 +20,12 @@ pack_apf:
mv plugins-client/lib.apf/www/apf-packaged/apf_release.js build/src/apf_release.js
node build/r.js -o name=./build/src/apf_release.js out=./plugins-client/lib.apf/www/apf-packaged/apf_release.js baseUrl=.
+# makes ace; at the moment, requires dryice@0.4.2
+ace:
+ cd node_modules/ace; make clean build
+
# packages core
-core:
+core: ace
mkdir -p build/src
node build/r.js -o build/core.build.js
@@ -55,10 +59,19 @@ theme:
mkdir -p plugins-client/lib.ace/www/theme
cp `find node_modules/ace/build/src | grep -E "theme-[a-zA-Z_]+.js"` plugins-client/lib.ace/www/theme
+gzip_safe:
+ for i in `ls ./plugins-client/lib.packed/www/*.js`; do \
+ gzip -9 -v -c -q $$i > $$i.gz ; \
+ done
+
gzip:
- gzip plugins-client/lib.packed/www/packed.js
+ for i in `ls ./plugins-client/lib.packed/www/*.js`; do \
+ gzip -9 -v -q $$i ; \
+ done
-package: apf core worker mode theme ext
+c9core: apf ace core worker mode theme
+
+package: c9core ext
test:
$(MAKE) -C test
View
11 build/app.build.tmpl.js
@@ -4,24 +4,23 @@
//optimize: "none",
baseUrl: "../",
paths: {
- "text" : "build/text", // plugin for pulling in text! files
+ "text" : "%b/text", // plugin for pulling in text! files
"core" : "empty:",
- "ext/commands" : "plugins-client/ext.commands",
- "ext/uploadfiles" : "plugins-client/ext.uploadfiles",
+ "ext/commands" : "%d/ext.commands",
"apf" : "empty:",
"treehugger" : "empty:",
"debug": "empty:",
- "apf/elements": "plugins-client/lib.apf/www/apf/elements",
+ "apf/elements": "%d/lib.apf/www/apf/elements",
"%m"
},
- include: ["build/src/core.packed",
+ include: ["%b/src/core.packed",
"apf/elements/codeeditor",
"apf/elements/debugger",
"apf/elements/debughost",
"ext/commands/commands",
"ext/uploadfiles/uploadfiles",
"%s"],
- out: "../plugins-client/lib.packed/www/packed.js",
+ out: "%o",
inlineText: true,
findNestedDependencies: true,
optimizeAllPluginResources: false,
View
37 build/packed_helper.js
@@ -20,46 +20,13 @@ for (var i in extensions) {
}
}
-/*var clientPlugins = [];
-var clientMappings = [];
-var clientDirs = fs.readdirSync(__dirname + "/../plugins-client");
-var defineRegExp = new RegExp(/plugins-client\/ext.(\w+)/g);
-
-for (var i = 0; i < clientDirs.length; i++) {
- var dir = clientDirs[i];
-
- if (dir.indexOf("ext.") !== 0 || dir.indexOf("helloworld") !== 0)
- continue;
-
- var name = dir.split(".")[1];
- var path = "plugins-client/" + dir + "/" + name;
-
- try {
- stats = fs.lstatSync(process.cwd() + "/" + path + ".js");
-
- var match;
- if ( (match = path.match(defineRegExp) ) ) {
- for (var m in match) {
- var name = match[m].split("/")[1].split(".")[1];
- var mapping = "ext/" + name;
- clientMappings.push(mapping + "': 'plugins-client/" + dir);
- clientPlugins.push(mapping + "/" + name);
- }
- }
- }
- catch (e) {
- console.error("Missing " + process.cwd() + "/" + path + ".js");
- console.error(e);
- }
-}*/
-
-
clientPlugins = "'" + clientPlugins.join("',\n\t'") + "'";
clientMappings = "'" + clientMappings.join("',\n\t'") + "'";
var appTemplate = fs.readFileSync("./build/app.build.tmpl.js", "utf8");
-var appFile = appTemplate.replace('"%s"', clientPlugins).replace('"%m"', clientMappings);
+// transform all variable paths out
+var appFile = appTemplate.replace(/%b/g, "build").replace(/%d/, "plugins-client").replace('"%s"', clientPlugins).replace('"%m"', clientMappings).replace('"%o"', '"../plugins-client/lib.packed/www/packed.js"');
fs.writeFile("./build/app.build.js", appFile, "utf8", function(err) {
if (err) {
View
5 configs/default.js
@@ -67,7 +67,8 @@ var config = {
bundledPlugins: [
"helloworld"
],
- real: false,
+ packed: false,
+ packedName: "",
clientPlugins: [
"ext/filesystem/filesystem",
"ext/settings/settings",
@@ -129,6 +130,8 @@ var config = {
"ext/closeconfirmation/closeconfirmation",
"ext/codetools/codetools",
"ext/colorpicker/colorpicker",
+ "ext/gitblame/gitblame",
+ //"ext/githistory/githistory",
"ext/revisions/revisions",
"ext/language/liveinspect"
//"ext/splitview/splitview"
View
2  package.json
@@ -35,7 +35,7 @@
},
"mappings": {
- "ace": ["npm", "https://github.com/ajaxorg/ace/tarball/2f006d2a5a64a8a6ef09ef0976fb412a5718711b"],
+ "ace": ["npm", "https://github.com/ajaxorg/ace/tarball/675386fc4cdeb6373b94a9a15820252a1110d7b8"],
"apf": ["npm", "https://github.com/ajaxorg/apf/tarball/10179a17662c221c72bb010bd7e4feda485d2b34"],
"architect": ["npm", "https://github.com/c9/architect/tarball/6a7069e6d1b65a515af73d1dd92757da33bfc2a9"],
"asyncjs": ["npm", "https://github.com/ajaxorg/async.js/tarball/0b4ed5608a32c280a7690b5f52883d8d1fc0de08"],
View
2  plugins-client/cloud9.core/www/core/ext.js
@@ -261,7 +261,7 @@ module.exports = ext = {
c9console.write('"' + cmd + '" command executed', data);
}
- var res = commands.exec(cmd, null, data);
+ var res = commands.exec(cmd, ceEditor, data);
return res === undefined ? false : res;
}
};
View
4 plugins-client/ext.clipboard/clipboard.js
@@ -29,9 +29,9 @@ module.exports = ext.register("ext/clipboard/clipboard", {
hook : function(){
var _self = this;
- var isAvailable = function(){
+ var isAvailable = function(editor, event){
if (apf.activeElement && apf.activeElement.localName == "codeeditor")
- return !(window.event instanceof KeyboardEvent);
+ return !(event instanceof KeyboardEvent);
return self.trFiles && apf.activeElement == trFiles;
};
View
362 plugins-client/ext.code/code.js
@@ -38,140 +38,100 @@ apf.actiontracker.actions.aceupdate = function(undoObj, undo){
q[1].redoChanges(q[0]);
};
-var ModesCaption = {
- "C#" : "text/x-csharp",
- "C/C++" : "text/x-c",
- "Clojure" : "text/x-script.clojure",
- "CoffeeScript" : "text/x-script.coffeescript",
- "Coldfusion" : "text/x-coldfusion",
- "CSS" : "text/css",
- "Groovy" : "text/x-groovy",
- "Java" : "text/x-java-source",
- "JavaScript" : "application/javascript",
- "Latex" : "application/x-latex",
- "Script" : "text/x-script",
- "Lua" : "text/x-lua",
- "Markdown" : "text/x-markdown",
- "OCaml" : "text/x-script.ocaml",
- "PHP" : "application/x-httpd-php",
- "Perl" : "text/x-script.perl",
- "Powershell" : "text/x-script.powershell",
- "Python" : "text/x-script.python",
- "Ruby" : "text/x-script.ruby",
- "Scala" : "text/x-scala",
- "SCSS" : "text/x-scss",
- "SQL" : "text/x-sql",
- "Textile" : "text/x-web-textile",
- "HTML" : "text/html",
- "XML" : "application/xml"
+
+var contentTypes = {
+ "application/atom+xml": "atom",
+ "application/javascript": "js",
+ "application/json": "json",
+ "application/mathml+xml": "mml",
+ "application/rdf+xml": "rdf",
+ "application/rss+xml": "rss",
+ "application/wsdl+xml": "wsdl",
+ "application/x-httpd-php": "phtml",
+ "application/x-latex": "ltx",
+ "application/x-sh": "sh",
+ "application/xhtml+xml": "xhtml",
+ "application/xml": "xml",
+ "application/xslt+xml": "xslt",
+ "image/svg+xml": "svg",
+ "text/css": "less",
+ "text/html": "html",
+ "text/plain": "txt",
+ "text/x-c": "c",
+ "text/x-coldfusion": "cfm",
+ "text/x-csharp": "cs",
+ "text/x-groovy": "groovy",
+ "text/x-java-source": "java",
+ "text/x-lua": "lua",
+ "text/x-markdown": "md",
+ "text/x-sass": "sass",
+ "text/x-scala": "scala",
+ "text/x-script.clojure": "clj",
+ "text/x-script.coffeescript": "coffee",
+ "text/x-script.ocaml": "ml",
+ "text/x-script.perl": "pl",
+ "text/x-script.perl-module": "pm",
+ "text/x-script.powershell": "ps1",
+ "text/x-script.python": "py",
+ "text/x-script.ruby": "rb",
+ "text/x-scss": "scss",
+ "text/x-sql": "sql",
+ "text/x-web-textile": "textile"
}
var SupportedModes = {
- "application/javascript": "javascript",
- "application/json": "json",
- "text/css": "css",
- "text/x-scss": "scss",
- "text/html": "html",
- "application/xhtml+xml": "html",
- "application/xml": "xml",
- "application/rdf+xml": "xml",
- "application/rss+xml": "xml",
- "image/svg+xml": "svg",
- "application/wsdl+xml": "xml",
- "application/xslt+xml": "xml",
- "application/atom+xml": "xml",
- "application/mathml+xml": "xml",
- "application/x-httpd-php": "php",
- "application/x-sh": "sh",
- "text/x-script.python": "python",
- "text/x-script.ruby": "ruby",
- "text/x-script.perl": "perl",
- "text/x-script.perl-module": "perl",
- "text/x-c": "c_cpp",
- "text/x-java-source": "java",
- "text/x-groovy": "groovy",
- "text/x-csharp": "csharp",
- "text/x-script.coffeescript": "coffee",
- "text/x-markdown": "markdown",
- "text/x-web-textile": "textile",
- "text/x-script.ocaml": "ocaml",
- "text/x-script.clojure": "clojure",
- "application/x-latex": "latex",
- "text/x-lua": "lua",
- "text/x-script.powershell": "powershell",
- "text/x-scala": "scala",
- "text/x-coldfusion": "coldfusion",
- "text/x-sql": "sql"
-};
+ coffee: ["CoffeeScript" , "coffee|*Cakefile"],
+ coldfusion: ["ColdFusion" , "cfm"],
+ csharp: ["C#" , "cs"],
+ css: ["CSS" , "css"],
+ golang: ["Go" , "go"],
+ groovy: ["Groovy" , "groovy"],
+ haxe: ["haXe" , "hx"],
+ html: ["HTML" , "htm|html|xhtml"],
+ c_cpp: ["C/C++" , "c|cc|cpp|cxx|h|hh|hpp"],
+ clojure: ["Clojure" , "clj"],
+ java: ["Java" , "java"],
+ javascript: ["JavaScript" , "js"],
+ json: ["JSON" , "json"],
+ latex: ["LaTeX" , "latex|tex|ltx|bib"],
+ less: ["LESS" , "less"],
+ liquid: ["Liquid" , "liquid"],
+ lua: ["Lua" , "lua"],
+ markdown: ["Markdown" , "md|markdown"],
+ ocaml: ["OCaml" , "ml|mli"],
+ perl: ["Perl" , "pl|pm"],
+ pgsql: ["pgSQL" , "pgsql"],
+ php: ["PHP" , "php|phtml"],
+ powershell: ["Powershell" , "ps1"],
+ python: ["Python" , "py"],
+ ruby: ["Ruby" , "ru|gemspec|rake|rb"],
+ scad: ["OpenSCAD" , "scad" , "hidden"],
+ scala: ["Scala" , "scala"],
+ scss: ["SCSS" , "scss|sass"],
+ sh: ["SH" , "sh|bash|bat"],
+ sql: ["SQL" , "sql"],
+ svg: ["SVG" , "svg"],
+ text: ["Text" , "txt" , "hidden"],
+ textile: ["Textile" , "textile"],
+ xml: ["XML" , "xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl"],
+ xquery: ["XQuery" , "xq"],
+ yaml: ["YAML" , "yaml"]
+}
-var contentTypes = {
- "js": "application/javascript",
- "json": "application/json",
- "css": "text/css",
- "less": "text/css",
- "scss": "text/x-scss",
- "sass": "text/x-sass",
-
- "xml": "application/xml",
- "rdf": "application/rdf+xml",
- "rss": "application/rss+xml",
- "svg": "image/svg+xml",
- "wsdl": "application/wsdl+xml",
- "xslt": "application/xslt+xml",
- "atom": "application/atom+xml",
- "mathml": "application/mathml+xml",
- "mml": "application/mathml+xml",
-
- "php": "application/x-httpd-php",
- "phtml": "application/x-httpd-php",
- "html": "text/html",
- "xhtml": "application/xhtml+xml",
- "coffee": "text/x-script.coffeescript",
- "*Cakefile": "text/x-script.coffeescript",
- "py": "text/x-script.python",
-
- "ru": "text/x-script.ruby",
- "gemspec": "text/x-script.ruby",
- "rake": "text/x-script.ruby",
- "rb": "text/x-script.ruby",
-
- "c": "text/x-c",
- "cc": "text/x-c",
- "cpp": "text/x-c",
- "cxx": "text/x-c",
- "h": "text/x-c",
- "hh": "text/x-c",
- "hpp": "text/x-c",
-
- "cs": "text/x-csharp",
-
- "java": "text/x-java-source",
- "clj": "text/x-script.clojure",
- "groovy": "text/x-groovy",
- "scala": "text/x-scala",
-
- "ml": "text/x-script.ocaml",
- "mli": "text/x-script.ocaml",
-
- "md": "text/x-markdown",
- "markdown": "text/x-markdown",
- "textile": "text/x-web-textile",
- "latex": "application/x-latex",
- "tex": "application/x-latex",
- "ltx": "application/x-latex",
-
- "lua": "text/x-lua",
-
- "pl": "text/x-script.perl",
- "pm": "text/x-script.perl-module",
-
- "ps1": "text/x-script.powershell",
- "cfm": "text/x-coldfusion",
- "sql": "text/x-sql",
-
- "sh": "application/x-sh",
- "bash": "application/x-sh"
-};
+var fileExtensions = {}, ModesCaption = {};
+Object.keys(SupportedModes).forEach(function(name) {
+ SupportedModes[name][1].split("|").forEach(function(ext) {
+ fileExtensions[ext] = name;
+ });
+ ModesCaption[SupportedModes[name][0]] = name;
+});
+
+Object.keys(contentTypes).forEach(function(mime) {
+ var ext = contentTypes[mime];
+ var mode = fileExtensions[ext];
+ if (SupportedModes[mode][1].indexOf(ext) == 0)
+ SupportedModes[mode].mime = mime;
+});
module.exports = ext.register("ext/code/code", {
name : "Code Editor",
@@ -183,8 +143,8 @@ module.exports = ext.register("ext/code/code", {
nodes : [],
menus : [],
- fileExtensions : Object.keys(contentTypes),
- supportedModes : Object.keys(SupportedModes),
+ fileExtensions : Object.keys(fileExtensions),
+ supportedModes : Object.keys(SupportedModes),
getState : function(doc) {
doc = doc ? doc.acesession : this.getDocument();
@@ -242,23 +202,61 @@ module.exports = ext.register("ext/code/code", {
if (!node)
return "";
- var mime = node.getAttribute("customtype");
+ var mode = node.getAttribute("customtype");
- if (!mime) {
+ if (mode) {
+ var ext = contentTypes[mode.split(";")[0]] ;
+ if (ext)
+ mode = fileExtensions[contentTypes[mode]];
+ }
+
+ if (!mode) {
var fileName = node.getAttribute("name");
-
- if (fileName.lastIndexOf(".") != -1)
- mime = contentTypes[fileName.split(".").pop().toLowerCase()];
- else
- mime = contentTypes["*" + fileName];
+ var dotI = fileName.lastIndexOf(".") + 1;
+ var ext = dotI ? fileName.substr(dotI).toLowerCase() : "*" + fileName;
+ mode = fileExtensions[ext];
}
- if (mime) {
- mime = mime.split(";")[0];
- return (SupportedModes[mime] || "text");
+ return SupportedModes[mode] ? mode : "text";
+ },
+
+ setSyntax : function(value) {
+ value = SupportedModes[value] ? value : "auto";
+ var file = ide.getActivePageModel();
+ if (!file)
+ return;
+
+ var fileName = file.getAttribute("name");
+ var dotI = fileName.lastIndexOf(".") + 1;
+ var ext = dotI ? fileName.substr(dotI).toLowerCase() : "*" + fileName;
+ if (value == "auto") {
+ apf.xmldb.removeAttribute(file, "customtype", "");
+
+ delete fileExtensions[ext];
+ for (var mode in SupportedModes) {
+ if (SupportedModes[mode][1].split("|").indexOf(ext) != -1) {
+ fileExtensions[ext] = mode;
+ break;
+ }
+ }
+ } else {
+ if (!SupportedModes[value])
+ return;
+
+ apf.xmldb.setAttribute(file, "customtype", value);
+ fileExtensions[ext] = value;
+ this.setCustomType(dotI ? ext : file, value);
+
+ ide.dispatchEvent("track_action", {
+ type: "syntax highlighting",
+ fileType: ext,
+ fileName: fileName,
+ customType: value
+ });
}
- return "text";
+ if (self.ceEditor)
+ ceEditor.setAttribute("syntax", this.getSyntax(file));
},
getContentType : function(node) {
@@ -266,7 +264,7 @@ module.exports = ext.register("ext/code/code", {
if (!syntax)
return "auto";
- return contentTypes[syntax] || (syntax == "text" ? "text/plain" : "auto");
+ return SupportedModes[syntax].mime || "auto";
},
getSelection : function(){
@@ -424,6 +422,17 @@ module.exports = ext.register("ext/code/code", {
commands.addCommands(defaultCommands, true);
commands.addCommands(MultiSelectCommands, true);
+ commands.addCommand({
+ name: "syntax",
+ exec: function(_, syntax) {
+ if (typeof syntax == "object")
+ syntax = syntax.argv && syntax.argv[1] || "";
+ syntax = ModesCaption[syntax] || fileExtensions[syntax] || syntax;
+ _self.setSyntax(syntax);
+ },
+ commands: ModesCaption
+ });
+
//Settings Support
ide.addEventListener("settings.load", function(e) {
settings.setDefaults("editors/code", [
@@ -624,47 +633,7 @@ module.exports = ext.register("ext/code/code", {
}
},
"onitemclick" : function(e) {
- var file = ide.getActivePageModel();
-
- if (file) {
- var value = e.relatedNode.value;
-
- if (value == "auto")
- apf.xmldb.removeAttribute(file, "customtype", "");
- else
- apf.xmldb.setAttribute(file, "customtype", value);
-
- if (file.getAttribute("customtype")) {
- var fileName = file.getAttribute("name");
-
- if (contentTypes["*" + fileName])
- delete contentTypes["*" + fileName];
-
- var mime = value.split(";")[0];
- var fileExt = (fileName.lastIndexOf(".") != -1) ?
- fileName.split(".").pop() : null;
-
- if (fileExt && contentTypes[fileExt] !== mime)
- delete contentTypes[fileExt];
-
- var customType = fileExt ?
- contentTypes[fileExt] : contentTypes["*" + fileName];
-
- if (!customType)
- _self.setCustomType(fileExt ? fileExt : file, mime);
-
- ide.dispatchEvent("track_action", {
- type: "syntax highlighting",
- fileType: fileExt,
- fileName: fileName,
- mime: mime,
- customType: customType
- });
- }
-
- if (self.ceEditor)
- ceEditor.setAttribute("syntax", _self.getSyntax(file));
- }
+ _self.setSyntax(e.relatedNode.value);
}
}), 300000),
@@ -750,6 +719,8 @@ module.exports = ext.register("ext/code/code", {
);
for (var mode in ModesCaption) {
+ if (ModesCaption[mode][3] == "hidden")
+ continue;
this.menus.push(
menus.addItemByPath("View/Syntax/" + mode, new apf.item({
type: "radio",
@@ -845,16 +816,16 @@ module.exports = ext.register("ext/code/code", {
* Saves custom syntax for extension type in settings.xml
*
* @param {String|xmlNode} ext Contains the extension type shorthand
- * @param {String} mime Mime type string the extension will be related to
+ * @param {String} mode ace mode the extension will be related to
*/
- setCustomType: function(ext, mime) {
+ setCustomType: function(ext, mode) {
var node;
if (typeof ext === "string") {
node = settings.model.queryNode('auto/customtypes/mime[@ext="' + ext + '"]');
if (!node)
node = settings.model.appendXml('<mime name="'
- + mime + '" ext="' + ext + '" />', "auto/customtypes");
+ + mode + '" ext="' + ext + '" />', "auto/customtypes");
} else {
var name = ext.getAttribute("name") || "";
node = settings.model.queryNode('auto/customtypes/mime[@filename="' + name + '"]');
@@ -862,10 +833,10 @@ module.exports = ext.register("ext/code/code", {
apf.xmldb.removeAttribute(node, "ext");
else
node = settings.model.appendXml('<mime name="'
- + mime + '" filename="' + name + '" />', "auto/customtypes");
+ + mode + '" filename="' + name + '" />', "auto/customtypes");
}
- apf.xmldb.setAttribute(node, "name", mime);
+ apf.xmldb.setAttribute(node, "name", mode);
settings.save();
},
@@ -881,10 +852,13 @@ module.exports = ext.register("ext/code/code", {
var mimes = customTypes.selectNodes("mime");
mimes.forEach(function(n) {
- if (n.getAttribute("filename"))
- contentTypes["*" + n.getAttribute("filename")] = n.getAttribute("name");
- else
- contentTypes[n.getAttribute("ext")] = n.getAttribute("name");
+ var ext = n.getAttribute("filename")
+ ext = ext ? "*" + ext : n.getAttribute("ext");
+ var mode = n.getAttribute("name");
+ // old settings contained contenttype instead of mode
+ if (contentTypes[mode])
+ mode = contentTypes[mode];
+ fileExtensions[ext] = mode;
});
},
View
4 plugins-client/ext.commands/commands.js
@@ -82,7 +82,7 @@ module.exports = ext.register("ext/commands/commands", apf.extend(
if (Array.isArray(command)) {
for (var i = command.length; i--; ) {
var cmd = command[i];
- if (!cmd.isAvailable || cmd.isAvailable(editor))
+ if (!cmd.isAvailable || cmd.isAvailable(editor, e))
break;
else
cmd = null;
@@ -90,7 +90,7 @@ module.exports = ext.register("ext/commands/commands", apf.extend(
if (!cmd)
return;
command = cmd;
- } else if (command.isAvailable && !command.isAvailable(editor))
+ } else if (command.isAvailable && !command.isAvailable(editor, e))
return; //Disable commands for other contexts
if (command.findEditor)
View
2  plugins-client/ext.commands/settings.xml
@@ -1,5 +1,5 @@
<a:application xmlns:a="http://ajax.org/2005/aml">
- <a:hbox edge="5 5 2 5" align="center" position="20000" class="underlined">
+ <a:hbox edge="2 5 2 5" align="center" position="20000" class="underlined">
<a:label flex="1">Keybindings: </a:label>
<a:dropdown id="ddKeyBind"
model = "mdlKeyBindings"
View
13 plugins-client/ext.console/logger.js
@@ -14,6 +14,9 @@ var RE_relwsp = /(?:\s|^|\.\/)([\w\_\$-]+(?:\/[\w\_\$-]+)+(?:\.[\w\_\$]+))?(\:\d
var RE_URL = /\b((?:(?:https?):(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()[\]{};:'".,<>?«»“”‘’]))/i;
var RE_COLOR = /\u001b\[([\d;]+)?m/g;
+var BUFFER_INTERVAL = 100;
+var OUTPUT_CUTOFF = 2003;
+
var openLinkedFile = function(path, row, column) {
row = parseInt(row.slice(1), 10);
column = column ? parseInt(column.slice(1), 10) : 0;
@@ -185,6 +188,12 @@ module.exports.logNodeStream = function(data, stream, useOutput, ide) {
if (parentEl) {
parentEl.appendChild(childBuffer[outputId]);
childBuffer[outputId] = document.createDocumentFragment();
+
+ // childNodes[3] are the actual lines of output that come after
+ // the spinner, prompt and divider
+ var numChildNodesOverflow = parentEl.childNodes.length - OUTPUT_CUTOFF;
+ for (var i = 0; i < numChildNodesOverflow; i++)
+ parentEl.removeChild(parentEl.childNodes[3]);
}
else {
if (typeof txtOutput !== "undefined") {
@@ -196,7 +205,7 @@ module.exports.logNodeStream = function(data, stream, useOutput, ide) {
childBufferInterval[outputId] = setInterval(function() {
outputBuffer();
- }, 100);
+ }, BUFFER_INTERVAL);
}
var lines = (data.toString()).split("\n", MAX_LINES);
@@ -227,7 +236,7 @@ module.exports.killBufferInterval = function(sectionNumber) {
// Wait for the remaining buffer to output
setTimeout(function() {
clearInterval(childBufferInterval[sectionId]);
- }, 150);
+ }, BUFFER_INTERVAL + (BUFFER_INTERVAL/2));
}
};
View
24 plugins-client/ext.editors/editors.js
@@ -159,6 +159,9 @@ module.exports = ext.register("ext/editors/editors", {
onmouseover : function(){
this.setAttribute("submenu", require('ext/menus/menus').getMenuId('View/Tabs'));
},
+ onmousedown : function(){
+ apf.setStyleClass(window[menus.getMenuId('View/Tabs')].$ext, 'tabsContextMenu');
+ },
/* showme : "[{require('core/settings').model}::auto/tabs/@show]",
visible : "{apf.isTrue(this.showme)}", */
skin : "btn_icon_only",
@@ -217,16 +220,11 @@ module.exports = ext.register("ext/editors/editors", {
this.$buttonContainer = new apf.bar({
skin : "basic",
"class": "editor_tab",
- "style": "position:absolute",
+ "style": "position:absolute;z-index:10;",
htmlNode : document.body
});
this.$buttonContainer.$int.appendChild(tabEditors.$buttons);
//tabEditors.$buttons.style[apf.CSSPREFIX + "BoxFlex"] = 1;
- this.$buttonContainer.$int.style.paddingRight
- = (parseInt(apf.getStyle(tabEditors.$buttons, "paddingLeft"))
- + parseInt(apf.getStyle(tabEditors.$buttons, "paddingRight"))) + "px";
-
- tabEditors.$buttons.style.width = "100%";
// var timer;
// tabEditors.$buttons.addEventListener("mouseover",function(e){
@@ -317,7 +315,7 @@ module.exports = ext.register("ext/editors/editors", {
tweens : [
{ from: ext.offsetTop, to: ((this.showTabs || preview ? 0 : - 16) + pos[1]), type: "top" },
{ from: ext.offsetHeight - d[1], to: ((this.showTabs || preview ? 0 : 16) + ph.offsetHeight - d[1]), type: "height" },
- { oHtml: tabEditors.$buttons, from: parseInt(tabEditors.$buttons.style.height), to: (this.showTabs || preview ? 26 : 12), type: "height" },
+ { oHtml: tabEditors.$buttons, from: parseInt(tabEditors.$buttons.style.height), to: (this.showTabs || preview ? 27 : 12), type: "height" },
{ oHtml: this.buttons.add, from: dir ? 0 : 1, to : dir ? 1 : 0, type: "fade" },
{ oHtml: this.buttons.add, from: dir ? 10 : 17, to : dir ? 17 : 10, type: "height" },
{ oHtml: this.buttons.menu, from: dir ? 0 : 1, to : dir ? 1 : 0, type: "fade" },
@@ -348,7 +346,7 @@ module.exports = ext.register("ext/editors/editors", {
}
else {
if (this.showTabs || preview) {
- tabEditors.$buttons.style.height = "26px";
+ tabEditors.$buttons.style.height = "27px";
apf.setStyleClass(tabEditors.$buttons.parentNode, "", ["hidetabs"]);
this.buttons.menu.setHeight(17);
this.buttons.add.setHeight(17);
@@ -1033,6 +1031,16 @@ module.exports = ext.register("ext/editors/editors", {
return node;
},
+ createFolderNodeFromPath : function (path) {
+ var name = path.split("/").pop();
+ var node = apf.n("<folder />")
+ .attr("name", name)
+ .attr("contenttype", util.getContentType(name))
+ .attr("path", path)
+ .node();
+ return node;
+ },
+
pauseTabResize : function(){
return;
tabEditors.setAttribute("buttons", "close,order");
View
321 plugins-client/ext.gitblame/blame_gutter.js
@@ -0,0 +1,321 @@
+/**
+ * Git Blame extension for the Cloud9 IDE client
+ *
+ * @copyright 2011, Ajax.org B.V.
+ * @license GPLv3 <http://www.gnu.org/licenses/gpl.txt>
+ */
+
+define(function(require, exports, module) {
+"use strict";
+
+var dom = require("ace/lib/dom");
+var event = require("ace/lib/event");
+
+dom.importCssString("\
+.ace_resizer_v {\
+ top: 0px;\
+ width: 2px;\
+ z-index: 10;\
+ height: 100%;\
+ cursor: w-resize;\
+ position: absolute;\
+ border-right: 1px solid black;\
+}\
+.ace_resizer_v:hover {\
+ border-right-color: darkblue;\
+}\
+.ace_closeButton {\
+ top: -5px;\
+ left: -3px;\
+ width: 11px;\
+ height: 11px;\
+ cursor: pointer;\
+ position: absolute;\
+ border-radius: 11px;\
+ background: rgba(255, 0, 194, 0.33);\
+}\
+.ace_closeButton:hover {\
+ background: rgba(255, 0, 194, 0.5);\
+}\
+.ace_blame-gutter-layer {\
+ position: absolute !important;\
+ text-align: left !important;\
+ top: 0;\
+}\
+.ace_blame-cell{\
+ border-top: solid 1px;\
+ word-wrap: break-word;\
+ white-space: pre-wrap;\
+ box-sizing: border-box;\
+ -moz-box-sizing: border-box;\
+ overflow: hidden !important;\
+ padding: 0 8px;\
+}\
+.ace_blame-cell.selected{\
+ background: rgba(255, 237, 0, 0.31);\
+}\
+.ace_tooltip{\
+ position:fixed;\
+ background: #F8F7AC;\
+ border: solid 1px rgba(205, 237, 0, 0.81);\
+ border-radius:5px;\
+ z-index: 1000000;\
+ max-width: 500px;\
+ white-space: pre-wrap;\
+}\
+", "blameGutter");
+
+var BlameGutter = function(editor, blameData) {
+ if (editor.blameGutter)
+ return;
+
+ var gutter = editor.renderer.$gutterLayer;
+ editor.blameGutter = this;
+ gutter.blameColumn = this;
+
+ this.element = dom.createElement("div");
+ this.element.className = "ace_layer ace_blame-gutter-layer";
+ var parentEl = editor.renderer.$gutter;
+ parentEl.appendChild(this.element);
+
+ this.resizer = dom.createElement("div");
+ this.resizer.className = "ace_resizer_v";
+ parentEl.appendChild(this.resizer);
+
+ this.closeButton = dom.createElement("div");
+ this.closeButton.className = "ace_closeButton";
+ this.resizer.appendChild(this.closeButton);
+
+ editor.tooltip = dom.createElement("div");
+ editor.tooltip.className = "ace_tooltip";
+ editor.tooltip.style.display = "none";
+ editor.container.appendChild(editor.tooltip);
+
+ this.onMousedown = this.onMousedown.bind(this);
+ this.onChangeSession = this.onChangeSession.bind(this);
+ this.onMousemove = this.onMousemove.bind(this);
+ this.onMouseout = this.onMouseout.bind(this);
+
+ this.editor = editor;
+ if (blameData)
+ this.setData(blameData);
+ else
+ this.removeData(blameData);
+};
+
+(function(){
+ this.update = function(config) {
+ this.$config = config;
+
+ var blameEl = this.blameColumn.element;
+ blameEl.style.marginTop = -config.offset + "px";
+
+ var html = [];
+ var i = config.firstRow;
+ var lastRow = config.lastRow;
+ var fold = this.session.getNextFoldLine(i);
+ var foldStart = fold ? fold.start.row : Infinity;
+ var foldWidgets = this.$showFoldWidgets && this.session.foldWidgets;
+ var lineHeight = config.lineHeight;
+
+ var blameData = this.blameData;
+ var selectedText = this.selectedText;
+ var blameHtml = [];
+ var $blameIndex, lastBlameCellIndex = 0;
+ var blameCell;
+
+ findBlameCell(i);
+ if (blameCell)
+ addBlameCell(blameCell.text, blameCell.title);
+ else
+ addBlameCell("", "");
+
+ // adjust top margin of first cell to always keep it on screen
+ if (!blameData[i + 1]) {
+ blameHtml[$blameIndex] -= config.offset - 1;
+ blameHtml.splice($blameIndex + 1, 0, "px;margin-top:", config.offset - 1);
+ }
+
+
+ while (true) {
+ if(i > foldStart) {
+ i = fold.end.row + 1;
+ fold = this.session.getNextFoldLine(i, fold);
+ if (fold) {
+ foldStart = fold.start.row;
+ lastBlameCellIndex = fold.end.row;
+ } else {
+ foldStart = Infinity;
+ }
+ }
+ if(i > lastRow)
+ break;
+
+ html.push("<div class='ace_gutter-cell",
+ this.$decorations[i] || "",
+ "' style='height:", lineHeight, "px;'>", (i+1));
+
+ if (foldWidgets) {
+ var c = foldWidgets[i];
+ // check if cached value is invalidated and we need to recompute
+ if (c == null)
+ c = foldWidgets[i] = this.session.getFoldWidget(i);
+ if (c)
+ html.push(
+ "<span class='ace_fold-widget ", c,
+ c == "start" && i == foldStart && i < fold.end.row ? " closed" : " open",
+ "'></span>"
+ );
+ }
+
+ var wrappedRowLength = this.session.getRowLength(i) - 1;
+ while (wrappedRowLength--) {
+ html.push("</div><div class='ace_gutter-cell' style='height:", lineHeight, "px'>\xA6");
+ }
+ html.push("</div>");
+
+ i++;
+
+ // html for blame column
+ findBlameCell(i);
+ if (blameCell)
+ addBlameCell(blameCell.text, blameCell.title);
+ else
+ blameHtml[$blameIndex] += this.session.getRowLength(i-1) * lineHeight;
+ }
+
+ this.element = dom.setInnerHtml(this.element, html.join(""));
+ this.blameColumn.element = dom.setInnerHtml(blameEl, blameHtml.join(""));
+ this.element.style.height = config.minHeight + "px";
+
+ var gutterWidth = this.element.parentNode.offsetWidth;
+ if (gutterWidth !== this.gutterWidth) {
+ this.gutterWidth = gutterWidth;
+ this._emit("changeGutterWidth", gutterWidth);
+ }
+
+ function addBlameCell(text, title) {
+ blameHtml.push(
+ "<div class='ace_blame-cell ", text == selectedText ? "selected" : "",
+ "' index='", lastBlameCellIndex - 1,"'",
+ "style='height:", lineHeight, "px'>",
+ text, " ", title,
+ "</div>"
+ );
+ $blameIndex = blameHtml.length - 6;
+ }
+ function findBlameCell(i) {
+ do {
+ blameCell = blameData[i];
+ } while (!blameCell && i-- > lastBlameCellIndex);
+ lastBlameCellIndex = i + 1;
+ }
+ };
+
+ this.setData = function(blameData) {
+ var gutter = this.editor.renderer.$gutterLayer;
+ gutter.blameData = blameData || [];
+ gutter.update = this.update;
+ this.element.style.display = "";
+ this.closeButton.style.display = "";
+ this.resizer.style.display = "";
+ this.editor.on("guttermousedown", this.onMousedown);
+ this.editor.on("changeSession", this.onChangeSession);
+
+ var gutterEl = this.editor.renderer.$gutter;
+ event.addListener(gutterEl, "mousemove", this.onMousemove);
+ event.addListener(gutterEl, "mouseout", this.onMouseout);
+
+ this.resizer.style.right = "40px";
+ this.element.style.width = "260px";
+ this.element.parentNode.style.width = "300px";
+
+ gutter.update(this.editor.renderer.layerConfig);
+ };
+
+ this.removeData = function() {
+ var gutter = this.editor.renderer.$gutterLayer;
+ delete gutter.update;
+
+ this.editor.removeListener("guttermousedown", this.onMousedown);
+ this.editor.removeListener("changeSession", this.onChangeSession);
+ var gutterEl = this.editor.renderer.$gutter;
+ event.removeListener(gutterEl, "mousemove", this.onMousemove);
+ event.removeListener(gutterEl, "mouseout", this.onMouseout);
+
+ this.element.style.display = "none";
+ this.closeButton.style.display = "none";
+ this.resizer.style.display = "none";
+
+ this.element.parentNode.style.width = "";
+ gutter.update(this.editor.renderer.layerConfig);
+ };
+
+ this.onMousedown = function(e) {
+ var target = e.domEvent.target;
+ if (target == this.closeButton)
+ return this.removeData();
+
+ if (target == this.resizer) {
+ var rect = this.editor.blameGutter.element.getBoundingClientRect();
+ var mouseHandler = this.editor.$mouseHandler;
+ mouseHandler.resizeBlameGutter = function() {
+ var gutterWidth = this.x + 40 - rect.left;
+ this.editor.renderer.$gutter.style.width = gutterWidth + "px";
+ this.editor.blameGutter.element.style.width = gutterWidth - 40 + "px";
+ this.editor.renderer.$gutterLayer._emit("changeGutterWidth", gutterWidth);
+ };
+ mouseHandler.captureMouse(e, "resizeBlameGutter");
+ return;
+ }
+
+ if (dom.hasCssClass(target, "ace_blame-cell")) {
+ var gutter = this.editor.renderer.$gutterLayer;
+ var index = parseInt(target.getAttribute("index"));
+
+ var blameCell = gutter.blameData[index];
+ if (!blameCell)
+ return;
+ gutter.selectedText = blameCell.text;
+ var ch = target.parentNode.children;
+ for (var i = ch.length; i--; ) {
+ var isSelected = ch[i].innerHTML.indexOf(gutter.selectedText) == 0;
+ ch[i].className = "ace_blame-cell" + (isSelected ? " selected" : "");
+ }
+ }
+ };
+
+ this.onChangeSession = function() {
+ this.removeData();
+ };
+
+ this.onMousemove = function(e) {
+ var target = e.target;
+ var container = e.currentTarget;
+ var tooltip = this.editor.tooltip;
+ if (this.$highlightedCell != target) {
+ if (dom.hasCssClass(target, "ace_blame-cell")) {
+ tooltip.style.display = "block";
+ this.$highlightedCell = target;
+ tooltip.textContent = target.textContent;
+ }
+ }
+
+ if (this.$highlightedCell) {
+ tooltip.style.top = e.clientY + 10 + "px";
+ tooltip.style.left = e.clientX + 10 + "px";
+ } else {
+ this.onMouseout();
+ return
+ }
+ };
+ this.onMouseout = function(e) {
+ this.editor.tooltip.style.display = "none";
+ this.$highlightedCell = null
+ };
+}).call(BlameGutter.prototype);
+
+
+exports.BlameGutter = BlameGutter;
+
+});
View
51 plugins-client/ext.gitblame/gitblame.js
@@ -23,22 +23,11 @@ module.exports = ext.register("ext/gitblame/gitblame", {
init : function(amlNode){
this.blamejs = new BlameJS();
- this.originalGutterWidth = editors.currentEditor.amlEditor.$editor.renderer.getGutterWidth();
},
hook : function(){
- var _self = this;
-
- ide.addEventListener("socketMessage", this.onMessage.bind(this));
-
- tabEditors.addEventListener("beforeswitch", function(e){
- if (editors.currentEditor) {
- editors.currentEditor.amlEditor.$editor.renderer.$gutterLayer.setExtendedAnnotationTextArr([]);
- editors.currentEditor.amlEditor.$editor.renderer.setGutterWidth(_self.originalGutterWidth + "px");
- }
- });
-
- menus.addItemByPath("Tools/Git Blame", new apf.item({
+ var _self = this;
+ menus.addItemByPath("Tools/Git/Blame", new apf.item({
// @TODO: Support more CVSs? Just "Blame this File"
onclick : function(){
ext.initExtension(_self);
@@ -56,6 +45,7 @@ module.exports = ext.register("ext/gitblame/gitblame", {
file : tabEditors.getPage().$model.data.getAttribute("path")
};
+ ide.addEventListener("socketMessage", this.$onMessage = this.onMessage.bind(this));
ide.dispatchEvent("track_action", {type: "blame", cmd: cmd});
if (ext.execCommand(cmd, data) !== false) {
if (ide.dispatchEvent("consolecommand." + cmd, {
@@ -70,8 +60,6 @@ module.exports = ext.register("ext/gitblame/gitblame", {
}
else {
ide.send(data);
- // Set gutter width
- editors.currentEditor.amlEditor.$editor.renderer.setGutterWidth("300px");
}
}
}
@@ -83,6 +71,12 @@ module.exports = ext.register("ext/gitblame/gitblame", {
if (message.type != "result" && message.subtype != "blame")
return;
+ // Is the body coming in piecemeal? Process after this message
+ if (!message.body.out && !message.body.err)
+ return;
+
+ ide.removeEventListener("socketMessage", this.$onMessage = this.onMessage.bind(this));
+
//console.log(message);
if (message.body.err) {
util.alert(
@@ -94,10 +88,6 @@ module.exports = ext.register("ext/gitblame/gitblame", {
return;
}
- // Is the body coming in piecemeal? Process after this message
- if (!message.body.out)
- return;
-
if (!this.blamejs.parseBlame(message.body.out)) {
util.alert(
"Problem Parsing",
@@ -119,15 +109,30 @@ module.exports = ext.register("ext/gitblame/gitblame", {
var tempTime = new Date(parseInt(commit_data[line_data[li].hash].authorTime, 10) * 1000);
textHash[li-1] = {
text : commit_data[line_data[li].hash].author +
- " &raquo; " +
+ " \xBB " +
line_data[li].hash.substr(0, 10),
title : commit_data[line_data[li].hash].summary +