@@ -256,9 +256,10 @@ function wordSelectionStart(text: string, i: number): number {
256
256
return index
257
257
}
258
258
259
- function wordSelectionEnd ( text : string , i : number ) : number {
259
+ function wordSelectionEnd ( text : string , i : number , multiline : boolean ) : number {
260
260
let index = i
261
- while ( text [ index ] && ! text [ index ] . match ( / \s / ) ) {
261
+ const breakPoint = multiline ? / \n / : / \s /
262
+ while ( text [ index ] && ! text [ index ] . match ( breakPoint ) ) {
262
263
index ++
263
264
}
264
265
return index
@@ -322,10 +323,15 @@ function styleSelectedText(textarea: HTMLTextAreaElement, styleArgs: StyleArgs)
322
323
insertText ( textarea , result )
323
324
}
324
325
325
- function expandSelectedText ( textarea : HTMLTextAreaElement , prefixToUse : string , suffixToUse : string ) : string {
326
+ function expandSelectedText (
327
+ textarea : HTMLTextAreaElement ,
328
+ prefixToUse : string ,
329
+ suffixToUse : string ,
330
+ multiline : boolean = false
331
+ ) : string {
326
332
if ( textarea . selectionStart === textarea . selectionEnd ) {
327
333
textarea . selectionStart = wordSelectionStart ( textarea . value , textarea . selectionStart )
328
- textarea . selectionEnd = wordSelectionEnd ( textarea . value , textarea . selectionEnd )
334
+ textarea . selectionEnd = wordSelectionEnd ( textarea . value , textarea . selectionEnd , multiline )
329
335
} else {
330
336
const expandedSelectionStart = textarea . selectionStart - prefixToUse . length
331
337
const expandedSelectionEnd = textarea . selectionEnd + suffixToUse . length
@@ -399,7 +405,7 @@ function blockStyle(textarea: HTMLTextAreaElement, arg: StyleArgs): SelectionRan
399
405
prefixToUse = ` ${ prefixToUse } `
400
406
}
401
407
}
402
- selectedText = expandSelectedText ( textarea , prefixToUse , suffixToUse )
408
+ selectedText = expandSelectedText ( textarea , prefixToUse , suffixToUse , arg . multiline )
403
409
let selectionStart = textarea . selectionStart
404
410
let selectionEnd = textarea . selectionEnd
405
411
const hasReplaceNext = replaceNext . length > 0 && suffixToUse . indexOf ( replaceNext ) > - 1 && selectedText . length > 0
0 commit comments