redcar 0.10 → 0.11.0dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. data/CHANGES +14 -0
  2. data/Rakefile +68 -29
  3. data/lib/redcar.rb +2 -2
  4. data/plugins/application/lib/application/dialogs/filter_list_dialog.rb +2 -1
  5. data/plugins/application_swt/spec/application_swt/gradient_spec.rb +3 -12
  6. data/plugins/core/lib/core/resource.rb +13 -5
  7. data/plugins/document_search/features/find.feature +366 -214
  8. data/plugins/document_search/features/incremental_search.feature +351 -0
  9. data/plugins/document_search/features/replace.feature +16 -16
  10. data/plugins/document_search/features/step_definitions/find_steps.rb +16 -0
  11. data/plugins/document_search/features/support/env.rb +11 -0
  12. data/plugins/document_search/lib/document_search.rb +149 -109
  13. data/plugins/document_search/lib/document_search/commands.rb +251 -202
  14. data/plugins/document_search/lib/document_search/find_speedbar.rb +138 -81
  15. data/plugins/document_search/lib/document_search/incremental_search_speedbar.rb +70 -0
  16. data/plugins/document_search/lib/document_search/query_options.rb +15 -39
  17. data/plugins/document_search/plugin.rb +1 -1
  18. data/plugins/edit_view/features/step_definitions/editing_steps.rb +6 -2
  19. data/plugins/edit_view_swt/lib/edit_view_swt.rb +2 -2
  20. data/plugins/file_parser/lib/file_parser.rb +6 -1
  21. data/plugins/html_view/features/step_definitions/web_view_steps.rb +12 -0
  22. data/plugins/html_view/features/support/env.rb +16 -0
  23. data/plugins/html_view/lib/html_view.rb +5 -1
  24. data/plugins/line_tools/lib/line_tools.rb +16 -0
  25. data/plugins/project/features/find_file.feature +28 -0
  26. data/plugins/project/features/open_and_save_files.feature +11 -0
  27. data/plugins/project/features/step_definitions/file_steps.rb +6 -1
  28. data/plugins/project/features/support/env.rb +2 -0
  29. data/plugins/project/lib/project.rb +49 -6
  30. data/plugins/project/lib/project/commands.rb +18 -6
  31. data/plugins/project/lib/project/find_file_dialog.rb +19 -8
  32. data/plugins/project/lib/project/find_recent_dialog.rb +30 -0
  33. data/plugins/project/lib/project/manager.rb +41 -10
  34. data/plugins/project/lib/project/recent.rb +64 -0
  35. data/plugins/project/spec/fixtures/myproject/vendor/bar.rb +0 -0
  36. data/plugins/project/spec/fixtures/myproject/vendor/plugins/bar.rb +0 -0
  37. data/plugins/{find-in-project → project_search}/TODO.md +3 -3
  38. data/plugins/project_search/features/support/env.rb +6 -0
  39. data/plugins/project_search/features/word_search.feature +34 -0
  40. data/plugins/project_search/lib/project_search.rb +73 -0
  41. data/plugins/project_search/lib/project_search/binary_data_detector.rb +46 -0
  42. data/plugins/project_search/lib/project_search/commands.rb +62 -0
  43. data/plugins/project_search/lib/project_search/hit.rb +17 -0
  44. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/images/collapsed.png +0 -0
  45. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/images/expanded.png +0 -0
  46. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/images/spinner.gif +0 -0
  47. data/plugins/project_search/lib/project_search/lucene_index.rb +64 -0
  48. data/plugins/project_search/lib/project_search/lucene_refresh.rb +22 -0
  49. data/plugins/project_search/lib/project_search/project.rb +14 -0
  50. data/plugins/project_search/lib/project_search/query.rb +29 -0
  51. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/stylesheets/style.css +14 -3
  52. data/plugins/project_search/lib/project_search/views/_file.html.erb +60 -0
  53. data/plugins/{find-in-project/lib/find_in_project → project_search/lib/project_search}/views/index.html.erb +12 -9
  54. data/plugins/project_search/lib/project_search/word_search.rb +105 -0
  55. data/plugins/project_search/lib/project_search/word_search_controller.rb +207 -0
  56. data/plugins/project_search/plugin.rb +8 -0
  57. data/plugins/project_search/spec/fixtures/project/binary_file.bin +0 -0
  58. data/plugins/project_search/spec/fixtures/project/foo.txt +43 -0
  59. data/plugins/project_search/spec/fixtures/project/qux.rb +3 -0
  60. data/plugins/project_search/spec/project_search/binary_data_detector_spec.rb +24 -0
  61. data/plugins/project_search/spec/project_search/word_search_spec.rb +157 -0
  62. data/plugins/project_search/spec/spec_helper.rb +27 -0
  63. data/plugins/redcar/redcar.rb +77 -71
  64. data/plugins/ruby/lib/ruby/syntax_checker.rb +1 -1
  65. data/plugins/snippets/features/snippets.feature +12 -0
  66. data/plugins/snippets/lib/snippets/tab_handler.rb +1 -1
  67. metadata +46 -25
  68. data/plugins/document_search/features/find_and_replace.feature +0 -723
  69. data/plugins/document_search/lib/document_search/find_and_replace_speedbar.rb +0 -142
  70. data/plugins/find-in-project/lib/find_in_project.rb +0 -35
  71. data/plugins/find-in-project/lib/find_in_project/commands.rb +0 -30
  72. data/plugins/find-in-project/lib/find_in_project/controllers.rb +0 -170
  73. data/plugins/find-in-project/lib/find_in_project/views/_divider.html.erb +0 -4
  74. data/plugins/find-in-project/lib/find_in_project/views/_file_heading.html.erb +0 -10
  75. data/plugins/find-in-project/lib/find_in_project/views/_file_line.html.erb +0 -6
  76. data/plugins/find-in-project/plugin.rb +0 -11
  77. data/plugins/project/lib/project/recent_directories.rb +0 -54
