Improve setting height of editor Side affect is if you have the developer console open the editor will be much smaller. But this is worth the trade off. Screenshot: https://imgur.com/a/OIwISAp Change-Id: I07d923ee5038db7e0b03dddb7ccd74b019c3bf64
diff --git a/gr-editor/codemirror-element.js b/gr-editor/codemirror-element.js index 94ee213..d75db0f 100644 --- a/gr-editor/codemirror-element.js +++ b/gr-editor/codemirror-element.js
@@ -63,9 +63,18 @@ // eslint-disable-next-line new-cap this._nativeMirror = window.CodeMirror(this.$.wrapper, this._params); setTimeout(() => { + const offsetTop = + this._nativeMirror.display.wrapper.getBoundingClientRect().top; + const clientHeight = + window.innerHeight || document.clientHeight || document.getElementByTagName('body').clientHeight; + // We are setting a fixed height, because for large files we want to + // benefit from CodeMirror's virtual scrolling. + // 80px is roughly the size of the bottom margins plus the footer height. + // This ensures the height of the textarea doesn't push out of screen. + const height = clientHeight - offsetTop - 80; this._nativeMirror.refresh(); this._nativeMirror.focus(); - this._nativeMirror.setSize(null, window.screen.height); + this._nativeMirror.setSize(null, height < 600 ? 600 : height); if (this.lineNum) { // We have to take away one from the line number, // ... because CodeMirror's line count is zero-based.