redcar-javamateview 0.2

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/LICENSE +34 -0
  2. data/README +58 -0
  3. data/Rakefile +94 -0
  4. data/lib/javamateview.rb +41 -0
  5. data/lib/javamateview/example.rb +334 -0
  6. data/lib/javamateview/jar/java-mateview.jar +0 -0
  7. data/lib/javamateview/jcodings.jar +0 -0
  8. data/lib/javamateview/jdom.jar +0 -0
  9. data/lib/javamateview/joni.jar +0 -0
  10. data/spec/onig/match_spec.rb +50 -0
  11. data/spec/parsing/dynamic_parsing_spec.rb +172 -0
  12. data/spec/parsing/static_parsing_spec.rb +476 -0
  13. data/spec/spec_helper.rb +33 -0
  14. data/src/com/redcareditor/mate/Bundle.java +81 -0
  15. data/src/com/redcareditor/mate/DoublePattern.java +89 -0
  16. data/src/com/redcareditor/mate/Grammar.java +129 -0
  17. data/src/com/redcareditor/mate/IAnnotationAreaListener.java +7 -0
  18. data/src/com/redcareditor/mate/IGrammarListener.java +5 -0
  19. data/src/com/redcareditor/mate/IncludePattern.java +10 -0
  20. data/src/com/redcareditor/mate/LineNumberRulerColumn.java +922 -0
  21. data/src/com/redcareditor/mate/Marker.java +22 -0
  22. data/src/com/redcareditor/mate/MateText.java +697 -0
  23. data/src/com/redcareditor/mate/ParseThunk.java +71 -0
  24. data/src/com/redcareditor/mate/Parser.java +627 -0
  25. data/src/com/redcareditor/mate/ParserScheduler.java +237 -0
  26. data/src/com/redcareditor/mate/Pattern.java +152 -0
  27. data/src/com/redcareditor/mate/RangeSet.java +91 -0
  28. data/src/com/redcareditor/mate/Scanner.java +178 -0
  29. data/src/com/redcareditor/mate/Scope.java +534 -0
  30. data/src/com/redcareditor/mate/ScopeMatcher.java +162 -0
  31. data/src/com/redcareditor/mate/SharedTextColors.java +110 -0
  32. data/src/com/redcareditor/mate/SinglePattern.java +20 -0
  33. data/src/com/redcareditor/mate/WhitespaceCharacterPainter.java +395 -0
  34. data/src/com/redcareditor/mate/colouring/Colourer.java +16 -0
  35. data/src/com/redcareditor/mate/colouring/swt/MarginPaintListener.java +62 -0
  36. data/src/com/redcareditor/mate/colouring/swt/SwtColourer.java +501 -0
  37. data/src/com/redcareditor/mate/document/MateDocument.java +15 -0
  38. data/src/com/redcareditor/mate/document/MateTextFactory.java +9 -0
  39. data/src/com/redcareditor/mate/document/MateTextLocation.java +8 -0
  40. data/src/com/redcareditor/mate/document/MateTextLocationComparator.java +17 -0
  41. data/src/com/redcareditor/mate/document/MateTextRange.java +18 -0
  42. data/src/com/redcareditor/mate/document/swt/SwtMateDocument.java +143 -0
  43. data/src/com/redcareditor/mate/document/swt/SwtMateTextLocation.java +88 -0
  44. data/src/com/redcareditor/mate/document/swt/SwtMateTextRange.java +92 -0
  45. data/src/com/redcareditor/mate/document/swt/SwtScopePositionUpdater.java +90 -0
  46. data/src/com/redcareditor/mate/undo/MateTextUndoManager.java +11 -0
  47. data/src/com/redcareditor/mate/undo/swt/SwtMateTextUndoManager.java +166 -0
  48. data/src/com/redcareditor/onig/Match.java +212 -0
  49. data/src/com/redcareditor/onig/NullMatch.java +57 -0
  50. data/src/com/redcareditor/onig/NullRx.java +29 -0
  51. data/src/com/redcareditor/onig/Range.java +45 -0
  52. data/src/com/redcareditor/onig/Rx.java +167 -0
  53. data/src/com/redcareditor/plist/Dict.java +119 -0
  54. data/src/com/redcareditor/plist/PlistNode.java +52 -0
  55. data/src/com/redcareditor/plist/PlistPropertyLoader.java +44 -0
  56. data/src/com/redcareditor/theme/ScopeSelector.java +39 -0
  57. data/src/com/redcareditor/theme/Theme.java +122 -0
  58. data/src/com/redcareditor/theme/ThemeManager.java +41 -0
  59. data/src/com/redcareditor/theme/ThemeSetting.java +78 -0
  60. data/src/com/redcareditor/util/FileUtility.java +64 -0
  61. data/src/com/redcareditor/util/SingleLineFormatter.java +11 -0
  62. data/src/com/redcareditor/util/swt/ColourUtil.java +56 -0
  63. data/src/ruby/java-mateview.rb +68 -0
  64. data/test/com/redcareditor/mate/BundleTest.java +33 -0
  65. data/test/com/redcareditor/mate/EmptyRangeSetTest.java +27 -0
  66. data/test/com/redcareditor/mate/FilledRangeSetTest.java +82 -0
  67. data/test/com/redcareditor/mate/GrammarTest.java +158 -0
  68. data/test/com/redcareditor/mate/MateTextTest.java +35 -0
  69. data/test/com/redcareditor/mate/ScopeMatcherMatchingTest.java +55 -0
  70. data/test/com/redcareditor/mate/ScopeMatcherRankingTest.java +40 -0
  71. data/test/com/redcareditor/onig/RxTest.java +54 -0
  72. data/test/com/redcareditor/plist/DictTest.java +33 -0
  73. data/test/com/redcareditor/theme/RailsCastThemeTest.java +37 -0
  74. data/test/com/redcareditor/theme/ScopeSelectorTest.java +38 -0
  75. data/test/com/redcareditor/theme/ThemeManagerTest.java +29 -0
  76. data/test/com/redcareditor/util/swt/ColourUtilTest.java +17 -0
  77. metadata +134 -0
