]> git.mdlowis.com Git - archive/tide-ocaml.git/commitdiff
Switched scrollmap over to using the cursor
authorMichael D. Lowis <mike.lowis@gentex.com>
Tue, 7 Nov 2017 13:42:35 +0000 (08:42 -0500)
committerMichael D. Lowis <mike.lowis@gentex.com>
Tue, 7 Nov 2017 13:42:35 +0000 (08:42 -0500)
docs/Buf.Cursor.html
docs/Scrollmap.html
docs/X11.html
docs/index.html
docs/index_modules.html
docs/index_values.html
docs/type_Buf.Cursor.html
lib/buf.ml
lib/buf.mli
lib/scrollmap.ml

index eba0995b570dcb894bc322794d52b6958732cb66..e9499e01cc572e36d0be0afbe8af5932d7822528 100644 (file)
 
 
 <pre><span id="VALmake"><span class="keyword">val</span> make</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> int -> <a href="Buf.Cursor.html#TYPEcsr">csr</a></code></pre>
+<pre><span id="VALoffset"><span class="keyword">val</span> offset</span> : <code class="type">'a -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre>
 <pre><span id="VALgoto"><span class="keyword">val</span> goto</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int -> unit</code></pre>
 <pre><span id="VALgetc"><span class="keyword">val</span> getc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> <a href="Rope.html#TYPErune">Rope.rune</a></code></pre>
-<pre><span id="VALnextc"><span class="keyword">val</span> nextc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> unit</code></pre>
-<pre><span id="VALprevc"><span class="keyword">val</span> prevc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> unit</code></pre>
-<pre><span id="VALnextln"><span class="keyword">val</span> nextln</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> unit</code></pre>
-<pre><span id="VALprevln"><span class="keyword">val</span> prevln</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> unit</code></pre></body></html>
\ No newline at end of file
+<pre><span id="VALnextc"><span class="keyword">val</span> nextc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre>
+<pre><span id="VALprevc"><span class="keyword">val</span> prevc</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre>
+<pre><span id="VALnextln"><span class="keyword">val</span> nextln</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre>
+<pre><span id="VALprevln"><span class="keyword">val</span> prevln</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> <a href="Buf.Cursor.html#TYPEcsr">csr</a> -> int</code></pre></body></html>
\ No newline at end of file
index 0af79ac50bceb82bd289c87bed257cba114694af..ce83037c13949aaabfb398dddaac09131357abdb 100644 (file)
@@ -56,8 +56,8 @@
 <pre><span id="VALfind_line"><span class="keyword">val</span> find_line</span> : <code class="type">'a array -> 'a -> int -> int</code></pre>
 <pre><span id="VALmake"><span class="keyword">val</span> make</span> : <code class="type"><a href="Buf.html#TYPEt">Buf.t</a> -> int -> int -> <a href="Scrollmap.html#TYPEt">t</a></code></pre>
 <pre><span id="VALfirst"><span class="keyword">val</span> first</span> : <code class="type"><a href="Scrollmap.html#TYPEt">t</a> -> int</code></pre>
-<pre><span id="VALbopl"><span class="keyword">val</span> bopl</span> : <code class="type"><a href="Buf.html#TYPEt">Buf.t</a> -> int -> int</code></pre>
-<pre><span id="VALbonl"><span class="keyword">val</span> bonl</span> : <code class="type"><a href="Buf.html#TYPEt">Buf.t</a> -> int -> int</code></pre>
+<pre><span id="VALbopl"><span class="keyword">val</span> bopl</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> int -> int</code></pre>
+<pre><span id="VALbonl"><span class="keyword">val</span> bonl</span> : <code class="type"><a href="Buf.html#TYPEbuf">Buf.buf</a> -> int -> int</code></pre>
 <pre><span id="VALscroll_up"><span class="keyword">val</span> scroll_up</span> : <code class="type"><a href="Scrollmap.html#TYPEt">t</a> -> <a href="Buf.html#TYPEt">Buf.t</a> -> <a href="Scrollmap.html#TYPEt">t</a></code></pre>
 <pre><span id="VALscroll_dn"><span class="keyword">val</span> scroll_dn</span> : <code class="type"><a href="Scrollmap.html#TYPEt">t</a> -> <a href="Buf.html#TYPEt">Buf.t</a> -> <a href="Scrollmap.html#TYPEt">t</a></code></pre>
 <pre><span id="VALresize"><span class="keyword">val</span> resize</span> : <code class="type"><a href="Scrollmap.html#TYPEt">t</a> -> <a href="Buf.html#TYPEt">Buf.t</a> -> int -> <a href="Scrollmap.html#TYPEt">t</a></code></pre></body></html>
