redcar 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. data/CHANGES +28 -0
  2. data/README.md +7 -0
  3. data/ROADMAP.md +11 -1
  4. data/Rakefile +61 -2
  5. data/bin/redcar +2 -1
  6. data/lib/redcar.rb +4 -3
  7. data/lib/redcar/installer.rb +3 -1
  8. data/lib/redcar/runner.rb +1 -1
  9. data/lib/redcar/usage.rb +4 -7
  10. data/lib/redcar_quick_start.rb +39 -5
  11. data/plugins/application/features/step_definitions/tree_steps.rb +6 -0
  12. data/plugins/application/features/support/env.rb +2 -6
  13. data/plugins/application/icons/redcar_icon_beta_dev.png +0 -0
  14. data/plugins/application/lib/application/command/executor.rb +8 -0
  15. data/plugins/application/lib/application/dialog.rb +25 -2
  16. data/plugins/application/lib/application/notebook.rb +4 -0
  17. data/plugins/application/lib/application/window.rb +4 -0
  18. data/plugins/application_swt/lib/application_swt.rb +2 -0
  19. data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +28 -1
  20. data/plugins/application_swt/lib/application_swt/menu.rb +4 -0
  21. data/plugins/application_swt/lib/application_swt/menu/binding_translator.rb +4 -0
  22. data/plugins/application_swt/lib/application_swt/notebook.rb +22 -1
  23. data/plugins/application_swt/lib/application_swt/notebook/tab_drag_and_drop_listener.rb +124 -0
  24. data/plugins/application_swt/lib/application_swt/notebook/tab_transfer.rb +83 -0
  25. data/plugins/application_swt/lib/application_swt/swt_wrapper.rb +14 -0
  26. data/plugins/application_swt/lib/application_swt/tab.rb +28 -6
  27. data/plugins/application_swt/lib/application_swt/window.rb +88 -43
  28. data/plugins/application_swt/spec/application_swt/menu/binding_translator_spec.rb +11 -0
  29. data/plugins/application_swt/spec/spec_helper.rb +1 -1
  30. data/plugins/auto_completer/lib/auto_completer.rb +3 -20
  31. data/plugins/auto_pairer/lib/auto_pairer/document_controller.rb +1 -1
  32. data/plugins/declarations/lib/declarations/parser.rb +2 -2
  33. data/plugins/declarations/spec/spec_helper.rb +1 -0
  34. data/plugins/edit_view/features/step_definitions/notebook_steps.rb +3 -3
  35. data/plugins/edit_view/features/step_definitions/window_steps.rb +24 -9
  36. data/plugins/edit_view/features/support/env.rb +11 -9
  37. data/plugins/edit_view/lib/edit_view.rb +106 -6
  38. data/plugins/edit_view/lib/edit_view/info_speedbar.rb +32 -3
  39. data/plugins/edit_view/lib/edit_view/select_font_dialog.rb +39 -0
  40. data/plugins/edit_view/lib/edit_view/select_theme_dialog.rb +34 -0
  41. data/plugins/edit_view/lib/edit_view/tab_settings.rb +103 -8
  42. data/plugins/edit_view_swt/lib/edit_view_swt.rb +40 -3
  43. data/plugins/edit_view_swt/lib/edit_view_swt/edit_tab.rb +1 -1
  44. data/plugins/execute_current_tab/lib/execute_current_tab.rb +15 -6
  45. data/plugins/project/features/open_directory_tree.feature +10 -0
  46. data/plugins/project/lib/project.rb +10 -8
  47. data/plugins/project/lib/project/dir_mirror.rb +6 -5
  48. data/plugins/project/lib/project/drb_service.rb +16 -0
  49. data/plugins/project/lib/project/manager.rb +31 -5
  50. data/plugins/redcar/redcar.rb +115 -19
  51. data/plugins/tree_view_swt/lib/tree_view_swt.rb +15 -0
  52. data/textmate/Bundles/Cucumber.tmbundle/Preferences/Cucumber_Plain_Text_Feature_Completions.tmPreferences +3 -3
  53. data/textmate/Bundles/Cucumber.tmbundle/Preferences/Symbol_list___Scenario.tmPreferences +1 -1
  54. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/Cucumber_Plain_Text_Feature.tmLanguage +18 -76
  55. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/Cucumber_Steps.tmLanguage +1 -1
  56. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/Animation_animateStyle.tmSnippet +23 -0
  57. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/Event_listen.tmSnippet +16 -0
  58. data/textmate/Bundles/{Cucumber.tmbundle/Snippets/When_Step_Plaintext.tmSnippet → Palm-WebOS-Development.tmbundle/Snippets/Event_stop.tmSnippet} +5 -5
  59. data/textmate/Bundles/{Cucumber.tmbundle/Snippets/Then_Step.tmSnippet → Palm-WebOS-Development.tmbundle/Snippets/Event_stopListening.tmSnippet} +5 -9
  60. data/textmate/Bundles/{Cucumber.tmbundle/Snippets/Cucumber_Multiline_Steps.tmSnippet → Palm-WebOS-Development.tmbundle/Snippets/List_Model.tmSnippet} +10 -7
  61. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/Log_addLoggingMethodsToPrototype.tmSnippet +16 -0
  62. data/textmate/Bundles/{Cucumber.tmbundle/Snippets/Then_Step_Plaintext.tmSnippet → Palm-WebOS-Development.tmbundle/Snippets/Log_info.tmSnippet} +5 -5
  63. data/textmate/Bundles/{Cucumber.tmbundle/Snippets/Scenario___heading_only__.tmSnippet → Palm-WebOS-Development.tmbundle/Snippets/Log_logProperties.tmSnippet} +5 -7
  64. data/textmate/Bundles/{Cucumber.tmbundle/Snippets/When_Step.tmSnippet → Palm-WebOS-Development.tmbundle/Snippets/Model.tmSnippet} +7 -9
  65. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/__L____.tmSnippet +16 -0
  66. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/_insert____.tmSnippet +16 -0
  67. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/_update____.tmSnippet +16 -0
  68. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/controller_get.tmSnippet +16 -0
  69. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/controller_pushScene.tmSnippet +16 -0
  70. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Snippets/controller_serviceRequest.tmSnippet +21 -0
  71. data/textmate/Bundles/{Cucumber.tmbundle/Snippets/Scenario_Outline.tmSnippet → Palm-WebOS-Development.tmbundle/Snippets/controller_setupWidget.tmSnippet} +5 -9
  72. data/textmate/Bundles/{Cucumber.tmbundle/Snippets/Given_Step.tmSnippet → Palm-WebOS-Development.tmbundle/Snippets/controller_showBanner.tmSnippet} +5 -9
  73. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/Syntaxes/Mojo.tmLanguage +713 -0
  74. data/textmate/Bundles/Palm-WebOS-Development.tmbundle/info.plist +188 -0
  75. data/textmate/Bundles/Smalltalk.tmbundle/Preferences/GNU_Smalltalk.tmPreferences +32 -0
  76. data/textmate/Bundles/{asciidoc.tmbundle/Preferences/Symbol_List___Heading.tmPreferences → Smalltalk.tmbundle/Preferences/GNU___Symbol_List___Method.tmPreferences} +7 -6
  77. data/textmate/Bundles/{Cucumber.tmbundle/Preferences/next_Symbol_list___Scenario.tmPreferences → Smalltalk.tmbundle/Preferences/GNU___Symbol_List___Section.tmPreferences} +7 -4
  78. data/textmate/Bundles/{asciidoc.tmbundle/Snippets/Bold.tmSnippet → Smalltalk.tmbundle/Preferences/MIST_Smalltalk_Format.tmPreferences} +8 -7
  79. data/textmate/Bundles/Smalltalk.tmbundle/Syntaxes/GNU_Smalltalk.tmLanguage +493 -0
  80. data/textmate/Bundles/Smalltalk.tmbundle/Syntaxes/GNU_Smalltalk_2.tmLanguage +807 -0
  81. data/textmate/Bundles/Smalltalk.tmbundle/Syntaxes/MIST_Smalltalk_Format.tmLanguage +645 -0
  82. data/textmate/Bundles/Smalltalk.tmbundle/info.plist +21 -0
  83. data/textmate/Themes/Twilight.tmTheme +4 -0
  84. metadata +2604 -2586
  85. data/textmate/Bundles/Cucumber.tmbundle/Preferences/next_Cucumber_Plain_Text_Feature_Completions.tmPreferences +0 -30
  86. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/next_Cucumber_Plain_Text_Feature.tmLanguage +0 -221
  87. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/next_Cucumber_Steps.tmLanguage +0 -424
  88. data/textmate/Bundles/asciidoc.tmbundle/Preferences/Typing_Pairs___Defaults.tmPreferences +0 -54
  89. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Anchor.tmSnippet +0 -16
  90. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Comment_Block.tmSnippet +0 -19
  91. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Example_Block.tmSnippet +0 -19
  92. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Italic.tmSnippet +0 -16
  93. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Listing_Block.tmSnippet +0 -20
  94. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Literal_Block.tmSnippet +0 -19
  95. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Passthrough_Block.tmSnippet +0 -19
  96. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Quote_Block.tmSnippet +0 -19
  97. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Quoted.tmSnippet +0 -16
  98. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Sidebar_Block.tmSnippet +0 -19
  99. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Subscript.tmSnippet +0 -16
  100. data/textmate/Bundles/asciidoc.tmbundle/Snippets/Superscript.tmSnippet +0 -16
  101. data/textmate/Bundles/asciidoc.tmbundle/Syntaxes/AsciiDoc.tmLanguage +0 -428
  102. data/textmate/Bundles/asciidoc.tmbundle/info.plist +0 -91