@@ -0,0 +1,8 @@
1
+
2
+ Plugin.define do
3
+ name "project_search"
4
+ version "1.0"
5
+ file "lib", "project_search"
6
+ object "ProjectSearch"
7
+ dependencies "project", ">0"
8
+ end
@@ -0,0 +1,43 @@
1
+ Foo Bar Baz
2
+ foo bar baz
3
+ Corge Corge Corge
4
+
5
+ 111
6
+ 222
7
+ 333
8
+ 444
9
+ 555
10
+ 666
11
+ 777
12
+ 888
13
+ 999
14
+ 000
15
+ ,,,
16
+ aaa
17
+ bbb xxx
18
+ ccc xxx
19
+ ddd
20
+ eee xxx
21
+ fff
22
+ ggg
23
+ hhh xxx
24
+ iii
25
+ jjj
26
+ kkk
27
+ lll xxx
28
+ mmm
29
+ nnn
30
+ ooo
31
+ ppp
32
+ qqq xxx
33
+ rrr
34
+ sss
35
+ ttt
36
+ uuu
37
+ vvv
38
+ www xxx
39
+ yyy
40
+ zzz
41
+ ...
42
+
43
+ Christmas
@@ -0,0 +1,3 @@
1
+ qux.quux
2
+
3
+ Christmas
@@ -0,0 +1,24 @@
1
+
2
+ require File.dirname(__FILE__) + '/../spec_helper'
3
+
4
+ describe ProjectSearch::BinaryDataDetector do
5
+
6
+ it "should detect plain text files" do
7
+ txt1 = File.read(project_search_fixture_dir + "/foo.txt")
8
+ txt2 = File.read(project_search_fixture_dir + "/qux.rb")
9
+
10
+ ProjectSearch::BinaryDataDetector.textual?(txt1).should be_true
11
+ ProjectSearch::BinaryDataDetector.textual?(txt2).should be_true
12
+
13
+ ProjectSearch::BinaryDataDetector.binary?(txt1).should be_false
14
+ ProjectSearch::BinaryDataDetector.binary?(txt2).should be_false
15
+ end
16
+
17
+ it "should detect binary files" do
18
+ bin = File.read(project_search_fixture_dir + "/binary_file.bin")
19
+
20
+ ProjectSearch::BinaryDataDetector.textual?(bin).should be_false
21
+
22
+ ProjectSearch::BinaryDataDetector.binary?(bin).should be_true
23
+ end
24
+ end
@@ -0,0 +1,157 @@
1
+
2
+ require File.dirname(__FILE__) + "/../spec_helper"
3
+
4
+ describe ProjectSearch::WordSearch do
5
+ after do
6
+ FileUtils.rm_rf(project_search_fixture_dir + "/.redcar")
7
+ ProjectSearch.indexes.clear
8
+ end
9
+
10
+ describe "options of the search" do
11
+ it "should have a query_string method" do
12
+ make_search("testset").query_string.should == "testset"
13
+ end
14
+
15
+ it "should construct a regex to match the query string" do
16
+ make_search("asdf", false).regex.should == /asdf/i
17
+ make_search("asdf", true).regex.should == /asdf/
18
+ end
19
+
20
+ it "should respond whether matching case or not" do
21
+ make_search("asdf", nil).match_case?.should == false
22
+ make_search("asdf", 123).match_case?.should == true
23
+ end
24
+ end
25
+
26
+ def fixture_project
27
+ @fixture_project ||= Redcar::Project.new(project_search_fixture_dir)
28
+ end
29
+
30
+ def make_search(query, match_case=true, context=0)
31
+ ProjectSearch::WordSearch.new(fixture_project, query, match_case, context)
32
+ end
33
+
34
+ describe "finding hits" do
35
+ it "should find one occurrence" do
36
+ results = make_search("Foo").results
37
+ results.length.should == 1
38
+ result = results.first
39
+ result.should be_an_instance_of(ProjectSearch::Hit)
40
+ result.file.should == project_search_fixture_dir + "/foo.txt"
41
+ result.line_num.should == 0
42
+ result.line("<b>", "</b>").should == "<b>Foo</b> Bar Baz"
43
+ end
44
+
45
+ it "should ignore binary files" do
46
+ results = make_search("HoHo").results
47
+ results.length.should == 0
48
+ end
49
+
50
+ it "should find every occurrence" do
51
+ results = make_search("xxx").results
52
+ results.length.should == 7
53
+ results.map {|r| r.line_num}.should == [16, 17, 19, 22, 26, 31, 37]
54
+ end
55
+
56
+ it "should ignore case if asked" do
57
+ results = make_search("Foo", false).results
58
+ results.length.should == 2
59
+ results.map {|r| r.line_num}.should == [0, 1]
60
+ results[0].file.should =~ /foo.txt$/
61
+ results[1].file.should =~ /foo.txt$/
62
+ end
63
+ end
64
+
65
+ describe "hits" do
66
+ it "should enwrap every occurrence" do
67
+ results = make_search("Corge").results
68
+ results.length.should == 1
69
+ result = results.first
70
+ result.should be_an_instance_of(ProjectSearch::Hit)
71
+ result.file.should == project_search_fixture_dir + "/foo.txt"
72
+ result.line_num.should == 2
73
+ result.line("<b>", "</b>").should == "<b>Corge</b> <b>Corge</b> <b>Corge</b>"
74
+ end
75
+ end
76
+
77
+ describe "pre context" do
78
+ it "should return pre context" do
79
+ results = make_search("333", true, 2).results
80
+ results.length.should == 1
81
+ result = results.first
82
+ result.pre_context.should == ["111", "222"]
83
+ end
84
+
85
+ it "should return no pre context for first line" do
86
+ results = make_search("Foo", true, 2).results
87
+ results.length.should == 1
88
+ result = results.first
89
+ result.pre_context.should == []
90
+ end
91
+
92
+ it "should return short pre context for second line" do
93
+ results = make_search("foo", true, 2).results
94
+ results.length.should == 1
95
+ result = results.first
96
+ result.pre_context.should == ["Foo Bar Baz"]
97
+ end
98
+
99
+ it "should return pre context for hits right after one another" do
100
+ results = make_search("xxx", true, 2).results
101
+ results[0].pre_context.should == [",,,", "aaa"]
102
+ results[1].pre_context.should == ["aaa", "bbb xxx"]
103
+ end
104
+ end
105
+
106
+ describe "post context" do
107
+ it "should return post context" do
108
+ results = make_search("333", true, 2).results
109
+ results.length.should == 1
110
+ result = results.first
111
+ result.post_context.should == ["444", "555"]
112
+ end
113
+
114
+ it "should return post context for hits right after one another" do
115
+ results = make_search("xxx", true, 2).results
116
+ results[0].post_context.should == ["ccc xxx", "ddd"]
117
+ results[1].post_context.should == ["ddd", "eee xxx"]
118
+ end
119
+ end
120
+
121
+ describe "when there are changes to the file system" do
122
+ it "should not return results for deleted files" do
123
+ test_file = File.expand_path(project_search_fixture_dir + "/jscar.txt")
124
+ File.open(test_file, "w") do |fout|
125
+ fout.puts "aa testword bb"
126
+ end
127
+
128
+ # indexing should have happened by now
129
+ search = make_search("testword")
130
+ search.results.map {|r| File.expand_path(r.file)}.should include(test_file)
131
+
132
+ FileUtils.rm_rf(test_file)
133
+
134
+ # should still work but should not include the result
135
+ search = make_search("testword")
136
+ search.results.map {|r| File.expand_path(r.file)}.should_not include(test_file)
137
+ end
138
+ end
139
+
140
+ describe "streaming search results" do
141
+ it "should stream by file" do
142
+ search = make_search("Christmas")
143
+ results_by_file = []
144
+ search.on_file_results do |file_hits|
145
+ results_by_file << file_hits
146
+ end
147
+ search.results
148
+ results_by_file.length.should == 2
149
+ results_by_file.map {|r| r.first.file.split("/").last}.sort.should == ["foo.txt", "qux.rb"].sort
150
+ end
151
+ end
152
+ end
153
+
154
+
155
+
156
+
157
+
@@ -0,0 +1,27 @@
1
+ $:.push File.expand_path(File.dirname(__FILE__) + '../../../lib')
2
+
3
+ require 'redcar'
4
+ Redcar.environment = :test
5
+ Redcar.load_unthreaded
6
+
7
+ class ImmediateTaskQueue
8
+ class Future
9
+ def initialize(value)
10
+ @value = value
11
+ end
12
+
13
+ def get
14
+ @value
15
+ end
16
+ end
17
+
18
+ def submit(task)
19
+ Future.new(task.execute)
20
+ end
21
+ end
22
+
23
+ Redcar::Resource.compute_synchronously = true
24
+
25
+ def project_search_fixture_dir
26
+ File.dirname(__FILE__) + "/fixtures/project"
27
+ end
@@ -74,11 +74,16 @@ module Redcar
74
74
  Runnables::RunningProcessChecker.new(
75
75
  Redcar.app.all_tabs.select {|t| t.is_a?(HtmlTab)},
76
76
  "Kill all and quit?",
77
- :none => lambda { Redcar.app.quit },
78
- :continue => lambda { Redcar.app.quit },
77
+ :none => lambda { quit },
78
+ :continue => lambda { quit },
79
79
  :cancel => nil
80
80
  ).check