\ No newline at end of file
index 130a69df46834ae45d5922b7b3a54dd4d4ebd710..41d086d71a7b23bf368705c94146253ceec4491b 100644 (file)
@@ -27,9 +27,7 @@
 </div>
 <h1>Module <a href="type_X11.html">X11</a></h1>
 
-<pre><span class="keyword">module</span> X11: <code class="code">sig</code> <a href="X11.html">..</a> <code class="code">end</code></pre><div class="info module top">
-</div>
-<hr width="100%">
+<pre><span class="keyword">module</span> X11: <code class="code">sig</code> <a href="X11.html">..</a> <code class="code">end</code></pre><hr width="100%">
 
 <pre><span id="TYPExatom"><span class="keyword">type</span> <code class="type"></code>xatom</span> </pre>
 
 <pre><span id="VALfont_load"><span class="keyword">val</span> font_load</span> : <code class="type">string -> <a href="X11.html#TYPEfont">font</a></code></pre>
 <pre><span id="VALfont_glyph"><span class="keyword">val</span> font_glyph</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
 <pre><span id="VALdraw_glyph"><span class="keyword">val</span> draw_glyph</span> : <code class="type">int -> <a href="X11.html#TYPEglyph">glyph</a> -> int * int -> int</code></pre>
-<pre><span id="VALglyph_cache"><span class="keyword">val</span> glyph_cache</span> : <code class="type">(int, <a href="X11.html#TYPEglyph">glyph</a>) Hashtbl.t</code></pre><div class="info ">
-</div>
-
+<pre><span id="VALglyph_cache"><span class="keyword">val</span> glyph_cache</span> : <code class="type">(int, <a href="X11.html#TYPEglyph">glyph</a>) Hashtbl.t</code></pre>
 <pre><span id="VALcache_update"><span class="keyword">val</span> cache_update</span> : <code class="type">int -> <a href="X11.html#TYPEglyph">glyph</a> -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
 <pre><span id="VALget_glyph"><span class="keyword">val</span> get_glyph</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> <a href="X11.html#TYPEglyph">glyph</a></code></pre>
 <pre><span id="VALdraw_rune"><span class="keyword">val</span> draw_rune</span> : <code class="type"><a href="X11.html#TYPEfont">font</a> -> int -> int -> int * int -> int</code></pre>
index 316de90cb081a73cc34d2babd6b1317dda1dd2b1..995df80330c7cfc01488d80241804a372d88b044 100644 (file)
@@ -28,9 +28,7 @@
 <br/><br>
 <table class="indextable">
 <tr><td class="module"><a href="Misc.html">Misc</a></td><td></td></tr>
-<tr><td class="module"><a href="X11.html">X11</a></td><td><div class="info">
-</div>
-</td></tr>
+<tr><td class="module"><a href="X11.html">X11</a></td><td></td></tr>
 <tr><td class="module"><a href="Cfg.html">Cfg</a></td><td></td></tr>
 <tr><td class="module"><a href="Rope.html">Rope</a></td><td></td></tr>
 <tr><td class="module"><a href="Buf.html">Buf</a></td><td></td></tr>
index 1cb5199f77f3b1901ff299feac53b8467638940d..f7ab3ae95def26c04a63427cdc6cc0e6e90e0a1b 100644 (file)
@@ -54,9 +54,7 @@
 <td></td></tr>
 <tr><td align="left"><br>X</td></tr>
 <tr><td><a href="X11.html">X11</a> </td>
-<td><div class="info">
-</div>
-</td></tr>
+<td></td></tr>
 </table>
 </body>
 </html>
\ No newline at end of file
index 527dc7e6ce6943ee867d07cb8e94e53d9911591b..481f44dd2a66862c10a0f50300172a691c49dc9a 100644 (file)
 <tr><td><a href="Rope.html#VALgets">gets</a> [<a href="Rope.html">Rope</a>]</td>
 <td></td></tr>
 <tr><td><a href="X11.html#VALglyph_cache">glyph_cache</a> [<a href="X11.html">X11</a>]</td>
-<td><div class="info">
-</div>
-</td></tr>
+<td></td></tr>
 <tr><td><a href="Draw.html#VALglyph_width">glyph_width</a> [<a href="Draw.html">Draw</a>]</td>
 <td></td></tr>
 <tr><td><a href="Buf.Cursor.html#VALgoto">goto</a> [<a href="Buf.Cursor.html">Buf.Cursor</a>]</td>
 <tr><td><a href="Cfg.Color.Syntax.html#VALnumber">number</a> [<a href="Cfg.Color.Syntax.html">Cfg.Color.Syntax</a>]</td>
 <td></td></tr>
 <tr><td align="left"><br>O</td></tr>
