diff options
| author | Martin Chaine <martin@casimir.me> | 2016-12-06 14:40:14 +0100 |
|---|---|---|
| committer | Martin Chaine <martin@casimir.me> | 2016-12-06 17:48:46 +0100 |
| commit | 7384288e079c7c7dfc24f94c2189e2e075f7dcdf (patch) | |
| tree | 6549d15fb5c129298718bf358c194a7e4b9f8e63 | |
| parent | b3ac733f332a753be2fc575328d38017f31d0a00 (diff) | |
transform mimetype to a fallback option
The option is now used as a fallback when detection by extension fails. Some
scripts like `base/mail.kak` and `base/html.kak` still rely heavily on it.
36 files changed, 18 insertions, 140 deletions
diff --git a/rc/base/clojure.kak b/rc/base/clojure.kak index 1336bd41..194a2815 100644 --- a/rc/base/clojure.kak +++ b/rc/base/clojure.kak @@ -6,10 +6,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-clojure %{ - set buffer filetype clojure -} - hook global BufCreate .*[.](cljs?) %{ set buffer filetype clojure } diff --git a/rc/base/css.kak b/rc/base/css.kak index 06c483aa..27a58712 100644 --- a/rc/base/css.kak +++ b/rc/base/css.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-css %{ - set buffer filetype css -} - hook global BufCreate .*[.](css) %{ set buffer filetype css } diff --git a/rc/base/d.kak b/rc/base/d.kak index d5ab7df9..3344572b 100644 --- a/rc/base/d.kak +++ b/rc/base/d.kak @@ -5,7 +5,6 @@ # ‾‾‾‾‾‾‾‾‾ hook global BufCreate .*\.di? %{ - set buffer mimetype "" set buffer filetype d } diff --git a/rc/base/file.kak b/rc/base/file.kak new file mode 100644 index 00000000..0aef21ec --- /dev/null +++ b/rc/base/file.kak @@ -0,0 +1,13 @@ +decl str mimetype + +hook global BufOpen .* %{ %sh{ + if [ -z "${kak_opt_filetype}" ]; then + mime=$(file -b --mime-type "${kak_buffile}") + printf %s\\n "${mime}" | grep -q '^text/x-' + if [ $? -eq 0 ]; then + printf "set buffer filetype '%s'\n" "${mime:7}" + else + printf "set buffer mimetype '%s'\n" "${mime}" + fi + fi +} } diff --git a/rc/base/fish.kak b/rc/base/fish.kak index 81c1dabc..6bb4a5f5 100644 --- a/rc/base/fish.kak +++ b/rc/base/fish.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-fish %{ - set buffer filetype fish -} - hook global BufCreate .*[.](fish) %{ set buffer filetype fish } diff --git a/rc/base/go.kak b/rc/base/go.kak index b925576a..0b0be61b 100644 --- a/rc/base/go.kak +++ b/rc/base/go.kak @@ -5,7 +5,6 @@ # ‾‾‾‾‾‾‾‾‾ hook global BufCreate .*\.go %{ - set buffer mimetype "" set buffer filetype go } diff --git a/rc/base/haskell.kak b/rc/base/haskell.kak index 823c4be0..bb5fb5c1 100644 --- a/rc/base/haskell.kak +++ b/rc/base/haskell.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-haskell %{ - set buffer filetype haskell -} - hook global BufCreate .*[.](hs) %{ set buffer filetype haskell } diff --git a/rc/base/java.kak b/rc/base/java.kak index 606f0318..1ccc82fc 100644 --- a/rc/base/java.kak +++ b/rc/base/java.kak @@ -2,10 +2,6 @@ hook global BufCreate .*\.java %{ set buffer filetype java } -hook global BufSetOption mimetype=text/java %{ - set buffer filetype java -} - addhl -group / regions -default code java \ string %{(?<!')"} %{(?<!\\)(\\\\)*"} '' \ comment /\* \*/ '' \ diff --git a/rc/base/javascript.kak b/rc/base/javascript.kak index 0dfe4334..0ea31df7 100644 --- a/rc/base/javascript.kak +++ b/rc/base/javascript.kak @@ -1,10 +1,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-javascript %{ - set buffer filetype javascript -} - hook global BufCreate .*[.](js) %{ set buffer filetype javascript } diff --git a/rc/base/json.kak b/rc/base/json.kak index 3369d9f9..b92d118b 100644 --- a/rc/base/json.kak +++ b/rc/base/json.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-json %{ - set buffer filetype json -} - hook global BufCreate .*[.](json) %{ set buffer filetype json } diff --git a/rc/base/lisp.kak b/rc/base/lisp.kak index 9c65d950..5b931ab6 100644 --- a/rc/base/lisp.kak +++ b/rc/base/lisp.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-lisp %{ - set buffer filetype lisp -} - hook global BufCreate .*[.](lisp) %{ set buffer filetype lisp } diff --git a/rc/base/lua.kak b/rc/base/lua.kak index b23c92e3..2f5ba4ee 100644 --- a/rc/base/lua.kak +++ b/rc/base/lua.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-lua %{ - set buffer filetype lua -} - hook global BufCreate .*[.](lua) %{ set buffer filetype lua } diff --git a/rc/base/markdown.kak b/rc/base/markdown.kak index 04a31639..3d8814ad 100644 --- a/rc/base/markdown.kak +++ b/rc/base/markdown.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-markdown %{ - set buffer filetype markdown -} - hook global BufCreate .*[.](markdown|md|mkd) %{ set buffer filetype markdown } diff --git a/rc/base/mime.kak b/rc/base/mime.kak deleted file mode 100644 index c0273f58..00000000 --- a/rc/base/mime.kak +++ /dev/null @@ -1,5 +0,0 @@ -decl str mimetype "text/plain" - -hook global BufOpen .* %{ - set buffer mimetype %sh{file -b --mime-type "${kak_buffile}" } -} diff --git a/rc/base/perl.kak b/rc/base/perl.kak index d4c30695..d025ca6d 100644 --- a/rc/base/perl.kak +++ b/rc/base/perl.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-perl %{ - set buffer filetype perl -} - hook global BufCreate .*\.pl %{ set buffer filetype perl } diff --git a/rc/base/ruby.kak b/rc/base/ruby.kak index 185db608..42af2fd7 100644 --- a/rc/base/ruby.kak +++ b/rc/base/ruby.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-ruby %{ - set buffer filetype ruby -} - hook global BufCreate .*(([.](rb))|(irbrc)|(pryrc)|(Capfile|[.]cap)|(Gemfile)|(Guardfile)|(Rakefile|[.]rake)|(Thorfile|[.]thor)|(Vagrantfile)) %{ set buffer filetype ruby } diff --git a/rc/base/rust.kak b/rc/base/rust.kak index da5bc1c7..774b5214 100644 --- a/rc/base/rust.kak +++ b/rc/base/rust.kak @@ -4,13 +4,8 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-rust %{ - set buffer filetype rust -} - hook global BufCreate .*[.](rust|rs) %{ set buffer filetype rust - set buffer mimetype '' } # Highlighters diff --git a/rc/base/scala.kak b/rc/base/scala.kak index f92251ae..869fc3ec 100644 --- a/rc/base/scala.kak +++ b/rc/base/scala.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-scala %{ - set buffer filetype scala -} - hook global BufCreate .*[.](scala) %{ set buffer filetype scala } diff --git a/rc/base/yaml.kak b/rc/base/yaml.kak index 57125c03..ddf5d7bc 100644 --- a/rc/base/yaml.kak +++ b/rc/base/yaml.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-yaml %{ - set buffer filetype yaml -} - hook global BufCreate .*[.](yaml) %{ set buffer filetype yaml } diff --git a/rc/core/c-family.kak b/rc/core/c-family.kak index 63d1ee19..34b0faec 100644 --- a/rc/core/c-family.kak +++ b/rc/core/c-family.kak @@ -1,11 +1,13 @@ hook global BufCreate .*\.(cc|cpp|cxx|C|hh|hpp|hxx|H)$ %{ set buffer filetype cpp - set buffer mimetype '' +} + +hook global BufSetOption filetype=c\+\+ %{ + set buffer filetype cpp } hook global BufCreate .*\.c$ %{ set buffer filetype c - set buffer mimetype '' } hook global BufCreate .*\.h$ %{ @@ -15,24 +17,10 @@ hook global BufCreate .*\.h$ %{ } catch %{ set buffer filetype c } - set buffer mimetype '' -} - -hook global BufSetOption mimetype=text/x-c %{ - set buffer filetype c -} - -hook global BufSetOption mimetype=text/x-c\+\+ %{ - set buffer filetype cpp } hook global BufCreate .*\.m %{ set buffer filetype objc - set buffer mimetype '' -} - -hook global BufSetOption mimetype=text/x-objc %{ - set buffer filetype objc } def -hidden _c-family-trim-autoindent %[ eval -draft -itersel %[ diff --git a/rc/core/makefile.kak b/rc/core/makefile.kak index 7b06eef7..04f98fd6 100644 --- a/rc/core/makefile.kak +++ b/rc/core/makefile.kak @@ -1,10 +1,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-makefile %{ - set buffer filetype makefile -} - hook global BufCreate .*/?[mM]akefile %{ set buffer filetype makefile } diff --git a/rc/core/python.kak b/rc/core/python.kak index 7bca05b7..fc09beaa 100644 --- a/rc/core/python.kak +++ b/rc/core/python.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-python %{ - set buffer filetype python -} - hook global BufCreate .*[.](py) %{ set buffer filetype python } diff --git a/rc/core/sh.kak b/rc/core/sh.kak index a2bc73a5..07e3321a 100644 --- a/rc/core/sh.kak +++ b/rc/core/sh.kak @@ -2,10 +2,6 @@ hook global BufCreate .*\.(z|ba|c|k)?sh(rc|_profile)? %{ set buffer filetype sh } -hook global BufSetOption mimetype=text/x-shellscript %{ - set buffer filetype sh -} - addhl -group / regions -default code sh \ double_string %{(?<!\\)(\\\\)*\K"} %{(?<!\\)(\\\\)*"} '' \ single_string %{(?<!\\)(\\\\)*\K'} %{'} '' \ diff --git a/rc/extra/cabal.kak b/rc/extra/cabal.kak index 812c8212..453355e4 100644 --- a/rc/extra/cabal.kak +++ b/rc/extra/cabal.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-cabal %{ - set buffer filetype cabal -} - hook global BufCreate .*[.](cabal) %{ set buffer filetype cabal } diff --git a/rc/extra/coffee.kak b/rc/extra/coffee.kak index 3090e365..e3541cbf 100644 --- a/rc/extra/coffee.kak +++ b/rc/extra/coffee.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-coffee %{ - set buffer filetype coffee -} - hook global BufCreate .*[.](coffee) %{ set buffer filetype coffee } diff --git a/rc/extra/cucumber.kak b/rc/extra/cucumber.kak index ad9c5c68..de69ebaa 100644 --- a/rc/extra/cucumber.kak +++ b/rc/extra/cucumber.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-cucumber %{ - set buffer filetype cucumber -} - hook global BufCreate .*[.](feature|story) %{ set buffer filetype cucumber } diff --git a/rc/extra/haml.kak b/rc/extra/haml.kak index 8191803e..a6531989 100644 --- a/rc/extra/haml.kak +++ b/rc/extra/haml.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-haml %{ - set buffer filetype haml -} - hook global BufCreate .*[.](haml) %{ set buffer filetype haml } diff --git a/rc/extra/latex.kak b/rc/extra/latex.kak index 5159740b..303ea9c5 100644 --- a/rc/extra/latex.kak +++ b/rc/extra/latex.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-tex %{ - set buffer filetype latex -} - hook global BufCreate .*\.tex %{ set buffer filetype latex } diff --git a/rc/extra/modeline.kak b/rc/extra/modeline.kak index 962b3f41..4e9e5466 100644 --- a/rc/extra/modeline.kak +++ b/rc/extra/modeline.kak @@ -52,7 +52,6 @@ def -hidden _modeline-parse %{ autowrap_column eolformat filetype - mimetype BOM ) diff --git a/rc/extra/moon.kak b/rc/extra/moon.kak index e5f790f3..9439a0de 100644 --- a/rc/extra/moon.kak +++ b/rc/extra/moon.kak @@ -4,12 +4,8 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-moon %{ - set buffer filetype moon -} - hook global BufCreate .*[.](moon) %{ - set buffer mimetype text/x-moon + set buffer filetype moon } # Highlighters diff --git a/rc/extra/pug.kak b/rc/extra/pug.kak index c8fd5d7a..d1a37f5f 100644 --- a/rc/extra/pug.kak +++ b/rc/extra/pug.kak @@ -8,10 +8,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-pug %{ - set buffer filetype pug -} - hook global BufCreate .*[.](pug|jade) %{ set buffer filetype pug } diff --git a/rc/extra/ragel.kak b/rc/extra/ragel.kak index b5411e92..cc934c64 100644 --- a/rc/extra/ragel.kak +++ b/rc/extra/ragel.kak @@ -6,10 +6,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-ragel %{ - set buffer filetype ragel -} - hook global BufCreate .*[.](ragel|rl) %{ set buffer filetype ragel } diff --git a/rc/extra/sass.kak b/rc/extra/sass.kak index 982928a6..9c0cef76 100644 --- a/rc/extra/sass.kak +++ b/rc/extra/sass.kak @@ -4,10 +4,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-sass %{ - set buffer filetype sass -} - hook global BufCreate .*[.](sass) %{ set buffer filetype sass } diff --git a/rc/extra/scss.kak b/rc/extra/scss.kak index c9be1c52..d09a86da 100644 --- a/rc/extra/scss.kak +++ b/rc/extra/scss.kak @@ -6,10 +6,6 @@ # Detection # ‾‾‾‾‾‾‾‾‾ -hook global BufSetOption mimetype=text/x-scss %{ - set buffer filetype scss -} - hook global BufCreate .*[.](scss) %{ set buffer filetype scss } diff --git a/rc/extra/taskpaper.kak b/rc/extra/taskpaper.kak index 5a366d3d..ec71ef7b 100644 --- a/rc/extra/taskpaper.kak +++ b/rc/extra/taskpaper.kak @@ -5,7 +5,6 @@ # ‾‾‾‾‾‾‾‾‾ hook global BufCreate .*\.taskpaper %{ - set buffer mimetype "" set buffer filetype taskpaper } diff --git a/rc/extra/tupfile.kak b/rc/extra/tupfile.kak index 438d6b54..c412afbe 100644 --- a/rc/extra/tupfile.kak +++ b/rc/extra/tupfile.kak @@ -5,7 +5,6 @@ # ‾‾‾‾‾‾‾‾‾ hook global BufCreate (.+/)?[Tt]upfile %{ - set buffer mimetype "" set buffer filetype tupfile } |