81
81
  end
82
+
83
+ def quit
84
+ Project::Manager.open_projects.each {|pr| pr.close }
85
+ Redcar.app.quit
86
+ end
82
87
  end
83
88
 
84
89
  class NewCommand < Command
@@ -1011,40 +1016,41 @@ Redcar.environment: #{Redcar.environment}
1011
1016
  link "Cmd+O", Project::FileOpenCommand
1012
1017
  link "Cmd+U", Project::FileReloadCommand
1013
1018
  link "Cmd+Shift+O", Project::DirectoryOpenCommand
1019
+ link "Cmd+Alt+Ctrl+P", Project::FindRecentCommand
1014
1020
  #link "Cmd+Ctrl+O", Project::OpenRemoteCommand
1015
1021
  link "Cmd+S", Project::FileSaveCommand
1016
1022
  link "Cmd+Shift+S", Project::FileSaveAsCommand
1017
1023
  link "Cmd+W", CloseTabCommand
1018
1024
  link "Cmd+Shift+W", CloseWindowCommand
1019
- link "Alt+Shift+W", CloseTreeCommand
1025
+ link "Alt+Shift+W", CloseTreeCommand
1020
1026
  link "Cmd+Q", QuitCommand
1021
1027
 
1022
1028
  #link "Cmd+Return", MoveNextLineCommand