@@ -0,0 +1,33 @@
1
+ package com.redcareditor.plist;
2
+
3
+ import static org.junit.Assert.assertArrayEquals;
4
+ import static org.junit.Assert.assertEquals;
5
+ import static org.junit.Assert.assertNotNull;
6
+
7
+ import org.junit.Before;
8
+ import org.junit.Test;
9
+
10
+ public class DictTest {
11
+ private Dict dict;
12
+
13
+ @Before
14
+ public void setup() {
15
+ dict = Dict.parseFile("input/Bundles/Ruby.tmbundle/Syntaxes/Ruby.plist");
16
+ assertNotNull(dict);
17
+ }
18
+
19
+ @Test
20
+ public void testSimpleStringItem() {
21
+ String firstLine = dict.getString("firstLineMatch");
22
+ assertEquals("^#!/.*\\bruby\\b", firstLine);
23
+ }
24
+
25
+ @Test
26
+ public void testFileTypes() {
27
+ String[] check = { "rb", "rbx", "rjs", "Rakefile", "rake", "cgi",
28
+ "fcgi", "gemspec", "irbrc", "capfile" };
29
+ String[] types = dict.getStrings("fileTypes");
30
+
31
+ assertArrayEquals(check, types);
32
+ }
33
+ }
@@ -0,0 +1,37 @@
1
+ package com.redcareditor.theme;
2
+
3
+ import org.junit.Before;
4
+ import org.junit.Test;
5
+ import static org.junit.Assert.*;
6
+
7
+ import com.redcareditor.plist.Dict;
8
+
9
+
10
+ public class RailsCastThemeTest {
11
+ private Theme theme;
12
+
13
+ @Before
14
+ public void setup(){
15
+ Dict themeDict = Dict.parseFile("input/Themes/Railscasts.tmTheme");
16
+ theme = new Theme(themeDict);
17
+ }
18
+
19
+ @Test
20
+ public void testGlobalSettings(){
21
+ String background = theme.globalSettings.get("background");
22
+ assertEquals("#2B2B2B", background);
23
+
24
+ String invisibles = theme.globalSettings.get("invisibles");
25
+ assertEquals("#404040", invisibles);
26
+ }
27
+
28
+ @Test
29
+ public void testSingleScopeSetting(){
30
+
31
+ }
32
+
33
+ @Test
34
+ public void testMultipleScopeSetting(){
35
+
36
+ }
37
+ }
@@ -0,0 +1,38 @@
1
+ package com.redcareditor.theme;
2
+
3
+ import java.util.List;
4
+
5
+ import org.junit.Test;
6
+ import static org.junit.Assert.*;
7
+
8
+ public class ScopeSelectorTest {
9
+ @Test
10
+ public void testSinglePositiveSelector(){
11
+ String selector = "entity.name.function";
12
+ List<ScopeSelector> selectors = ScopeSelector.compile(selector);
13
+ assertEquals(1, selectors.size());
14
+
15
+ ScopeSelector s = selectors.get(0);
16
+ assertEquals("(entity\\.name\\.function)", s.positiveRegex.pattern);
17
+ }
18
+
19
+ @Test
20
+ public void testMultiplePositiveSelectors(){
21
+ String selector = "meta.tag, declaration.tag, entity.name.tag, entity.other.attribute-name";
22
+ List<ScopeSelector> selectors = ScopeSelector.compile(selector);
23
+ assertEquals(4, selectors.size());
24
+
25
+ ScopeSelector s1 = selectors.get(0);
26
+ assertEquals("(meta\\.tag)", s1.positiveRegex.pattern);
27
+
28
+ ScopeSelector s3 = selectors.get(2);
29
+ assertEquals("(entity\\.name\\.tag)", s3.positiveRegex.pattern);
30
+ }
31
+
32
+ @Test
33
+ public void testPositiveAndNegativeSelector(){
34
+ String selector = "source.ruby string - string source";
35
+ List<ScopeSelector> selectors = ScopeSelector.compile(selector);
36
+ // TODO: test something here!
37
+ }
38
+ }
@@ -0,0 +1,29 @@
1
+ package com.redcareditor.theme;
2
+
3
+ import org.junit.Test;
4
+
5
+ import static org.junit.Assert.*;
6
+ import com.redcareditor.theme.ThemeManager;
7
+
8
+ public class ThemeManagerTest {
9
+ @Test
10
+ public void shouldLoadThemes() {
11
+ ThemeManager.loadThemes("input/");
12
+ assertEquals(3, ThemeManager.themes.size());
13
+ }
14
+
15
+ @Test
16
+ public void shouldContainTwoRightThemes() {
17
+ String [] expectedThemeNames = {"Mac Classic", "Railscasts", "Twilight"};
18
+ for(String theme : expectedThemeNames){
19
+ boolean found = false;
20
+ for(Theme t : ThemeManager.themes){
21
+ if(t.name.equals(theme)){
22
+ found = true;
23
+ break;
24
+ }
25
+ }
26
+ assertTrue(String.format("Could not find theme '%s', which sould be loaded by now", theme), found);
27
+ }
28
+ }
29
+ }
@@ -0,0 +1,17 @@
1
+ package com.redcareditor.util.swt;
2
+
3
+ import static org.junit.Assert.*;
4
+
5
+ import org.junit.Test;
6
+
7
+ /**
8
+ * User: Mat Schaffer <mat.schaffer@gmail.com>
9
+ * Date: Sep 6, 2009
10
+ * Time: 1:08:54 PM
11
+ */
12
+ public class ColourUtilTest {
13
+ @Test
14
+ public void shouldMergeColoursAccordingToTransparencyRules() {
15
+ assertEquals("#080808", ColourUtil.mergeColour("#000000", "#FFFFFF08"));
16
+ }
17
+ }
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: redcar-javamateview
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.2'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Daniel Lucraft
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-10 00:00:00.000000000 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: swt
17
+ requirement: &70125445745040 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *70125445745040
26
+ description: ''
27
+ email:
28
+ - dan@fluentradical.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - lib/javamateview/example.rb
34
+ - lib/javamateview/jar/java-mateview.jar
35
+ - lib/javamateview/jcodings.jar
36
+ - lib/javamateview/jdom.jar
37
+ - lib/javamateview/joni.jar
38
+ - LICENSE
39
+ - README
40
+ - Rakefile
41
+ - lib/javamateview.rb
42
+ - test/com/redcareditor/mate/BundleTest.java
43
+ - test/com/redcareditor/mate/EmptyRangeSetTest.java
44
+ - test/com/redcareditor/mate/FilledRangeSetTest.java
45
+ - test/com/redcareditor/mate/GrammarTest.java
46
+ - test/com/redcareditor/mate/MateTextTest.java
47
+ - test/com/redcareditor/mate/ScopeMatcherMatchingTest.java
48
+ - test/com/redcareditor/mate/ScopeMatcherRankingTest.java
49
+ - test/com/redcareditor/onig/RxTest.java
50
+ - test/com/redcareditor/plist/DictTest.java
51
+ - test/com/redcareditor/theme/RailsCastThemeTest.java
52
+ - test/com/redcareditor/theme/ScopeSelectorTest.java
53
+ - test/com/redcareditor/theme/ThemeManagerTest.java
54
+ - test/com/redcareditor/util/swt/ColourUtilTest.java
55
+ - spec/onig/match_spec.rb
56
+ - spec/parsing/dynamic_parsing_spec.rb
57
+ - spec/parsing/static_parsing_spec.rb
58
+ - spec/spec_helper.rb
59
+ - src/com/redcareditor/mate/Bundle.java
60
+ - src/com/redcareditor/mate/colouring/Colourer.java
61
+ - src/com/redcareditor/mate/colouring/swt/MarginPaintListener.java
62
+ - src/com/redcareditor/mate/colouring/swt/SwtColourer.java
63
+ - src/com/redcareditor/mate/document/MateDocument.java
64
+ - src/com/redcareditor/mate/document/MateTextFactory.java
65
+ - src/com/redcareditor/mate/document/MateTextLocation.java
66
+ - src/com/redcareditor/mate/document/MateTextLocationComparator.java
67
+ - src/com/redcareditor/mate/document/MateTextRange.java
68
+ - src/com/redcareditor/mate/document/swt/SwtMateDocument.java
69
+ - src/com/redcareditor/mate/document/swt/SwtMateTextLocation.java
70
+ - src/com/redcareditor/mate/document/swt/SwtMateTextRange.java
71
+ - src/com/redcareditor/mate/document/swt/SwtScopePositionUpdater.java
72
+ - src/com/redcareditor/mate/DoublePattern.java
73
+ - src/com/redcareditor/mate/Grammar.java
74
+ - src/com/redcareditor/mate/IAnnotationAreaListener.java
75
+ - src/com/redcareditor/mate/IGrammarListener.java
76
+ - src/com/redcareditor/mate/IncludePattern.java
77
+ - src/com/redcareditor/mate/LineNumberRulerColumn.java
78
+ - src/com/redcareditor/mate/Marker.java
79
+ - src/com/redcareditor/mate/MateText.java
80
+ - src/com/redcareditor/mate/Parser.java
81
+ - src/com/redcareditor/mate/ParserScheduler.java
82
+ - src/com/redcareditor/mate/ParseThunk.java
83
+ - src/com/redcareditor/mate/Pattern.java
84
+ - src/com/redcareditor/mate/RangeSet.java
85
+ - src/com/redcareditor/mate/Scanner.java
86
+ - src/com/redcareditor/mate/Scope.java
87
+ - src/com/redcareditor/mate/ScopeMatcher.java
88
+ - src/com/redcareditor/mate/SharedTextColors.java
89
+ - src/com/redcareditor/mate/SinglePattern.java
90
+ - src/com/redcareditor/mate/undo/MateTextUndoManager.java
91
+ - src/com/redcareditor/mate/undo/swt/SwtMateTextUndoManager.java
92
+ - src/com/redcareditor/mate/WhitespaceCharacterPainter.java
93
+ - src/com/redcareditor/onig/Match.java
94
+ - src/com/redcareditor/onig/NullMatch.java
95
+ - src/com/redcareditor/onig/NullRx.java
96
+ - src/com/redcareditor/onig/Range.java
97
+ - src/com/redcareditor/onig/Rx.java
98
+ - src/com/redcareditor/plist/Dict.java
99
+ - src/com/redcareditor/plist/PlistNode.java
100
+ - src/com/redcareditor/plist/PlistPropertyLoader.java
101
+ - src/com/redcareditor/theme/ScopeSelector.java
102
+ - src/com/redcareditor/theme/Theme.java
103
+ - src/com/redcareditor/theme/ThemeManager.java
104
+ - src/com/redcareditor/theme/ThemeSetting.java
105
+ - src/com/redcareditor/util/FileUtility.java
106
+ - src/com/redcareditor/util/SingleLineFormatter.java
107
+ - src/com/redcareditor/util/swt/ColourUtil.java
108
+ - src/ruby/java-mateview.rb
109
+ has_rdoc: true
110
+ homepage: http://github.com/danlucraft/redcar-javamateview
111
+ licenses: []
112
+ post_install_message:
113
+ rdoc_options: []
114
+ require_paths:
115
+ - lib
116
+ required_ruby_version: !ruby/object:Gem::Requirement
117
+ none: false
118
+ requirements:
119
+ - - ! '>='
120
+ - !ruby/object:Gem::Version
121
+ version: '0'
122
+ required_rubygems_version: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ requirements: []
129
+ rubyforge_project:
130
+ rubygems_version: 1.6.2
131
+ signing_key:
132
+ specification_version: 3
133
+ summary: A source editing widget for SWT that understands Textmate syntaxes and themes
134
+ test_files: []