File: Emacs_Capitalize_Word.bsh

package info (click to toggle)
jedit 5.3.0%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 14,252 kB
  • ctags: 11,190
  • sloc: java: 98,480; xml: 94,070; makefile: 52; sh: 42; cpp: 6; python: 6
file content (37 lines) | stat: -rw-r--r-- 1,018 bytes parent folder | download | duplicates (5)
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
/**
 * Convert the portion of the current word to title case, starting at the
 * caret and moving to the end of the word. Emulates the Emacs "capitalize-word"
 * function.
 */

source (MiscUtilities.constructPath(dirname(scriptPath), "EmacsUtil.bsh"));

void emacsCapitalizeWord()
{
    caret = eatNonAlphanums();

    // Adjust to beginning of the word (skipping any non-word chars)

    textArea.goToNextWord (false);
    endOfWord = textArea.getCaretPosition();

    textArea.setCaretPosition (caret);
    selection = new Selection.Range (caret, endOfWord);

    word = textArea.getText (caret, endOfWord - caret);
    if (word.length() > 0)
    {
        ch = word.toCharArray();
        ch[0] = Character.toUpperCase (ch[0]);
        
        for (i = 1; i < ch.length; i++)
            ch[i] = Character.toLowerCase (ch[i]);
        
        textArea.setSelection (selection);
        textArea.setSelectedText (new String (ch));
        textArea.removeFromSelection (selection);
    }
}

emacsCapitalizeWord();