1023
1029
 
1024
1030
  link "Ctrl+Shift+E", EditView::InfoSpeedbarCommand
1025
- link "Cmd+Z", UndoCommand
1026
- link "Cmd+Shift+Z", RedoCommand
1027
- link "Cmd+X", CutCommand
1028
- link "Cmd+C", CopyCommand
1029
- link "Cmd+V", PasteCommand
1030
- link "Cmd+D", DuplicateCommand
1031
-
1032
- link "Home", MoveTopCommand
1033
- link "Ctrl+A", MoveHomeCommand
1034
- link "Ctrl+E", MoveEndCommand
1035
- link "End", MoveBottomCommand
1036
-
1037
- link "Cmd+[", DecreaseIndentCommand
1038
- link "Cmd+]", IncreaseIndentCommand
1039
- link "Cmd+Shift+I", AutoIndenter::IndentCommand
1040
- link "Cmd+L", GotoLineCommand
1041
- link "Cmd+A", SelectAllCommand
1042
- link "Ctrl+W", SelectWordCommand
1043
- link "Ctrl+L", SelectLineCommand
1044
- link "Cmd+B", ToggleBlockSelectionCommand
1045
- link "Escape", AutoCompleter::AutoCompleteCommand
1046
- link "Ctrl+Escape", AutoCompleter::MenuAutoCompleterCommand
1047
- link "Ctrl+Space", AutoCompleter::AutoCompleteCommand
1031
+ link "Cmd+Z", UndoCommand
1032
+ link "Cmd+Shift+Z", RedoCommand
1033
+ link "Cmd+X", CutCommand
1034
+ link "Cmd+C", CopyCommand
1035
+ link "Cmd+V", PasteCommand
1036
+ link "Cmd+D", DuplicateCommand
1037
+
1038
+ link "Home", MoveTopCommand
1039
+ link "Ctrl+A", MoveHomeCommand
1040
+ link "Ctrl+E", MoveEndCommand
1041
+ link "End", MoveBottomCommand
1042
+
1043
+ link "Cmd+[", DecreaseIndentCommand
1044
+ link "Cmd+]", IncreaseIndentCommand
1045
+ link "Cmd+Shift+I", AutoIndenter::IndentCommand
1046
+ link "Cmd+L", GotoLineCommand
1047
+ link "Cmd+A", SelectAllCommand
1048
+ link "Ctrl+W", SelectWordCommand
1049
+ link "Ctrl+L", SelectLineCommand
1050
+ link "Cmd+B", ToggleBlockSelectionCommand
1051
+ link "Escape", AutoCompleter::AutoCompleteCommand
1052
+ link "Ctrl+Escape", AutoCompleter::MenuAutoCompleterCommand
1053
+ link "Ctrl+Space", AutoCompleter::AutoCompleteCommand
1048
1054
  link "Ctrl+Shift+Space", AutoCompleter::MenuAutoCompleterCommand
