# -*- coding: utf-8 -*-

# If the cursor in the compose window body is on a word
# that is listed in this table as a key (element before the colon),
# this word is replaced with the value (element after the colon).
# To add key/value pairs, just add more lines.
replacement_table = {
    "dsm"   : "Dear Sir/Madam,\n",
    "th"    : "Thanks,\nHolger",
    "blake" : "And did those feet in ancient time\nWalk upon England's mountains green?\nAnd was the holy Lamb of God\nOn England's pleasant pastures seen?",
}

# helper function to get the current word under the cursor
def get_current_word(buffer):
    start = buffer.get_iter_at_mark(buffer.get_insert())
    end = buffer.get_iter_at_mark(buffer.get_insert())
    if not start.starts_word():
        start.backward_word_start()
    if not end.ends_word():
        end.forward_word_end()
    return (start.get_text(end), start, end)


buffer = clawsmail.compose_window.text.get_buffer()         # get text buffer of body editor
(current_word, start, end) = get_current_word(buffer)       # get current word under the cursor
if current_word in replacement_table:                       # if current word is a key in the replacement table...
    buffer.delete(start, end)                               # delete the current word
    buffer.insert(start, replacement_table[current_word])   # and insert the replacement in its place
