Merge branch 's17n'

This commit is contained in:
David A. Mellis 2012-08-23 10:54:59 -04:00
commit 127cbf5da5
3 changed files with 51 additions and 25 deletions

3
.gitignore vendored
View File

@ -14,4 +14,5 @@ hardware/arduino/bootloaders/caterina_LUFA/Caterina.elf
hardware/arduino/bootloaders/caterina_LUFA/Caterina.eep
hardware/arduino/bootloaders/caterina_LUFA/.dep/
.gitignore
build/windows/work/
build/windows/work/
build/linux/work/

View File

@ -1073,9 +1073,10 @@ public class Editor extends JFrame implements RunnerListener {
item = newJMenuItemShift(_("Find in Reference"), 'F');
item.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (textarea.isSelectionActive()) {
handleFindReference();
}
// if (textarea.isSelectionActive()) {
// handleFindReference();
// }
handleFindReference();
}
});
menu.add(item);
@ -1809,24 +1810,51 @@ public class Editor extends JFrame implements RunnerListener {
}
protected void handleFindReference() {
String text = textarea.getSelectedText().trim();
if (text.length() == 0) {
statusNotice(_("First select a word to find in the reference."));
} else {
String referenceFile = PdeKeywords.getReference(text);
//System.out.println("reference file is " + referenceFile);
if (referenceFile == null) {
statusNotice(
I18n.format(_("No reference available for \"{0}\""), text)
);
} else {
Base.showReference(I18n.format(_("{0}.html"), referenceFile));
}
}
}
protected void handleFindReference() {
String text = "";
if( textarea.getSelectedText() != null )
text = textarea.getSelectedText().trim();
try {
int current = textarea.getCaretPosition();
int startOffset = 0;
int endIndex = current;
String tmp = textarea.getDocument().getText(current,1);
// TODO probably a regexp that matches Arduino lang special chars already exists.
String regexp = "[\\s\\n();\\\\.!='\\[\\]{}]";
while(!tmp.matches(regexp)) {
endIndex++;
tmp = textarea.getDocument().getText(endIndex,1);
}
// For some reason document index start at 2.
//if( current - start < 2 ) return;
tmp = "";
while(!tmp.matches(regexp)) {
startOffset++;
if( current - startOffset < 0) {
tmp = textarea.getDocument().getText(0, 1);
break;
}
else
tmp = textarea.getDocument().getText(current - startOffset, 1);
}
startOffset--;
int length = endIndex - current + startOffset;
text = textarea.getDocument().getText(current - startOffset, length);
} catch (BadLocationException bl ) {
bl.printStackTrace();
}
String referenceFile = PdeKeywords.getReference(text);
if (referenceFile == null) {
statusNotice(I18n.format(_("No reference available for \"{0}\""), text));
} else {
Base.showReference(I18n.format(_("{0}.html"), referenceFile));
}
}
// . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

View File

@ -178,9 +178,6 @@
#: Editor.java:1255
!Use\ Selection\ For\ Find=
#: Editor.java:1816
!First\ select\ a\ word\ to\ find\ in\ the\ reference.=
#: Editor.java:1823
#, java-format
!No\ reference\ available\ for\ "{0}"=