diff --git a/Server/MarkdownPreviewer/server.py b/Server/MarkdownPreviewer/server.py index 21603be..2fbd571 100644 --- a/Server/MarkdownPreviewer/server.py +++ b/Server/MarkdownPreviewer/server.py @@ -316,6 +316,11 @@ class PushPull(WebSocketHandler): for socket in websockets: socket.write_message({"course" : content}) + @classmethod + def update_scroll(cls, content): + for socket in websockets: + socket.write_message({"scroll" : content[0]/float(content[1])}) + def open(self): if self not in websockets: websockets.append(self) @@ -392,5 +397,6 @@ async def main(base_path): Publisher.subscribe("PushPull", "title", PushPull.update_title) Publisher.subscribe("PushPull", "course", PushPull.update_course) Publisher.subscribe("PushPull", "date", PushPull.update_date) + Publisher.subscribe("PushPull", "scroll", PushPull.update_scroll) application.listen(8888) await asyncio.Event().wait() diff --git a/lua/MarkdownPreviewer/init.lua b/lua/MarkdownPreviewer/init.lua index 949f55c..861d2dd 100644 --- a/lua/MarkdownPreviewer/init.lua +++ b/lua/MarkdownPreviewer/init.lua @@ -43,7 +43,7 @@ function module.open() group = augroup, buffer = bufnr, callback = function() - server_connection:scroll(vim.fn.line('.')) + server_connection:scroll({vim.fn.line('.'), vim.fn.line('$')}) end, }) diff --git a/template/index.html b/template/index.html index 30de370..2bd6169 100644 --- a/template/index.html +++ b/template/index.html @@ -77,6 +77,13 @@ Object.entries(data).forEach(([k,v]) => { console.log(k,v); switch (k) { + case "scroll": + var height = window.innerHeight + || document.documentElement.clientHeight + || document.body.clientHeight; + + window.scrollTo({left : 0, top: height * v, behavior: 'smooth'}); + break; case "show": change_body(v) break;