]> git.gir.st - VimFx.git/blob - docs/vim.html
Merge branch 'hints-and-markers' into develop
[VimFx.git] / docs / vim.html
1 <!DOCTYPE html> <html> <head> <title>vim.coffee</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To &hellip; <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="commands.html"> commands.coffee </a> <a class="source" href="console.html"> console.coffee </a> <a class="source" href="event-handlers.html"> event-handlers.coffee </a> <a class="source" href="hints.html"> hints.coffee </a> <a class="source" href="marker.html"> marker.coffee </a> <a class="source" href="utils.html"> utils.coffee </a> <a class="source" href="vim.html"> vim.coffee </a> <a class="source" href="window-utils.html"> window-utils.coffee </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> vim.coffee </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">&#182;</a> </div> </td> <td class="code"> <div class="highlight"><pre><span class="p">{</span> <span class="nx">getWindowId</span><span class="p">,</span> <span class="nx">Bucket</span> <span class="p">}</span> <span class="o">=</span> <span class="nx">require</span> <span class="s">&#39;utils&#39;</span>
2
3 <span class="p">{</span> <span class="nx">commands</span><span class="p">,</span>
4 <span class="nx">hintCharHandler</span>
5 <span class="p">}</span> <span class="o">=</span> <span class="nx">require</span> <span class="s">&#39;commands&#39;</span>
6
7 <span class="nv">MODE_NORMAL = </span><span class="mi">1</span>
8 <span class="nv">MODE_HINTS = </span><span class="mi">2</span>
9
10 <span class="k">class</span> <span class="nx">Vim</span>
11 <span class="nv">constructor: </span><span class="nf">(@window) -&gt;</span>
12 <span class="vi">@mode = </span><span class="nx">MODE_NORMAL</span>
13 <span class="vi">@keys = </span><span class="p">[]</span>
14 <span class="vi">@markers = </span><span class="kc">undefined</span>
15 <span class="vi">@cb = </span><span class="kc">undefined</span>
16
17 <span class="nv">keypress: </span><span class="nf">(key) -&gt;</span>
18 <span class="nx">@keys</span><span class="p">.</span><span class="nx">push</span> <span class="nx">key</span>
19 <span class="k">if</span> <span class="nv">command = </span><span class="nx">_getCommand</span><span class="p">(</span><span class="nx">@mode</span><span class="p">,</span> <span class="nx">@keys</span><span class="p">)</span>
20 <span class="nx">command</span> <span class="nx">@</span>
21 <span class="vi">@keys = </span><span class="p">[]</span>
22 <span class="k">return</span> <span class="nx">key</span> <span class="o">!=</span> <span class="s">&#39;Esc&#39;</span>
23 <span class="k">else</span> <span class="k">if</span> <span class="nx">_maybeCommand</span><span class="p">(</span><span class="nx">@mode</span><span class="p">,</span> <span class="nx">@keys</span><span class="p">)</span>
24 <span class="k">return</span> <span class="kc">true</span>
25 <span class="k">else</span>
26 <span class="nx">@keys</span><span class="p">.</span><span class="nx">pop</span><span class="p">()</span>
27 <span class="k">return</span> <span class="kc">false</span>
28
29 <span class="nv">enterHintsMode: </span><span class="nf">() -&gt;</span>
30 <span class="vi">@mode = </span><span class="nx">MODE_HINTS</span>
31
32 <span class="nv">enterNormalMode: </span><span class="nf">() -&gt;</span>
33 <span class="vi">@markers = @cb = </span><span class="kc">undefined</span>
34
35 <span class="vi">@mode = </span><span class="nx">MODE_NORMAL</span>
36
37 <span class="nv">_endsWithEsc = </span><span class="nf">(keys) -&gt;</span>
38 <span class="k">return</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">).</span><span class="nx">match</span><span class="p">(</span><span class="sr">/Esc$/</span><span class="p">)</span>
39
40 <span class="nv">_getCommand = </span><span class="nf">(mode, keys) -&gt;</span>
41 <span class="k">if</span> <span class="nx">mode</span> <span class="o">==</span> <span class="nx">MODE_NORMAL</span> <span class="o">or</span> <span class="nx">_endsWithEsc</span><span class="p">(</span><span class="nx">keys</span><span class="p">)</span>
42 <span class="nv">sequence = </span><span class="nx">keys</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
43 <span class="k">if</span> <span class="nv">command = </span><span class="nx">commands</span><span class="p">[</span><span class="nx">sequence</span><span class="p">]</span>
44 <span class="k">return</span> <span class="nx">command</span>
45 <span class="k">else</span> <span class="k">if</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span>
46 <span class="k">return</span> <span class="nx">_getCommand</span> <span class="nx">mode</span><span class="p">,</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
47
48 <span class="k">else</span> <span class="k">if</span> <span class="nx">mode</span> <span class="o">==</span> <span class="nx">MODE_HINTS</span>
49 <span class="k">return</span> <span class="p">(</span><span class="nx">vim</span><span class="p">)</span> <span class="o">=&gt;</span>
50 <span class="nv">char = </span><span class="nx">keys</span><span class="p">[</span><span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">-</span> <span class="mi">1</span><span class="p">].</span><span class="nx">toLowerCase</span><span class="p">()</span>
51 <span class="k">return</span> <span class="nx">hintCharHandler</span><span class="p">(</span><span class="nx">vim</span><span class="p">,</span> <span class="nx">char</span><span class="p">)</span>
52
53 <span class="k">return</span> <span class="kc">undefined</span>
54
55 <span class="nv">_maybeCommand = </span><span class="nf">(mode, keys) -&gt;</span>
56 <span class="k">if</span> <span class="nx">mode</span> <span class="o">==</span> <span class="nx">MODE_NORMAL</span> <span class="o">and</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">length</span> <span class="o">&gt;</span> <span class="mi">0</span>
57 <span class="nv">sequence = </span><span class="nx">keys</span><span class="p">.</span><span class="nx">join</span><span class="p">(</span><span class="s">&#39;,&#39;</span><span class="p">)</span>
58 <span class="k">for</span> <span class="nx">commandSequence</span> <span class="k">in</span> <span class="nb">Object</span><span class="p">.</span><span class="nx">keys</span><span class="p">(</span><span class="nx">commands</span><span class="p">)</span>
59 <span class="k">if</span> <span class="nx">commandSequence</span><span class="p">.</span><span class="nx">search</span><span class="p">(</span><span class="nx">sequence</span><span class="p">)</span> <span class="o">==</span> <span class="mi">0</span>
60 <span class="k">return</span> <span class="kc">true</span>
61
62 <span class="k">return</span> <span class="nx">_maybeCommand</span> <span class="nx">mode</span><span class="p">,</span> <span class="nx">keys</span><span class="p">.</span><span class="nx">slice</span><span class="p">(</span><span class="mi">1</span><span class="p">)</span>
63
64 <span class="k">return</span> <span class="kc">false</span>
65
66 <span class="nv">exports.Vim = </span><span class="nx">Vim</span>
67
68 </pre></div> </td> </tr> </tbody> </table> </div> </body> </html>
Imprint / Impressum