aboutsummaryrefslogtreecommitdiff
path: root/vim/tmp/command_t/ruby/command-t/settings.rb
diff options
context:
space:
mode:
authorBen Beltran <ben@freshout.us>2012-10-08 11:44:10 -0500
committerBen Beltran <ben@freshout.us>2012-10-08 11:44:10 -0500
commit0d23b6e515a01a5782532351821ebfa11f3d6cf2 (patch)
treeaa395b7e50ccb533d6b48b809016ac06f2d5bc8c /vim/tmp/command_t/ruby/command-t/settings.rb
parenta91731eac872b7837c2821341db5888702125cef (diff)
Add vim again :)
Diffstat (limited to 'vim/tmp/command_t/ruby/command-t/settings.rb')
-rw-r--r--vim/tmp/command_t/ruby/command-t/settings.rb77
1 files changed, 77 insertions, 0 deletions
diff --git a/vim/tmp/command_t/ruby/command-t/settings.rb b/vim/tmp/command_t/ruby/command-t/settings.rb
new file mode 100644
index 0000000..c15016a
--- /dev/null
+++ b/vim/tmp/command_t/ruby/command-t/settings.rb
@@ -0,0 +1,77 @@
+# Copyright 2010 Wincent Colaiuta. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+# 1. Redistributions of source code must retain the above copyright notice,
+# this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright notice,
+# this list of conditions and the following disclaimer in the documentation
+# and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+
+module CommandT
+ # Convenience class for saving and restoring global settings.
+ class Settings
+ def initialize
+ save
+ end
+
+ def save
+ @timeoutlen = get_number 'timeoutlen'
+ @report = get_number 'report'
+ @sidescroll = get_number 'sidescroll'
+ @sidescrolloff = get_number 'sidescrolloff'
+ @timeout = get_bool 'timeout'
+ @equalalways = get_bool 'equalalways'
+ @hlsearch = get_bool 'hlsearch'
+ @insertmode = get_bool 'insertmode'
+ @showcmd = get_bool 'showcmd'
+ end
+
+ def restore
+ set_number 'timeoutlen', @timeoutlen
+ set_number 'report', @report
+ set_number 'sidescroll', @sidescroll
+ set_number 'sidescrolloff', @sidescrolloff
+ set_bool 'timeout', @timeout
+ set_bool 'equalalways', @equalalways
+ set_bool 'hlsearch', @hlsearch
+ set_bool 'insertmode', @insertmode
+ set_bool 'showcmd', @showcmd
+ end
+
+ private
+
+ def get_number setting
+ ::VIM::evaluate("&#{setting}").to_i
+ end
+
+ def get_bool setting
+ ::VIM::evaluate("&#{setting}").to_i == 1
+ end
+
+ def set_number setting, value
+ ::VIM::set_option "#{setting}=#{value}"
+ end
+
+ def set_bool setting, value
+ if value
+ ::VIM::set_option setting
+ else
+ ::VIM::set_option "no#{setting}"
+ end
+ end
+ end # class Settings
+end # module CommandT