1049
1055
 
1050
1056
  link "Ctrl+U", EditView::UpcaseTextCommand
@@ -1055,7 +1061,6 @@ Redcar.environment: #{Redcar.environment}
1055
1061
  link "Ctrl+=", EditView::AlignAssignmentCommand
1056
1062
  link "Ctrl+Shift+^", SortLinesCommand
1057
1063
 
1058
- link "Cmd+Shift+F", Redcar::FindInProject::OpenSearch
1059
1064
  link "Cmd+T", Project::FindFileCommand
1060
1065
  link "Cmd+Shift+Alt+O", MoveTabToOtherNotebookCommand
1061
1066
  link "Cmd+Alt+O", SwitchNotebookCommand
@@ -1078,8 +1083,8 @@ Redcar.environment: #{Redcar.environment}
1078
1083
  link "Cmd++", IncreaseFontSize
1079
1084
  link "Cmd+-", DecreaseFontSize
1080
1085
 
1081
- link "Ctrl+Shift+P", PrintScopeCommand
1082
- link "Cmd+Shift+H", ToggleTreesCommand
1086
+ link "Ctrl+Shift+P", PrintScopeCommand
1087
+ link "Cmd+Shift+H", ToggleTreesCommand
1083
1088
 
1084
1089
  # link "Cmd+Shift+R", PluginManagerUi::ReloadLastReloadedCommand