@@ -170,7 +170,7 @@ module Redcar
170
170
 
171
171
  class PrintScopeCommand < Command
172
172
  def execute
173
- Application::Dialog.tool_tip(tab.edit_view.document.cursor_scope.gsub(" ", "\n"))
173
+ Application::Dialog.tool_tip(tab.edit_view.document.cursor_scope.gsub(" ", "\n"), :cursor)
174
174
  end
175
175
  end
176
176
 
@@ -193,19 +193,30 @@ module Redcar
193
193
  case result
194
194
  when :yes
195
195
  tab.edit_view.document.save!
196
- tab.close
196
+ close_tab
197
197
  when :no
198
- tab.close
198
+ close_tab
199
199
  when :cancel
200
200
  end
201
201
  else
202
- tab.close
202
+ close_tab
203
203
  end
204
204
  else
205
- tab.close
205
+ close_tab
206
206
  end
207
207
  @tab = nil
208
208
  end
209
+
210
+ private
211
+
212
+ def close_tab
213
+ win = tab.notebook.window
214
+ tab.close
215
+ # this will break a lot of features:
216
+ #if win.all_tabs.empty? and not Project::Manager.in_window(win)
217
+ # win.close
218
+ #end
219
+ end
209
220
  end
210
221
 
211
222
  class SwitchTabDownCommand < Command
