diff --git a/src/lib/textarea/main.ts b/src/lib/textarea/main.ts new file mode 100644 index 0000000..629a65a --- /dev/null +++ b/src/lib/textarea/main.ts @@ -0,0 +1,33 @@ +export const insertText = (textarea, text) => { + const start = textarea.selectionStart; + const end = textarea.selectionStart + text.length; + textarea.setRangeText(text, start, end, "end"); +}; + +export const insertExpandedPhrase = (textarea, expander, len, text) => { + const start = textarea.selectionStart - len; + const end = textarea.selectionStart; + textarea.setRangeText(text.concat(expander), start, end, "end"); +}; + +const findIndexOfCurrentWord = (textarea) => { + const currentValue = textarea.value; + const cursorPos = textarea.selectionStart; + + let startIndex = cursorPos - 1; + while ( + startIndex >= 0 && + /\p{Letter}|\p{Number}/u.test(currentValue[startIndex]) + ) { + console.log(currentValue[startIndex]); + startIndex--; + } + return startIndex; +}; + +export const getCurrentWord = (textarea) => { + const currentValue = textarea.value; + const cursorPos = textarea.selectionStart; + const startIndex = findIndexOfCurrentWord(textarea); + return currentValue.substring(startIndex + 1, cursorPos); +}; diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index cc88df0..8c1ae10 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,2 +1,7 @@ -
Visit svelte.dev/docs/kit to read the documentation
+ + +