]>
Commit | Line | Data |
---|---|---|
0d23b6e5 BB |
1 | # Copyright 2010 Wincent Colaiuta. All rights reserved. |
2 | # | |
3 | # Redistribution and use in source and binary forms, with or without | |
4 | # modification, are permitted provided that the following conditions are met: | |
5 | # | |
6 | # 1. Redistributions of source code must retain the above copyright notice, | |
7 | # this list of conditions and the following disclaimer. | |
8 | # 2. Redistributions in binary form must reproduce the above copyright notice, | |
9 | # this list of conditions and the following disclaimer in the documentation | |
10 | # and/or other materials provided with the distribution. | |
11 | # | |
12 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" | |
13 | # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
14 | # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
15 | # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE | |
16 | # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
17 | # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
18 | # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
19 | # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
20 | # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
21 | # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
22 | # POSSIBILITY OF SUCH DAMAGE. | |
23 | ||
24 | module CommandT | |
25 | # Convenience class for saving and restoring global settings. | |
26 | class Settings | |
27 | def initialize | |
28 | save | |
29 | end | |
30 | ||
31 | def save | |
32 | @timeoutlen = get_number 'timeoutlen' | |
33 | @report = get_number 'report' | |
34 | @sidescroll = get_number 'sidescroll' | |
35 | @sidescrolloff = get_number 'sidescrolloff' | |
36 | @timeout = get_bool 'timeout' | |
37 | @equalalways = get_bool 'equalalways' | |
38 | @hlsearch = get_bool 'hlsearch' | |
39 | @insertmode = get_bool 'insertmode' | |
40 | @showcmd = get_bool 'showcmd' | |
41 | end | |
42 | ||
43 | def restore | |
44 | set_number 'timeoutlen', @timeoutlen | |
45 | set_number 'report', @report | |
46 | set_number 'sidescroll', @sidescroll | |
47 | set_number 'sidescrolloff', @sidescrolloff | |
48 | set_bool 'timeout', @timeout | |
49 | set_bool 'equalalways', @equalalways | |
50 | set_bool 'hlsearch', @hlsearch | |
51 | set_bool 'insertmode', @insertmode | |
52 | set_bool 'showcmd', @showcmd | |
53 | end | |
54 | ||
55 | private | |
56 | ||
57 | def get_number setting | |
58 | ::VIM::evaluate("&#{setting}").to_i | |
59 | end | |
60 | ||
61 | def get_bool setting | |
62 | ::VIM::evaluate("&#{setting}").to_i == 1 | |
63 | end | |
64 | ||
65 | def set_number setting, value | |
66 | ::VIM::set_option "#{setting}=#{value}" | |
67 | end | |
68 | ||
69 | def set_bool setting, value | |
70 | if value | |
71 | ::VIM::set_option setting | |
72 | else | |
73 | ::VIM::set_option "no#{setting}" | |
74 | end | |
75 | end | |
76 | end # class Settings | |
77 | end # module CommandT |