@@ -241,13 +252,35 @@ module Redcar
241
252
  class MoveHomeCommand < EditTabCommand
242
253
 
243
254
  def execute
244
- doc = tab.edit_view.document
255
+ doc = tab.edit_view.document
245
256
  line_ix = doc.line_at_offset(doc.cursor_offset)
246
- doc.cursor_offset = doc.offset_at_line(line_ix)
257
+ line = doc.get_line(line_ix)
258
+ prefix = line[0...doc.cursor_line_offset]
259
+
260
+ if prefix =~ /^\s*$/
261
+ # move to start of line
262
+ new_offset = doc.offset_at_line(line_ix)
263
+ else
264
+ # move to start of text
265
+ new_offset = doc.offset_at_line(line_ix)
266
+ prefix =~ /^(\s*)[^\s].*$/
267
+ whitespace_prefix_length = $1 ? $1.length : 0
268
+ new_offset += whitespace_prefix_length
269
+ end
270
+ doc.cursor_offset = new_offset
247
271
  doc.ensure_visible(doc.cursor_offset)
248
272
  end
249
273
  end
250
274
 
275
+ class MoveTopCommand < EditTabCommand
276
+
277
+ def execute
278
+ doc = tab.edit_view.document
279
+ doc.cursor_offset = 0
280
+ doc.ensure_visible(0)
281
+ end
282
+ end
283
+
251
284
  class MoveEndCommand < EditTabCommand
252
285
 
253
286
  def execute
@@ -262,6 +295,15 @@ module Redcar
262
295
  end
263
296
  end
264
297
 
298
+ class MoveBottomCommand < EditTabCommand
299
+
300
+ def execute
301
+ doc = tab.edit_view.document
302
+ doc.cursor_offset = doc.length
303
+ doc.ensure_visible(doc.length)
304
+ end
305
+ end
306
+
265
307
  class ChangeIndentCommand < EditTabCommand
266
308
  def execute
267
309
  doc = tab.edit_view.document
@@ -615,7 +657,43 @@ module Redcar
615
657
  EditView.show_invisibles = !EditView.show_invisibles?
616
658
  end
617
659
  end
660
+
661
+ class ToggleLineNumbers < Redcar::EditTabCommand
662
+ def execute
663
+ EditView.show_line_numbers = !EditView.show_line_numbers?
664
+ end
665
+ end
666
+
667
+ class ToggleAnnotations < Redcar::EditTabCommand
668
+ def execute
669
+ EditView.show_annotations = !EditView.show_annotations?
670
+ end
671
+ end
672
+
673
+ class SelectNewFont < Command
674
+ def execute
675
+ Redcar::EditView::SelectFontDialog.new.open
676
+ end
677
+ end
618
678
 
679
+ class SelectTheme < Command
680
+ def execute
681
+ Redcar::EditView::SelectThemeDialog.new.open
682
+ end
683
+ end
684
+
685
+ class SelectFontSize < Command
686
+ def execute
687
+ result = Application::Dialog.input("Font Size", "Please enter new font size", Redcar::EditView.font_size.to_s) do |text|
688
+ if text.to_i > 1 and text.to_i < 25
689
+ nil
690
+ else
691
+ "the font size must be > 1 and < 25"
692
+ end
693
+ end
694
+ Redcar::EditView.font_size = result[:value].to_i if result[:button ] == :ok
695
+ end
696
+ end
619
697
 
