EditorView.editable.of(false) disables focus and cursor, whereas
EditorState.readOnly.of(true) keeps focus and cursor enabled, so that in this second case typing advances the cursor but does not alter document content.
I found that, if I type past the final char in a document having
EditorState.readOnly.of(true), this (1) triggers the error
RangeError: Selection points outside of document (stack trace below) and (2) whatever was typed is actually added to the document.
Is being able to type past document length in read-only mode a bug?
If not a bug, how can I preempt the error and the addition? I have tried filtering out with
EditorState.transactionFilter.of() but in both cases, the error above is triggered before these hooks get a chance to be called.
For more context, my only registered extension is
EditorState.readOnly.of(true). Searching the forum, the only seemingly relevant thread is this, but they were not triggering the error by using
Stack trace for reference
RangeError: Selection points outside of document checkSelection index.js:1541 Transaction index.js:2240 create index.js:2248 resolveTransaction index.js:2421 update index.js:2593 dispatch index.js:6277 applyDOMChange index.js:5654 flush index.js:6056 observer index.js:5765 DOMObserver index.js:5748 EditorView index.js:6217 mounted ExpressionModalOutput.vue:54 VueJS 17 reload plugin-vue2:hmr-runtime:187 reload plugin-vue2:hmr-runtime:185 tryWrap plugin-vue2:hmr-runtime:60 <anonymous> ExpressionModalOutput.vue:96 accept client.ts:424 fetchUpdate client.ts:340 queueUpdate client.ts:195 queueUpdate client.ts:195 handleMessage client.ts:74 handleMessage client.ts:72 <anonymous> client.ts:45 EventListener.handleEvent* client.ts:44 main.ts:59:10
Thank you very much for your time.