summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2014-03-07 17:32:14 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2014-03-07 17:34:11 +0900
commit457a2404571c27c4ad867415f793be1673dc795c (patch)
tree7c310f646e6dfaf313a5dcf8de5187648e16b263
parentbbf4567dd884ec2d7ef22856aa50e337f9cca2cb (diff)
Add option to disable 256-color output (related #18)
-rw-r--r--README.md1
-rwxr-xr-xfzf9
-rw-r--r--test/test_fzf.rb19
3 files changed, 20 insertions, 9 deletions
diff --git a/README.md b/README.md
index a2f3f6c1..8bd1bf50 100644
--- a/README.md
+++ b/README.md
@@ -58,6 +58,7 @@ usage: fzf [options]
-i Case-insensitive match (default: smart-case match)
+i Case-sensitive match
+c, --no-color Disable colors
+ +2, --no-256 Disable 256-color
--no-mouse Disable mouse
Environment variables
diff --git a/fzf b/fzf
index f04900da..cd334021 100755
--- a/fzf
+++ b/fzf
@@ -50,7 +50,7 @@ end
class FZF
C = Curses
- attr_reader :rxflag, :sort, :color, :mouse, :multi, :query, :filter, :extended
+ attr_reader :rxflag, :sort, :color, :ansi256, :mouse, :multi, :query, :filter, :extended
class AtomicVar
def initialize value
@@ -77,6 +77,7 @@ class FZF
@rxflag = nil
@sort = ENV.fetch('FZF_DEFAULT_SORT', 1000).to_i
@color = true
+ @ansi256 = true
@multi = false
@mouse = true
@extended = nil
@@ -101,6 +102,9 @@ class FZF
when '+i' then @rxflag = 0
when '-c', '--color' then @color = true
when '+c', '--no-color' then @color = false
+ when '-2', '--256' then @ansi256 = true
+ when '+2', '--no-256' then @ansi256 = false
+ when '--mouse' then @mouse = true
when '--no-mouse' then @mouse = false
when '+s', '--no-sort' then @sort = nil
when '-q', '--query'
@@ -206,6 +210,7 @@ class FZF
-i Case-insensitive match (default: smart-case match)
+i Case-sensitive match
+c, --no-color Disable colors
+ +2, --no-256 Disable 256-color
--no-mouse Disable mouse
Environment variables
@@ -522,7 +527,7 @@ class FZF
C.noecho
if @color
- if ENV['TERM'].to_s =~ /256/
+ if @ansi256 && ENV['TERM'].to_s =~ /256/
C.init_pair 1, 110, dbg
C.init_pair 2, 108, dbg
C.init_pair 3, 254, 236
diff --git a/test/test_fzf.rb b/test/test_fzf.rb
index ebba5c6f..df825928 100644
--- a/test/test_fzf.rb
+++ b/test/test_fzf.rb
@@ -28,7 +28,7 @@ class TestFZF < MiniTest::Unit::TestCase
fzf = FZF.new []
assert_equal 20000, fzf.sort
- ENV['FZF_DEFAULT_OPTS'] = '-x -m -s 10000 -q " hello world " +c --no-mouse -f "goodbye world"'
+ ENV['FZF_DEFAULT_OPTS'] = '-x -m -s 10000 -q " hello world " +c +2 --no-mouse -f "goodbye world"'
fzf = FZF.new []
assert_equal 10000, fzf.sort
assert_equal ' hello world ',
@@ -38,16 +38,18 @@ class TestFZF < MiniTest::Unit::TestCase
assert_equal :fuzzy, fzf.extended
assert_equal true, fzf.multi
assert_equal false, fzf.color
+ assert_equal false, fzf.ansi256
assert_equal false, fzf.mouse
end
def test_option_parser
# Long opts
fzf = FZF.new %w[--sort=2000 --no-color --multi +i --query hello
- --filter=howdy --extended-exact --no-mouse]
+ --filter=howdy --extended-exact --no-mouse --no-256]
assert_equal 2000, fzf.sort
assert_equal true, fzf.multi
assert_equal false, fzf.color
+ assert_equal false, fzf.ansi256
assert_equal false, fzf.mouse
assert_equal 0, fzf.rxflag
assert_equal 'hello', fzf.query.get
@@ -55,11 +57,12 @@ class TestFZF < MiniTest::Unit::TestCase
assert_equal :exact, fzf.extended
fzf = FZF.new %w[--sort=2000 --no-color --multi +i --query hello
- --filter a --filter b
- --no-sort -i --color --no-multi]
+ --filter a --filter b --no-256
+ --no-sort -i --color --no-multi --256]
assert_equal nil, fzf.sort
assert_equal false, fzf.multi
assert_equal true, fzf.color
+ assert_equal true, fzf.ansi256
assert_equal true, fzf.mouse
assert_equal 1, fzf.rxflag
assert_equal 'b', fzf.filter
@@ -67,21 +70,23 @@ class TestFZF < MiniTest::Unit::TestCase
assert_equal nil, fzf.extended
# Short opts
- fzf = FZF.new %w[-s 2000 +c -m +i -qhello -x -fhowdy]
+ fzf = FZF.new %w[-s 2000 +c -m +i -qhello -x -fhowdy +2]
assert_equal 2000, fzf.sort
assert_equal true, fzf.multi
assert_equal false, fzf.color
+ assert_equal false, fzf.ansi256
assert_equal 0, fzf.rxflag
assert_equal 'hello', fzf.query.get
assert_equal 'howdy', fzf.filter
assert_equal :fuzzy, fzf.extended
# Left-to-right
- fzf = FZF.new %w[-s 2000 +c -m +i -qhello -x -fgoodbye
- -s 3000 -c +m -i -q world +x -fworld]
+ fzf = FZF.new %w[-s 2000 +c -m +i -qhello -x -fgoodbye +2
+ -s 3000 -c +m -i -q world +x -fworld -2]
assert_equal 3000, fzf.sort
assert_equal false, fzf.multi
assert_equal true, fzf.color
+ assert_equal true, fzf.ansi256
assert_equal 1, fzf.rxflag
assert_equal 'world', fzf.query.get
assert_equal 'world', fzf.filter