620
698
  def self.keymaps
621
699
  osx = Redcar::Keymap.build("main", :osx) do
@@ -637,8 +715,12 @@ module Redcar
637
715
  link "Cmd+C", CopyCommand
638
716
  link "Cmd+V", PasteCommand
639
717
  link "Cmd+D", DuplicateCommand
718
+
719
+ link "Home", MoveTopCommand
640
720
  link "Ctrl+A", MoveHomeCommand
641
721
  link "Ctrl+E", MoveEndCommand
722
+ link "End", MoveBottomCommand
723
+
642
724
  link "Cmd+[", DecreaseIndentCommand
643
725
  link "Cmd+]", IncreaseIndentCommand
644
726
  link "Cmd+Shift+I", AutoIndenter::IndentCommand
@@ -689,8 +771,12 @@ module Redcar
689
771
  link "Ctrl+C", CopyCommand
690
772
  link "Ctrl+V", PasteCommand
691
773
  link "Ctrl+D", DuplicateCommand
692
- link "Ctrl+A", MoveHomeCommand
693
- link "Ctrl+E", MoveEndCommand
774
+
775
+ link "Shift+Home", MoveTopCommand
776
+ link "Home", MoveHomeCommand
777
+ link "End", MoveEndCommand
778
+ link "Shift+End", MoveBottomCommand
779
+
694
780
  link "Ctrl+[", DecreaseIndentCommand
695
781
  link "Ctrl+]", IncreaseIndentCommand
696
782
  link "Ctrl+Shift+[", AutoIndenter::IndentCommand
@@ -730,7 +816,6 @@ module Redcar
730
816
  Menu::Builder.build do
731
817
  sub_menu "File" do
732
818
  item "New", NewCommand
733
- item "New Notebook", NewNotebookCommand
734
819
  item "New Window", NewWindowCommand
735
820
  item "Open", Project::FileOpenCommand
736
821
  item "Open Directory", Project::DirectoryOpenCommand
@@ -743,12 +828,6 @@ module Redcar
743
828
  item "Save As", Project::FileSaveAsCommand
744
829
  separator
745
830
  item "Close Tab", CloseTabCommand
746
- sub_menu "Switch Tab" do
747
- (1..9).each do |num|
748
- item "Tab #{num}", Top.const_get("SelectTab#{num}Command")
749
- end
750
- end
751
- item "Close Notebook", CloseNotebookCommand
752
831
  item "Close Window", CloseWindowCommand
753
832
  item "Close Directory", Project::DirectoryCloseCommand
754
833
  separator
@@ -765,8 +844,10 @@ module Redcar
765
844
  item "Paste", PasteCommand
766
845
  item "Duplicate Region", DuplicateCommand
767
846
  separator
768
- item "Home", MoveHomeCommand
769
- item "End", MoveEndCommand
847
+ item "Top", MoveTopCommand
848
+ item "Home", MoveHomeCommand
849
+ item "End", MoveEndCommand
850
+ item "Bottom", MoveBottomCommand
770
851
  separator
771
852
  item "Increase Indent", IncreaseIndentCommand
772
853
  item "Decrease Indent", DecreaseIndentCommand
@@ -795,14 +876,29 @@ module Redcar
795
876
  item "Print Scope at Cursor", PrintScopeCommand
796
877
  end
797
878
  sub_menu "View" do
879
+ sub_menu "Appearance" do
880
+ item "Font", SelectNewFont
881
+ item "Font Size", SelectFontSize
882
+ item "Theme", SelectTheme
883
+ end
884
+ separator
885
+ item "New Notebook", NewNotebookCommand
886
+ item "Close Notebook", CloseNotebookCommand
798
887
  item "Rotate Notebooks", RotateNotebooksCommand
799
888
  item "Move Tab To Other Notebook", MoveTabToOtherNotebookCommand
800
889
  item "Switch Notebooks", SwitchNotebookCommand
801
890
  separator
802
891
  item "Previous Tab", SwitchTabDownCommand
803
892
  item "Next Tab", SwitchTabUpCommand
893
+ sub_menu "Switch Tab" do
894
+ (1..9).each do |num|
895
+ item "Tab #{num}", Top.const_get("SelectTab#{num}Command")
896
+ end
897
+ end
804
898
  separator
805
- item "Show/Hide Invisibles", ToggleInvisibles
899
+ item "Toggle Invisibles", ToggleInvisibles
900
+ item "Toggle Line Numbers", ToggleLineNumbers
901
+ item "Toggle Annotations", ToggleAnnotations
806
902
  end