1085
1090
 
@@ -1099,6 +1104,7 @@ Redcar.environment: #{Redcar.environment}
1099
1104
  link "Ctrl+Alt+N", NewWindowCommand
1100
1105
  link "Ctrl+O", Project::FileOpenCommand
1101
1106
  link "Ctrl+Shift+O", Project::DirectoryOpenCommand
1107
+ link "Ctrl+Alt+Shift+P", Project::FindRecentCommand
1102
1108
  #link "Alt+Shift+O", Project::OpenRemoteCommand
1103
1109
  link "Ctrl+S", Project::FileSaveCommand
1104
1110
  link "Ctrl+Shift+S", Project::FileSaveAsCommand
@@ -1117,61 +1123,61 @@ Redcar.environment: #{Redcar.environment}
1117
1123
  link "Ctrl+V", PasteCommand
1118
1124
  link "Ctrl+D", DuplicateCommand
1119
1125
 
1120
- link "Ctrl+Home", MoveTopCommand
1121
- link "Home", MoveHomeCommand
1122
- link "Ctrl+Alt+A", MoveHomeCommand
1123
- link "End", MoveEndCommand
1124
- link "Ctrl+Alt+E", MoveEndCommand
1125
- link "Ctrl+End", MoveBottomCommand
1126
-
1127
- link "Ctrl+[", DecreaseIndentCommand
1128
- link "Ctrl+]", IncreaseIndentCommand
1129
- link "Ctrl+Shift+[", AutoIndenter::IndentCommand
1130
- link "Ctrl+L", GotoLineCommand
1131
- link "Ctrl+A", SelectAllCommand
1132
- link "Ctrl+Alt+W", SelectWordCommand
1133
- link "Ctrl+Alt+L", SelectLineCommand
1134
- link "Ctrl+B", ToggleBlockSelectionCommand
1135
- link "Escape", AutoCompleter::AutoCompleteCommand
1136
- link "Ctrl+Escape", AutoCompleter::MenuAutoCompleterCommand
1137
- link "Ctrl+Space", AutoCompleter::AutoCompleteCommand
1126
+ link "Ctrl+Home", MoveTopCommand
1127
+ link "Home", MoveHomeCommand
1128
+ link "Ctrl+Alt+A", MoveHomeCommand
1129
+ link "End", MoveEndCommand
1130
+ link "Ctrl+Alt+E", MoveEndCommand
1131
+ link "Ctrl+End", MoveBottomCommand
1132
+
1133
+ link "Ctrl+[", DecreaseIndentCommand
1134
+ link "Ctrl+]", IncreaseIndentCommand
1135
+ link "Ctrl+Shift+[", AutoIndenter::IndentCommand
1136
+ link "Ctrl+L", GotoLineCommand
1137
+ link "Ctrl+A", SelectAllCommand
1138
+ link "Ctrl+Alt+W", SelectWordCommand
1139
+ link "Ctrl+Alt+L", SelectLineCommand
1140
+ link "Ctrl+B", ToggleBlockSelectionCommand
1141
+ link "Escape", AutoCompleter::AutoCompleteCommand
1142
+ link "Ctrl+Escape", AutoCompleter::MenuAutoCompleterCommand
1143
+ link "Ctrl+Space", AutoCompleter::AutoCompleteCommand
1144
+
1138
1145
  link "Ctrl+Shift+Space", AutoCompleter::MenuAutoCompleterCommand
1139
1146
 