+<tr><td><a href="Buf.Cursor.html#VALoffset">offset</a> [<a href="Buf.Cursor.html">Buf.Cursor</a>]</td>
+<td></td></tr>
 <tr><td><a href="Cfg.Color.Syntax.html#VALoperator">operator</a> [<a href="Cfg.Color.Syntax.html">Cfg.Color.Syntax</a>]</td>
 <td></td></tr>
 <tr><td align="left"><br>P</td></tr>
index 0c8a7e4c1a2b303a437a419bcc0e7f51f916a546..bf0d4676b62a974207873ca887c3afb6047c007f 100644 (file)
 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;csr&nbsp;=&nbsp;{&nbsp;<span class="keyword">mutable</span>&nbsp;start&nbsp;:&nbsp;int;&nbsp;<span class="keyword">mutable</span>&nbsp;stop&nbsp;:&nbsp;int;&nbsp;}<br>
 &nbsp;&nbsp;<span class="keyword">type</span>&nbsp;t&nbsp;=&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr<br>
 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;make&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr<br>
+&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;offset&nbsp;:&nbsp;<span class="keywordsign">'</span>a&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;goto&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
 &nbsp;&nbsp;<span class="keyword">val</span>&nbsp;getc&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Rope</span>.rune<br>
-&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;nextc&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
-&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;prevc&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
-&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;nextln&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
-&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;prevln&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;unit<br>
+&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;nextc&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
+&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;prevc&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
+&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;nextln&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
+&nbsp;&nbsp;<span class="keyword">val</span>&nbsp;prevln&nbsp;:&nbsp;<span class="constructor">Buf</span>.buf&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;<span class="constructor">Buf</span>.<span class="constructor">Cursor</span>.csr&nbsp;<span class="keywordsign">-&gt;</span>&nbsp;int<br>
 <span class="keyword">end</span></code></body></html>
\ No newline at end of file
index fc71ccd8e2567e158293edfd86a51f0aad216a23..2dd9911fc44dccbc7fe7c674966337cfa4374073 100644 (file)
@@ -31,6 +31,9 @@ module Cursor = struct
   let make buf idx =
     { start = 0; stop = (Rope.limit_index buf.rope idx) }
 
+  let offset buf csr =
+    csr.stop
+
   let goto buf csr idx =
     csr.stop <- (Rope.limit_index buf.rope idx)
 
@@ -38,15 +41,15 @@ module Cursor = struct
     Rope.getc buf.rope csr.stop
 
   let nextc buf csr =
-    csr.stop <- (Rope.nextc buf.rope csr.stop)
+    csr.stop <- (Rope.nextc buf.rope csr.stop); csr.stop
 
   let prevc buf csr =
-    csr.stop <- (Rope.prevc buf.rope csr.stop)
+    csr.stop <- (Rope.prevc buf.rope csr.stop); csr.stop
 
   let nextln buf csr =
-    csr.stop <- (Rope.nextln buf.rope csr.stop)
+    csr.stop <- (Rope.nextln buf.rope csr.stop); csr.stop
 
   let prevln buf csr =
-    csr.stop <- (Rope.prevln buf.rope csr.stop)
+    csr.stop <- (Rope.prevln buf.rope csr.stop); csr.stop
 end
 
index 0aa7f06baca4fc6712f44715a385ef20ad1a5dfa..b565d38c77c36c5588f050d2ab092be7b4d3b57f 100644 (file)
@@ -16,8 +16,8 @@ module Cursor : sig
   val gets : buf -> t -> string
   val puts : buf -> t -> string -> unit
   *)
-  val nextc : buf -> t -> unit
-  val prevc : buf -> t -> unit
-  val nextln : buf -> t -> unit
-  val prevln : buf -> t -> unit
+  val nextc : buf -> t -> int
+  val prevc : buf -> t -> int
+  val nextln : buf -> t -> int
+  val prevln : buf -> t -> int
 end
index 7f8682d077876838ca56437664a37d293002ea7b..52ec4ef6af9baa97711f2b5de0dabc461c3a8cd7 100644 (file)
@@ -28,9 +28,11 @@ let make buf width off =
 let first map =
   map.lines.(map.index)
 
-let bopl buf off = (Rope.prevln (Buf.rope buf) off)
+let bopl buf off =
+  Buf.Cursor.prevln buf (Buf.Cursor.make buf off)
 
-let bonl buf off = (Rope.nextln (Buf.rope buf) off)
+let bonl buf off =
+  Buf.Cursor.nextln buf (Buf.Cursor.make buf off)
 
 let scroll_up map buf =
   let next = map.index - 1 in