807
903
  sub_menu "Plugins" do
808
904
  item "Plugin Manager", PluginManagerUi::OpenCommand
@@ -21,6 +21,7 @@ module Redcar
21
21
 
22
22
  if @model.tree_controller
23
23
  @viewer.add_tree_listener(@viewer.getControl, TreeListener.new)
24
+ @viewer.add_double_click_listener(DoubleClickListener.new)
24
25
  @viewer.add_open_listener(OpenListener.new(@model.tree_controller))
25
26
  end
26
27
 
@@ -65,6 +66,20 @@ module Redcar
65
66
 
66
67
  class DoubleClickListener
67
68
  def double_click(e)
69
+
70
+ double_clicked_element = e.get_viewer.get_selection.get_first_element
71
+
72
+ #do nothing for leaves
73
+ return if double_clicked_element.leaf?
74
+
75
+ viewer = e.get_viewer
76
+ node_is_expanded = viewer.getExpandedState(double_clicked_element)
77
+
78
+ if node_is_expanded
79
+ viewer.collapseToLevel(double_clicked_element, 1)
80
+ else
81
+ viewer.expandToLevel(double_clicked_element, 1)
82
+ end
68
83
  end
69
84
  end
70
85
 
@@ -3,9 +3,9 @@
3
3
  <plist version="1.0">
4
4
  <dict>
5
5
  <key>name</key>
6
- <string>Cucumber Plain Text Feature Completions</string>
6
+ <string>Gherkin Completions</string>
7
7
  <key>scope</key>
8
- <string>text.cucumber.feature</string>
8
+ <string>text.gherkin.feature</string>
9
9
  <key>settings</key>
10
10
  <dict>
11
11
  <key>completions</key>
@@ -18,10 +18,10 @@
18
18
  <string>Scenario:</string>
19
19
  <string>Scenario Outline:</string>
20
20
  <string>Given</string>
21
- <string>GivenScenario</string>
22
21
  <string>Then</string>
23
22
  <string>When</string>
24
23
  <string>And</string>
24
+ <string>But</string>
25
25
  </array>
26
26
  </dict>
27
27
  <key>uuid</key>
@@ -5,7 +5,7 @@
5
5
  <key>name</key>
6
6
  <string>Symbol list: Scenario</string>
7
7
  <key>scope</key>
8
- <string>text.cucumber.feature string.language.cucumber.feature.scenario.title</string>
8
+ <string>text.gherkin.feature string.language.gherkin.scenario.title</string>
9
9
  <key>settings</key>
10
10
  <dict>
11
11
  <key>showInSymbolList</key>
@@ -7,9 +7,9 @@
7
7
  <string>feature</string>
8
8
  </array>
9
9
  <key>firstLineMatch</key>
10
- <string>Arwedd|Característica|Crikey|Egenskab|Egenskap|Feature|Fitur|Fonctionnalité|Funcionalidade|Functionalitate|Functionaliteit|Funcționalitate|Funkcionalitāte|Fīča|Funktionalität|Funzionalità|Jellemző|OH HAI|Omadus|Ominaisuus|Požadavek|Požiadavka|Savybė|Tính năng|Właściwość|Функционал|Функционалност|תכונה|خاصية|フィーチャ|機能|功能|기능(.*)</string>
10
+ <string>기능|機能|功能|フィーチャ|خاصية|תכונה|Функционалност|Функционал|Особина|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd(.*)</string>
11
11
  <key>foldingStartMarker</key>
