From cd6be5984c6835033335e60c4c95721c817185ef Mon Sep 17 00:00:00 2001 From: Chad Skeeters Date: Wed, 2 Oct 2024 17:25:09 -0500 Subject: [PATCH 1/3] fix: Modifies read to handle large LS messages --- lua/typst-preview/servers/factory.lua | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/lua/typst-preview/servers/factory.lua b/lua/typst-preview/servers/factory.lua index a8ccb06..5f3c6f1 100644 --- a/lua/typst-preview/servers/factory.lua +++ b/lua/typst-preview/servers/factory.lua @@ -161,6 +161,8 @@ end ---@param mode mode ---@param callback fun(server: Server) function M.new(path, mode, callback) + local read_buffer = '' + spawn(path, mode, function(close, write, read, link) ---@type Server local server = { @@ -175,10 +177,15 @@ function M.new(path, mode, callback) read(function(data) vim.defer_fn(function() - while data:len() > 0 do - local s, _ = data:find '\n' - local event = assert(vim.json.decode(data:sub(1, s - 1))) - data = data:sub(s + 1, -1) + read_buffer = read_buffer .. data + local s, _ = read_buffer:find '\n' + while s ~= nil do + local event = assert(vim.json.decode(read_buffer:sub(1, s - 1))) + + -- Make sure we keep the next message in the read buffer + read_buffer = read_buffer:sub(s + 1, -1) + s, _ = read_buffer:find '\n' + local listeners = server.listenerss[event.event] if listeners ~= nil then for _, listener in pairs(listeners) do @@ -186,6 +193,10 @@ function M.new(path, mode, callback) end end end + + if read_buffer ~= '' then + print('Leaving for next read: '..read_buffer) + end end, 0) end) From f4dfd3961e43ecca4d0ffd525dc5054d9435d7d4 Mon Sep 17 00:00:00 2001 From: chomosuke Date: Sat, 12 Oct 2024 10:25:55 +1100 Subject: [PATCH 2/3] switched print statement to utils.debug --- lua/typst-preview/servers/factory.lua | 2 +- test2.typ | 300 ++++++++++++++++++++++++++ 2 files changed, 301 insertions(+), 1 deletion(-) create mode 100644 test2.typ diff --git a/lua/typst-preview/servers/factory.lua b/lua/typst-preview/servers/factory.lua index 5f3c6f1..7ea314c 100644 --- a/lua/typst-preview/servers/factory.lua +++ b/lua/typst-preview/servers/factory.lua @@ -195,7 +195,7 @@ function M.new(path, mode, callback) end if read_buffer ~= '' then - print('Leaving for next read: '..read_buffer) + utils.debug('Leaving for next read: '..read_buffer) end end, 0) end) diff --git a/test2.typ b/test2.typ new file mode 100644 index 0000000..00146f8 --- /dev/null +++ b/test2.typ @@ -0,0 +1,300 @@ += Introduction 1 += Introduction 2 += Introduction 3 += Introduction 4 += Introduction 5 += Introduction 6 += Introduction 7 += Introduction 8 += Introduction 9 += Introduction 10 += Introduction 11 += Introduction 12 += Introduction 13 += Introduction 14 += Introduction 15 += Introduction 16 += Introduction 17 += Introduction 18 += Introduction 19 += Introduction 20 += Introduction 21 += Introduction 22 += Introduction 23 += Introduction 24 += Introduction 25 += Introduction 26 += Introduction 27 += Introduction 28 += Introduction 29 += Introduction 30 += Introduction 31 += Introduction 32 += Introduction 33 += Introduction 34 += Introduction 35 += Introduction 36 += Introduction 37 += Introduction 38 += Introduction 39 += Introduction 40 += Introduction 41 += Introduction 42 += Introduction 43 += Introduction 44 += Introduction 45 += Introduction 46 += Introduction 47 += Introduction 48 += Introduction 49 += Introduction 50 += Introduction 51 += Introduction 52 += Introduction 53 += Introduction 54 += Introduction 55 += Introduction 56 += Introduction 57 += Introduction 58 += Introduction 59 += Introduction 60 += Introduction 61 += Introduction 62 += Introduction 63 += Introduction 64 += Introduction 65 += Introduction 66 += Introduction 67 += Introduction 68 += Introduction 69 += Introduction 70 += Introduction 71 += Introduction 72 += Introduction 73 += Introduction 74 += Introduction 75 += Introduction 76 += Introduction 77 += Introduction 78 += Introduction 79 += Introduction 80 += Introduction 81 += Introduction 82 += Introduction 83 += Introduction 84 += Introduction 855 += Introduction 86 += Introduction 87 += Introduction 88 += Introduction 89 += Introduction 90 += Introduction 91 + += Introduction 93 += Introduction 94 += Introduction 95 += Introduction 96 += Introduction 97 += Introduction 98 += Introduction 99 += Introduction 100 += Introduction 101 += Introduction 102 += Introduction 103 += Introduction 104 += Introduction 105 += Introduction 106 += Introduction 107 += Introduction 108 += Introduction 109 += Introduction 110 += Introduction 111 += Introduction 112 += Introduction 113 += Introduction 114 += Introduction 115 += Introduction 116 += Introduction 117 += Introduction 118 += Introduction 119 += Introduction 120 += Introduction 121 += Introduction 122 += Introduction 123 += Introduction 124 += Introduction 125 += Introduction 126 += Introduction 127 += Introduction 128 += Introduction 129 += Introduction 130 += Introduction 131 += Introduction 132 += Introduction 133 += Introduction 134 += Introduction 135 += Introduction 136 += Introduction 137 += Introduction 138 += Introduction 139 += Introduction 140 += Introduction 141 += Introduction 142 += Introduction 143 += Introduction 144 += Introduction 145 += Introduction 146 += Introduction 147 += Introduction 148 += Introduction 149 += Introduction 150 += Introduction 151 += Introduction 152 += Introduction 153 += Introduction 154 += Introduction 155 += Introduction 156 += Introduction 157 += Introduction 158 += Introduction 159 += Introduction 160 += Introduction 161 += Introduction 162 += Introduction 163 += Introduction 164 += Introduction 165 += Introduction 166 += Introduction 167 += Introduction 168 += Introduction 169 += Introduction 170 += Introduction 171 += Introduction 172 += Introduction 173 += Introduction 174 += Introduction 175 += Introduction 176 += Introduction 177 += Introduction 178 += Introduction 179 += Introduction 180 += Introduction 181 += Introduction 182 += Introduction 183 += Introduction 184 += Introduction 185 += Introduction 186 += Introduction 187 += Introduction 188 += Introduction 189 += Introduction 190 += Introduction 191 += Introduction 191 += Introduction 93 += Introduction 94 += Introduction 95 += Introduction 96 += Introduction 97 += Introduction 98 += Introduction 100 += Introduction 101 += Introduction 102 += Introduction 103 += Introduction 104 += Introduction 105 += Introduction 106 += Introduction 107 += Introduction 108 += Introduction 109 += Introduction 110 += Introduction 111 += Introduction 112 += Introduction 113 += Introduction 114 += Introduction 115 += Introduction 116 += Introduction 117 += Introduction 118 += Introduction 119 += Introduction 120 += Introduction 121 += Introduction 122 += Introduction 123 += Introduction 124 += Introduction 125 += Introduction 126 += Introduction 127 += Introduction 128 += Introduction 129 += Introduction 130 += Introduction 131 += Introduction 132 += Introduction 133 += Introduction 134 += Introduction 135 += Introduction 136 += Introduction 137 += Introduction 138 += Introduction 139 += Introduction 140 += Introduction 141 += Introduction 142 += Introduction 143 += Introduction 144 += Introduction 145 += Introduction 146 += Introduction 147 += Introduction 148 += Introduction 149 += Introduction 150 += Introduction 151 += Introduction 152 += Introduction 153 += Introduction 154 += Introduction 155 += Introduction 156 += Introduction 157 += Introduction 158 += Introduction 159 += Introduction 160 += Introduction 161 += Introduction 162 += Introduction 163 += Introduction 164 += Introduction 165 += Introduction 166 += Introduction 167 += Introduction 168 += Introduction 169 += Introduction 170 += Introduction 171 += Introduction 172 += Introduction 173 += Introduction 174 += Introduction 175 += Introduction 176 += Introduction 177 += Introduction 178 += Introduction 179 += Introduction 180 += Introduction 181 += Introduction 182 += Introduction 183 += Introduction 184 += Introduction 185 += Introduction 186 += Introduction 187 += Introduction 188 += Introduction 189 += Introduction 190 += Introduction 191 += Introduction 192 += Introduction 193 += Introduction 194 += Introduction 195 += Introduction 196 += Introduction 197 += Introduction 198 += Introduction 198 += Introduction 100 += Introduction 100 From 1defbe2bf53bbc852d389bb564710c7e2affc9b7 Mon Sep 17 00:00:00 2001 From: chomosuke Date: Sat, 12 Oct 2024 10:32:17 +1100 Subject: [PATCH 3/3] removed accidentally added test2.typ --- test2.typ | 300 ------------------------------------------------------ 1 file changed, 300 deletions(-) delete mode 100644 test2.typ diff --git a/test2.typ b/test2.typ deleted file mode 100644 index 00146f8..0000000 --- a/test2.typ +++ /dev/null @@ -1,300 +0,0 @@ -= Introduction 1 -= Introduction 2 -= Introduction 3 -= Introduction 4 -= Introduction 5 -= Introduction 6 -= Introduction 7 -= Introduction 8 -= Introduction 9 -= Introduction 10 -= Introduction 11 -= Introduction 12 -= Introduction 13 -= Introduction 14 -= Introduction 15 -= Introduction 16 -= Introduction 17 -= Introduction 18 -= Introduction 19 -= Introduction 20 -= Introduction 21 -= Introduction 22 -= Introduction 23 -= Introduction 24 -= Introduction 25 -= Introduction 26 -= Introduction 27 -= Introduction 28 -= Introduction 29 -= Introduction 30 -= Introduction 31 -= Introduction 32 -= Introduction 33 -= Introduction 34 -= Introduction 35 -= Introduction 36 -= Introduction 37 -= Introduction 38 -= Introduction 39 -= Introduction 40 -= Introduction 41 -= Introduction 42 -= Introduction 43 -= Introduction 44 -= Introduction 45 -= Introduction 46 -= Introduction 47 -= Introduction 48 -= Introduction 49 -= Introduction 50 -= Introduction 51 -= Introduction 52 -= Introduction 53 -= Introduction 54 -= Introduction 55 -= Introduction 56 -= Introduction 57 -= Introduction 58 -= Introduction 59 -= Introduction 60 -= Introduction 61 -= Introduction 62 -= Introduction 63 -= Introduction 64 -= Introduction 65 -= Introduction 66 -= Introduction 67 -= Introduction 68 -= Introduction 69 -= Introduction 70 -= Introduction 71 -= Introduction 72 -= Introduction 73 -= Introduction 74 -= Introduction 75 -= Introduction 76 -= Introduction 77 -= Introduction 78 -= Introduction 79 -= Introduction 80 -= Introduction 81 -= Introduction 82 -= Introduction 83 -= Introduction 84 -= Introduction 855 -= Introduction 86 -= Introduction 87 -= Introduction 88 -= Introduction 89 -= Introduction 90 -= Introduction 91 - -= Introduction 93 -= Introduction 94 -= Introduction 95 -= Introduction 96 -= Introduction 97 -= Introduction 98 -= Introduction 99 -= Introduction 100 -= Introduction 101 -= Introduction 102 -= Introduction 103 -= Introduction 104 -= Introduction 105 -= Introduction 106 -= Introduction 107 -= Introduction 108 -= Introduction 109 -= Introduction 110 -= Introduction 111 -= Introduction 112 -= Introduction 113 -= Introduction 114 -= Introduction 115 -= Introduction 116 -= Introduction 117 -= Introduction 118 -= Introduction 119 -= Introduction 120 -= Introduction 121 -= Introduction 122 -= Introduction 123 -= Introduction 124 -= Introduction 125 -= Introduction 126 -= Introduction 127 -= Introduction 128 -= Introduction 129 -= Introduction 130 -= Introduction 131 -= Introduction 132 -= Introduction 133 -= Introduction 134 -= Introduction 135 -= Introduction 136 -= Introduction 137 -= Introduction 138 -= Introduction 139 -= Introduction 140 -= Introduction 141 -= Introduction 142 -= Introduction 143 -= Introduction 144 -= Introduction 145 -= Introduction 146 -= Introduction 147 -= Introduction 148 -= Introduction 149 -= Introduction 150 -= Introduction 151 -= Introduction 152 -= Introduction 153 -= Introduction 154 -= Introduction 155 -= Introduction 156 -= Introduction 157 -= Introduction 158 -= Introduction 159 -= Introduction 160 -= Introduction 161 -= Introduction 162 -= Introduction 163 -= Introduction 164 -= Introduction 165 -= Introduction 166 -= Introduction 167 -= Introduction 168 -= Introduction 169 -= Introduction 170 -= Introduction 171 -= Introduction 172 -= Introduction 173 -= Introduction 174 -= Introduction 175 -= Introduction 176 -= Introduction 177 -= Introduction 178 -= Introduction 179 -= Introduction 180 -= Introduction 181 -= Introduction 182 -= Introduction 183 -= Introduction 184 -= Introduction 185 -= Introduction 186 -= Introduction 187 -= Introduction 188 -= Introduction 189 -= Introduction 190 -= Introduction 191 -= Introduction 191 -= Introduction 93 -= Introduction 94 -= Introduction 95 -= Introduction 96 -= Introduction 97 -= Introduction 98 -= Introduction 100 -= Introduction 101 -= Introduction 102 -= Introduction 103 -= Introduction 104 -= Introduction 105 -= Introduction 106 -= Introduction 107 -= Introduction 108 -= Introduction 109 -= Introduction 110 -= Introduction 111 -= Introduction 112 -= Introduction 113 -= Introduction 114 -= Introduction 115 -= Introduction 116 -= Introduction 117 -= Introduction 118 -= Introduction 119 -= Introduction 120 -= Introduction 121 -= Introduction 122 -= Introduction 123 -= Introduction 124 -= Introduction 125 -= Introduction 126 -= Introduction 127 -= Introduction 128 -= Introduction 129 -= Introduction 130 -= Introduction 131 -= Introduction 132 -= Introduction 133 -= Introduction 134 -= Introduction 135 -= Introduction 136 -= Introduction 137 -= Introduction 138 -= Introduction 139 -= Introduction 140 -= Introduction 141 -= Introduction 142 -= Introduction 143 -= Introduction 144 -= Introduction 145 -= Introduction 146 -= Introduction 147 -= Introduction 148 -= Introduction 149 -= Introduction 150 -= Introduction 151 -= Introduction 152 -= Introduction 153 -= Introduction 154 -= Introduction 155 -= Introduction 156 -= Introduction 157 -= Introduction 158 -= Introduction 159 -= Introduction 160 -= Introduction 161 -= Introduction 162 -= Introduction 163 -= Introduction 164 -= Introduction 165 -= Introduction 166 -= Introduction 167 -= Introduction 168 -= Introduction 169 -= Introduction 170 -= Introduction 171 -= Introduction 172 -= Introduction 173 -= Introduction 174 -= Introduction 175 -= Introduction 176 -= Introduction 177 -= Introduction 178 -= Introduction 179 -= Introduction 180 -= Introduction 181 -= Introduction 182 -= Introduction 183 -= Introduction 184 -= Introduction 185 -= Introduction 186 -= Introduction 187 -= Introduction 188 -= Introduction 189 -= Introduction 190 -= Introduction 191 -= Introduction 192 -= Introduction 193 -= Introduction 194 -= Introduction 195 -= Introduction 196 -= Introduction 197 -= Introduction 198 -= Introduction 198 -= Introduction 100 -= Introduction 100