( text: string, offset: number, objectType: string, isInner: boolean, )
| 36 | * Find a text object at the given position. |
| 37 | */ |
| 38 | export function findTextObject( |
| 39 | text: string, |
| 40 | offset: number, |
| 41 | objectType: string, |
| 42 | isInner: boolean, |
| 43 | ): TextObjectRange { |
| 44 | if (objectType === 'w') |
| 45 | return findWordObject(text, offset, isInner, isVimWordChar) |
| 46 | if (objectType === 'W') |
| 47 | return findWordObject(text, offset, isInner, ch => !isVimWhitespace(ch)) |
| 48 | |
| 49 | const pair = PAIRS[objectType] |
| 50 | if (pair) { |
| 51 | const [open, close] = pair |
| 52 | return open === close |
| 53 | ? findQuoteObject(text, offset, open, isInner) |
| 54 | : findBracketObject(text, offset, open, close, isInner) |
| 55 | } |
| 56 | |
| 57 | return null |
| 58 | } |
| 59 | |
| 60 | function findWordObject( |
| 61 | text: string, |
no test coverage detected