From 7b1ba83561459e6e145482b4a4187413561be1d5 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Tue, 16 Nov 2021 23:12:18 -0700 Subject: [PATCH] ktxt2 scrolling between unconverted blocks --- .../kiss-vscode/src/ktxt2/KTxt2Editor.kiss | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss b/projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss index e5b10f97..8047c942 100644 --- a/projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss +++ b/projects/kiss-vscode/src/ktxt2/KTxt2Editor.kiss @@ -6,7 +6,7 @@ // Because monaco editors are expensive, the editor can't have an infinite number open at a time (var PAGE_SIZE 24) -(var SCROLL_AMOUNT 18) +(var SCROLL_AMOUNT 22) (var &mut elementScrollY 0) (function :EditorState getState [] @@ -291,6 +291,7 @@ xLink (document.createElement "a") lockLink (document.createElement "a") fullConvLink (document.createElement "a") + nextBlankLink (document.createElement "a") blockLinkBefore (document.createElement "a") blockLinkAfter (document.createElement "a") joinBlocksLink (document.createElement "a")] @@ -339,7 +340,10 @@ (lockLink.addEventListener "click" ->(changeLockStatus (nth ktxt2Elements idx) !locked)) (outerDiv.appendChild lockLink) - (set fullConvLink.innerHTML "convertAll") + (set nextBlankLink.innerHTML "NextBlank") + (nextBlankLink.addEventListener "click" nextBlankOutput) + (outerDiv.appendChild nextBlankLink) + (set fullConvLink.innerHTML "ConvertAll") (fullConvLink.addEventListener "click" tryFullAutoConvert) (outerDiv.appendChild fullConvLink) (content.appendChild outerDiv) @@ -416,6 +420,16 @@ (changeElementScrollY ->(+= elementScrollY SCROLL_AMOUNT)) (scrollToPageTop)) +(function nextBlankOutput [] + (doFor idx (range (+ 1 elementScrollY) ktxt2Elements.length) + (case (nth ktxt2Elements idx) + // TODO add unless guards to case + ((when !(output.trim) (Block (objectWith output))) + (changeElementScrollY ->(set elementScrollY idx)) + (scrollToPageTop) + (break)) + (otherwise)))) + (function pageBottom [] (changeElementScrollY ->(set elementScrollY (- ktxt2Elements.length PAGE_SIZE))) (scrollToPageBottom))