12
- <string>^\s*\b(Cenário|Cenario|Escenari|Escenario|Forgatókönyv|MISHUN|Mate|Scenarie|Scenarijus|Scenario|Scenariu|Scenariusz|Scenár|Scenārijs|Scénario|Scénář|Skenario|Stsenaarium|Szenario|Tapaus|Tình huống|Kịch bản|Сценарий|תרחיש|سيناريو|シナリオ|场景|場景|劇本|시나리오:)</string>
12
+ <string>^\s*\b(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Предыстория|Предистория|Позадина|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Voorbeelden|Variantai|Tình huống|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l\'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)</string>
13
13
  <key>foldingStopMarker</key>
14
14
  <string>^\s*$</string>
15
15
  <key>keyEquivalent</key>
@@ -20,7 +20,7 @@
20
20
  <array>
21
21
  <dict>
22
22
  <key>include</key>
23
- <string>#scenario_keyword</string>
23
+ <string>#feature_element_keyword</string>
24
24
  </dict>
25
25
  <dict>
26
26
  <key>include</key>
@@ -32,11 +32,7 @@
32
32
  </dict>
33
33
  <dict>
34
34
  <key>include</key>
35
- <string>#line_keyword</string>
36
- </dict>
37
- <dict>
38
- <key>include</key>
39
- <string>#pending_keyword</string>
35
+ <string>#step_keyword</string>
40
36
  </dict>
41
37
  <dict>
42
38
  <key>include</key>
@@ -64,7 +60,7 @@
64
60
  </dict>
65
61
  <dict>
66
62
  <key>include</key>
67
- <string>#cucumber_table</string>
63
+ <string>#table</string>
68
64
  </dict>
69
65
  </array>
70
66
  <key>repository</key>
@@ -82,7 +78,7 @@
82
78
  <key>match</key>
83
79
  <string>\s*(#.*)</string>
84
80
  </dict>
85
- <key>cucumber_table</key>
81
+ <key>table</key>
86
82
  <dict>
87
83
  <key>begin</key>
88
84
  <string>^\s*\|</string>
@@ -100,24 +96,6 @@
100
96
  </dict>
101
97
  </array>
102
98
  </dict>
103
- <key>description</key>
104
- <dict>
105
- <key>captures</key>
106
- <dict>
107
- <key>1</key>
108
- <dict>
109
- <key>name</key>
110
- <string>keyword.language.cucumber.feature.description</string>
111
- </dict>
112
- <key>2</key>
113
- <dict>
114
- <key>name</key>
115
- <string>string.language.cucumber.feature.description</string>
116
- </dict>
117
- </dict>
118
- <key>match</key>
119
- <string>^\s*(As an|As a|I want|So that|In order)(.*)</string>
120
- </dict>
121
99
  <key>feature_keyword</key>
122
100
  <dict>
123
101
  <key>captures</key>
@@ -125,83 +103,47 @@
125
103
  <key>1</key>
126
104
  <dict>
127
105
  <key>name</key>
128
- <string>keyword.language.cucumber.feature</string>
106
+ <string>keyword.language.gherkin.feature</string>
129
107
  </dict>
130
108
  <key>2</key>
131
109
  <dict>
132
110
  <key>name</key>
133
- <string>string.language.cucumber.feature.title</string>
111
+ <string>string.language.gherkin.feature.title</string>
134
112
  </dict>
135
113
  </dict>
136
114
  <key>match</key>
137
- <string>^\s*(Arwedd|Característica|Crikey|Egenskab|Egenskap|Feature|Fitur|Fonctionnalité|Funcionalidade|Functionalitate|Functionaliteit|Funcționalitate|Funkcionalitāte|Fīča|Funktionalität|Funzionalità|Jellemző|OH HAI|Omadus|Ominaisuus|Požadavek|Požiadavka|Savybė|Tính năng|Właściwość|Функционал|Функционалност|תכונה|خاصية|フィーチャ|機能|功能|기능:)(.*)\b</string>
115
+ <string>^\s*(기능|機能|功能|フィーチャ|خاصية|תכונה|Функционалност|Функционал|Особина|Могућност|Özellik|Właściwość|Tính năng|Savybė|Požiadavka|Požadavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogućnost|Mogucnost|Jellemző|Fīča|Funzionalità|Funktionalität|Funkcionalnost|Funkcionalitāte|Funcționalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalité|Fitur|Feature|Egenskap|Egenskab|Crikey|Característica|Arwedd):(.*)\b</string>
138
116
  </dict>
139
- <key>line_keyword</key>
117
+ <key>step_keyword</key>
140
118
  <dict>
141
119
  <key>captures</key>
142
120
  <dict>
143
121
  <key>1</key>
144
122
  <dict>
145
123
  <key>name</key>
146
- <string>keyword.language.cucumber.feature.scenario.line</string>
147
- </dict>
148
- </dict>
149
- <key>match</key>
150
- <string>^\s*(A|AN|Aber|Achtergrond|Akkor|Ale|Aleshores|Allora|Alors|Als|And|And y'all|Antecedentes|Atunci|B4|BUT|Background|Baggrund|Bakgrund|Bakgrunn|Beispiele|Bet|Biết|Cho|But|But y'all|Bối cảnh|Cand|Cept|Cobber|Contesto|Contexte|Contexto|Contoh|Cuando|Când|DEN|Daca|Dacă|Dado|Dan|Dann|Dar|Dasar|Dato|De|Dengan|Donat|Duota|Dữ liệu|E|EXAMPLZ|Eeldades|Ejemplos|Eksempler|En|Enghreifftiau|Entonces|Então|Entao|Esempi|Et|Examples|Examples|Scenarios|Exempel|Exemples|Exemplos|Gegeben sei|Gegeven|Gitt|Given|Given y'all|Givet|Grundlage|Ha|Háttér|I|I CAN HAZ|Ir|Ja|Jeżeli|Juhtumid|Kad|Kai|Když|Ketika|Keď|Khi|Kontekstas|Konteksts|Situācija|Kui|Kuid|Kun|Lorsque|Ma|Maar|Mais|Majd|Maka|Mas|Men|Mutta|N|Nhưng|Niin|När|Når|Och|Og|Oletetaan|Ond|Oraz|Pak|Pavyzdžiai|Scenarijai|Variantai|Pero|Però|Piemēri|Paraugs|Pokiaľ|Pokud|Pozadie|Pozadí|Pryd|Przykłady|Príklady|Példák|Příklady|Quan|Quando|Rerefons|Si|Siis|Soit|Så|Tad|Tada|Tak|Tapaukset|Tapi|Taust|Tausta|Then|Then y'all|Thì|Un|Und|Voorbeelden|Và|WEN|Wenn|When|When y'all|Wtedy|Y|Ya gotta|Ya know how|Yna|Zakładając|Założenia|anrhegedig a|És|Și|Дадено|Допустим|Если|Значения|И|И|К тому же|Когато|Но|Но|А|Предистория|Предыстория|Примери|То|אבל|אז|אזי|בהינתן|דוגמאות|וגם|כאשר|רקע|اذاً|ثم|الخلفية|امثلة|بفرض|لكن|متى|عندما|و|かつ|しかし|但し|ならば|もし|但是|例|サンプル|例子|假如|假設|前提|当|當|而且|而且|並且|背景|那么|那麼|그러면|그리고|만일|배경|예|조건|하지만)\b</string>
151
- </dict>
152
- <key>pending_keyword</key>
153
- <dict>
154
- <key>captures</key>
155
- <dict>
156
- <key>1</key>
157
- <dict>
158
- <key>name</key>
159
- <string>keyword.language.cucumber.feature.scenario.pending.line</string>
160
- </dict>
161
- <key>2</key>
162
- <dict>
163
- <key>name</key>
164
- <string>string.language.cucumber.feature.scenario.pending.line</string>
165
- </dict>
166
- </dict>
167
- <key>match</key>
168
- <string>^\s*(Pending)(.*)\b</string>
169
- </dict>
170
- <key>scenario_keyword</key>
171
- <dict>
172
- <key>captures</key>
173
- <dict>
174
- <key>1</key>
175
- <dict>
176
- <key>name</key>
177
- <string>keyword.language.cucumber.feature.scenario</string>
178
- </dict>
179
- <key>2</key>
180
- <dict>
181
- <key>name</key>
182
- <string>string.language.cucumber.feature.scenario.title</string>
124
+ <string>keyword.language.gherkin.feature.step</string>
183
125
  </dict>
184
126
  </dict>
185
127
  <key>match</key>
186
- <string>^\s*(Cenário|Cenario|Escenari|Escenario|Forgatókönyv|MISHUN|Mate|Scenarie|Scenarijus|Scenario|Scenariu|Scenariusz|Scenár|Scenārijs|Scénario|Scénář|Skenario|Stsenaarium|Szenario|Tapaus|Tình huống|Kịch bản|Сценарий|תרחיש|سيناريو|シナリオ|场景|場景|劇本|시나리오:)(.*)</string>
128
+ <string>^\s*(하지만|조건|먼저|만일|만약|단|그리고|그러면|那麼|那么|而且|當|当|前提|假設|假如|但是|但し|並且|もし|ならば|ただし|しかし|かつ|و |متى |لكن |عندما |ثم |بفرض |اذاً |כאשר |וגם |בהינתן |אזי |אז |אבל |Унда |То |Онда |Но |Лекин |Когато |Када |Кад |К тому же |И |Задато |Задати |Задате |Если |Допустим |Дадено |Ва |Бирок |Аммо |Али |Агар |А |Și |És |anrhegedig a |Zatati |Zakładając |Zadato |Zadate |Zadano |Zadani |Zadan |Yna |Ya know how |Ya gotta |Y |Wtedy |When y\'all |When |Wenn |WEN ||Ve |Und |Un |Thì |Then y\'all |Then |Tapi |Tak |Tada |Tad |Så |Stel |Soit |Siis |Si |Quando |Quand |Quan |Pryd |Pokud |Pokiaľ |Però |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Når |När |Niin |Nhưng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\'|Kun |Kuid |Kui |Khi |Keď |Ketika |Když |Kai |Kada |Kad |Jeżeli |Ja |Ir |I CAN HAZ |I |Ha |Givet |Given y\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |Eğer ki |Etant donné |Et |Então |Entonces |Entao |En |Eeldades |E |Duota |Donat |Donada |Diyelim ki |Dengan |De |Dato |Dar |Dann |Dan |Dado |Dacă |Daca |DEN |Când |Cuando |Cho |Cept |Cand |Cal |But y\'all |But |Biết |Bet |BUT |Atès |Atunci |Atesa |Angenommen |And y\'all |And |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A také |A |\* )</string>
187
129
  </dict>
188
- <key>scenario_outline_keyword</key>
130
+ <key>feature_element_keyword</key>
189
131
  <dict>
190
132
  <key>captures</key>
191
133
  <dict>
192
134
  <key>1</key>
193
135
  <dict>
194
136
  <key>name</key>
195
- <string>keyword.language.cucumber.feature.scenario_outline</string>
137
+ <string>keyword.language.gherkin.feature.scenario</string>
196
138
  </dict>
197
139
  <key>2</key>
198
140
  <dict>
199
141
  <key>name</key>
200
- <string>string.language.cucumber.feature.scenario_outline.title</string>
142
+ <string>string.language.gherkin.scenario.title.title</string>
201
143
  </dict>
202
144
  </dict>
203
145
  <key>match</key>
204
- <string>^\s*(Abstract Scenario|Abstrakt Scenario|All y'all|Blokes|Esquema de l\'escenari|Esquema del escenario|Esquema do Cenário|Esquema do Cenario|Forgatókönyv vázlat|Khung tình huống|Khung kịch bản|MISHUN SRSLY|Náčrt Scenáru|Náčrt Scénáře|Plan du Scénario|Raamstsenaarium|Scenarijaus šablonas|Scenario Outline|Scenārijs pēc parauga|Schema dello scenario|Skenario konsep|Szablon scenariusza|Szenariogrundriss|Tapausaihio|Рамка на сценарий|Структура сценария|תבנית תרחיש|سيناريو مخطط|シナリオアウトライン|シナリオテンプレート|テンプレ|シナリオテンプレ|场景大纲|場景大綱|劇本大綱|시나리오 개요)(.*)</string>
146
+ <string>^\s*(예|시나리오 개요|시나리오|배경|背景|場景大綱|場景|场景大纲|场景|劇本大綱|劇本|例子|例|テンプレ|シナリオテンプレート|シナリオテンプレ|シナリオアウトライン|シナリオ|サンプル|سيناريو مخطط|سيناريو|امثلة|الخلفية|תרחיש|תבנית תרחיש|רקע|דוגמאות|Тарих|Сценарији|Сценарио|Сценарий структураси|Сценарий|Структура сценарија|Структура сценария|Скица|Рамка на сценарий|Примери|Пример|Предыстория|Предистория|Позадина|Основа|Мисоллар|Концепт|Контекст|Значения|Örnekler|Założenia|Voorbeelden|Variantai|Tình huống|Tausta|Taust|Tapausaihio|Tapaus|Tapaukset|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situācija|Senaryo taslağı|Senaryo|Scénář|Scénario|Schema dello scenario|Scenārijs pēc parauga|Scenārijs|Scenár|Scenariusz|Scenariul de şablon|Scenariul de sablon|Scenariu|Scenarios|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenariji|Scenarijaus šablonas|Scenarijai|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Příklady|Példák|Príklady|Przykłady|Primjeri|Primeri|Primer|Pozadí|Pozadina|Pozadie|Plan du scénario|Plan du Scénario|Piemēri|Pavyzdžiai|Paraugs|Osnova scénáře|Osnova|Náčrt Scénáře|Náčrt Scenáru|Mate|MISHUN SRSLY|MISHUN|Kịch bản|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung tình huống|Khung kịch bản|Juhtumid|Háttér|Grundlage|Geçmiş|Forgatókönyv vázlat|Forgatókönyv|Exemplos|Exemples|Exemplele|Exempel|Examples|Esquema do Cenário|Esquema do Cenario|Esquema del escenario|Esquema de l\'escenari|Esempi|Escenario|Escenari|Enghreifftiau|Eksempler|Ejemplos|EXAMPLZ|Dữ liệu|Dasar|Contoh|Contexto|Contexte|Contesto|Condiţii|Conditii|Cobber|Cenário|Cenario|Cefndir|Bối cảnh|Blokes|Beispiele|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario):(.*)</string>
205
147
  </dict>
206
148
  <key>scenario_outline_variable</key>
207
149
  <dict>
@@ -268,11 +210,11 @@
268
210
  </dict>
269
211
  </dict>
270
212
  <key>match</key>
271
- <string>(@[^@]+?)\b</string>
213
+ <string>(@[^@\r\n\t ]+)</string>
272
214
  </dict>
273
215
  </dict>
274
216
  <key>scopeName</key>
275
- <string>text.cucumber.feature</string>
217
+ <string>text.gherkin.feature</string>
276
218
  <key>uuid</key>
277
219
  <string>85E2C52C-9B16-4A54-81E7-6D8D3ADAEFA8</string>
278
220
  </dict>