1140
- link "Ctrl+U", EditView::UpcaseTextCommand
1141
- link "Ctrl+Shift+U", EditView::DowncaseTextCommand
1142
- link "Ctrl+Alt+U", EditView::TitlizeTextCommand
1143
- link "Ctrl+Alt+Shift+U", EditView::OppositeCaseTextCommand
1144
- link "Ctrl+_", EditView::CamelSnakePascalRotateTextCommand
1145
- link "Ctrl+=", EditView::AlignAssignmentCommand
1146
- link "Ctrl+Shift+^", SortLinesCommand
1147
+ link "Ctrl+U", EditView::UpcaseTextCommand
1148
+ link "Ctrl+Shift+U", EditView::DowncaseTextCommand
1149
+ link "Ctrl+Alt+U", EditView::TitlizeTextCommand
1150
+ link "Ctrl+Alt+Shift+U", EditView::OppositeCaseTextCommand
1151
+ link "Ctrl+_", EditView::CamelSnakePascalRotateTextCommand
1152
+ link "Ctrl+=", EditView::AlignAssignmentCommand
1153
+ link "Ctrl+Shift+^", SortLinesCommand
1147
1154
 
1148
- link "Ctrl+Shift+F", Redcar::FindInProject::OpenSearch
1149
1155
  link "Ctrl+T", Project::FindFileCommand
1150
1156
  link "Ctrl+Shift+Alt+O", MoveTabToOtherNotebookCommand
1151
1157
 
1152
- link "Ctrl+Shift+P", PrintScopeCommand
1158
+ link "Ctrl+Shift+P", PrintScopeCommand
1153
1159
 
1154
- link "Ctrl+Alt+O", SwitchNotebookCommand
1155
- link "Ctrl+Shift+H", ToggleTreesCommand
1156
- link "Alt+Page Up", SwitchTreeUpCommand
1157
- link "Alt+Page Down", SwitchTreeDownCommand
1160
+ link "Ctrl+Alt+O", SwitchNotebookCommand
1161
+ link "Ctrl+Shift+H", ToggleTreesCommand
1162
+ link "Alt+Page Up", SwitchTreeUpCommand
1163
+ link "Alt+Page Down", SwitchTreeDownCommand
1158
1164
  link "Ctrl+Page Up", SwitchTabDownCommand
1159
1165
  link "Ctrl+Page Down", SwitchTabUpCommand
1160
1166
  link "Ctrl+Shift+Page Up", MoveTabDownCommand
1161
1167
  link "Ctrl+Shift+Page Down", MoveTabUpCommand
1162
1168
  link "Ctrl+Shift+T", OpenTreeFinderCommand
1163
- link "Alt+Shift+J", IncreaseTreebookWidthCommand
1164
- link "Alt+Shift+H", DecreaseTreebookWidthCommand
1165
- link "Ctrl+Shift+>", EnlargeFirstNotebookCommand
1166
- link "Ctrl+Shift+<", EnlargeSecondNotebookCommand
1167
- link "Ctrl+Shift+L", ResetNotebookWidthsCommand
1168
- link "Ctrl+Shift+:", RotateNotebooksCommand
1169
- link "Alt+Shift+N", CloseNotebookCommand
1169
+ link "Alt+Shift+J", IncreaseTreebookWidthCommand
1170
+ link "Alt+Shift+H", DecreaseTreebookWidthCommand
1171
+ link "Ctrl+Shift+>", EnlargeFirstNotebookCommand
1172
+ link "Ctrl+Shift+<", EnlargeSecondNotebookCommand
1173
+ link "Ctrl+Shift+L", ResetNotebookWidthsCommand
1174
+ link "Ctrl+Shift+:", RotateNotebooksCommand
1175
+ link "Alt+Shift+N", CloseNotebookCommand
1170
1176
  # link "Ctrl+Shift+R", PluginManagerUi::ReloadLastReloadedCommand
1171
- link "F11", ToggleFullscreen
1172
- link "Ctrl+Alt+I", ToggleInvisibles
1173
- link "Ctrl++", IncreaseFontSize
1174
- link "Ctrl+-", DecreaseFontSize
1177
+ link "F11", ToggleFullscreen
1178
+ link "Ctrl+Alt+I", ToggleInvisibles
1179
+ link "Ctrl++", IncreaseFontSize
1180
+ link "Ctrl+-", DecreaseFontSize
1175
1181
 
1176
1182
  link "Ctrl+Alt+S", Snippets::OpenSnippetExplorer
1177
1183