* Puts given content in the currently selected register, using the current RegisterMode. * * @param copyToUnnamed: If true, set the unnamed register (") as well
(
vimState: VimState,
content: RegisterContent,
multicursorIndex?: number,
copyToUnnamed?: boolean,
)
| 52 | * @param copyToUnnamed: If true, set the unnamed register (") as well |
| 53 | */ |
| 54 | public static put( |
| 55 | vimState: VimState, |
| 56 | content: RegisterContent, |
| 57 | multicursorIndex?: number, |
| 58 | copyToUnnamed?: boolean, |
| 59 | ): void { |
| 60 | const register = vimState.recordedState.registerName; |
| 61 | |
| 62 | if (!Register.isValidRegister(register)) { |
| 63 | throw new Error(`Invalid register ${register}`); |
| 64 | } |
| 65 | |
| 66 | if (Register.isBlackHoleRegister(register) || Register.isReadOnlyRegister(register)) { |
| 67 | return; |
| 68 | } |
| 69 | |
| 70 | if (Register.isValidUppercaseRegister(register)) { |
| 71 | Register.appendToRegister(vimState, register.toLowerCase(), content, multicursorIndex ?? 0); |
| 72 | } else { |
| 73 | Register.overwriteRegister(vimState, register, content, multicursorIndex ?? 0); |
| 74 | } |
| 75 | |
| 76 | if (copyToUnnamed && register !== '"') { |
| 77 | Register.registers.set('"', Register.registers.get(register)!); |
| 78 | } |
| 79 | } |
| 80 | |
| 81 | public static isValidRegister(register: string): boolean { |
| 82 | return ( |
no test coverage detected