-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtextHelperContentProvider.js
97 lines (82 loc) · 3.45 KB
/
textHelperContentProvider.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/*******************************************************************************
* Rails Content Assist Plugin for Eclipse Orion
* Author: Maciej Bendkowski <[email protected]>
*******************************************************************************/
/**
* Content assist for Ruby on Rails.
* TextHelper content provider.
*/
var TextHelperContentProvider = (function() {
function TextHelperContentProvider() {}
TextHelperContentProvider.prototype = {
computeProposals: function(buffer, offset, context) {
var keywords = [];
var prefix = context.prefix;
/* excerpt helper */
if("excerpt".indexOf(prefix) === 0){
var proposal = "excerpt(text, phrase, *args)";
proposal = proposal.substring(prefix.length, proposal.length);
keywords.push({
proposal : proposal,
description : "excerpt - rails text helper",
positions : [{offset: offset + proposal.indexOf("text"), length: "text".length},
{offset: offset + proposal.indexOf("phrase"), length: "phrase".length},
{offset: offset + proposal.indexOf("*args"), length: "*args".length}],
escapePosition : offset + proposal.length
});
}
/* pluralize helper */
if("pluralize".indexOf(prefix) === 0){
var proposal = "pluralize(count, singular, plural = nil)";
proposal = proposal.substring(prefix.length, proposal.length);
keywords.push({
proposal : proposal,
description : "pluralize - rails text helper",
positions : [{offset: offset + proposal.indexOf("count"), length: "count".length},
{offset: offset + proposal.indexOf("singular"), length: "singular".length},
{offset: offset + proposal.indexOf("plural = nil"), length: "plural = nil".length}],
escapePosition : offset + proposal.length
});
}
/* truncate helper */
if("truncate".indexOf(prefix) === 0){
var proposal = "truncate(text, options = {})";
proposal = proposal.substring(prefix.length, proposal.length);
keywords.push({
proposal : proposal,
description : "truncate - rails text helper",
positions : [{offset: offset + proposal.indexOf("text"), length: "text".length},
{offset: offset + proposal.indexOf("options = {}"), length: "options = {}".length}],
escapePosition : offset + proposal.length
});
}
/* word_wrap helper */
if("word_wrap".indexOf(prefix) === 0){
var proposal = "word_wrap(text, *args)";
proposal = proposal.substring(prefix.length, proposal.length);
keywords.push({
proposal : proposal,
description : "word_wrap - rails text helper",
positions : [{offset: offset + proposal.indexOf("text"), length: "text".length},
{offset: offset + proposal.indexOf("*args"), length: "*args".length}],
escapePosition : offset + proposal.length
});
}
/* highlight helper */
if("highlight".indexOf(prefix) === 0){
var proposal = "highlight(text, phrases, *args)";
proposal = proposal.substring(prefix.length, proposal.length);
keywords.push({
proposal : proposal,
description : "highlight - rails text helper",
positions : [{offset: offset + proposal.indexOf("text"), length: "text".length},
{offset: offset + proposal.indexOf("phrases"), length: "phrases".length},
{offset: offset + proposal.indexOf("*args"), length: "*args".length}],
escapePosition : offset + proposal.length
});
}
return keywords;
}
};
return TextHelperContentProvider;
}());