mirror of
https://github.com/neovim/neovim.git
synced 2025-09-07 03:48:18 +00:00
vim-patch:7.4.1236
Problem: When "syntax manual" was used switching between buffers removes
the highlighting.
Solution: Set the syntax option without changing the value. (Anton
Lindqvist)
885f24fbca
Patch applied cleanly to the nvim sources except for version.c.
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
" Vim syntax support file
|
" Vim syntax support file
|
||||||
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
" Maintainer: Bram Moolenaar <Bram@vim.org>
|
||||||
" Last Change: 2008 Jan 26
|
" Last Change: 2016 Feb 01
|
||||||
|
|
||||||
" This file is used for ":syntax manual".
|
" This file is used for ":syntax manual".
|
||||||
" It installs the Syntax autocommands, but no the FileType autocommands.
|
" It installs the Syntax autocommands, but no the FileType autocommands.
|
||||||
@@ -16,10 +16,11 @@ endif
|
|||||||
|
|
||||||
let syntax_manual = 1
|
let syntax_manual = 1
|
||||||
|
|
||||||
" Remove the connection between FileType and Syntax autocommands.
|
" Overrule the connection between FileType and Syntax autocommands. This sets
|
||||||
if exists('#syntaxset')
|
" the syntax when the file type is detected, without changing the value.
|
||||||
au! syntaxset FileType
|
augroup syntaxset
|
||||||
endif
|
au! FileType * exe "set syntax=" . &syntax
|
||||||
|
augroup END
|
||||||
|
|
||||||
" If the GUI is already running, may still need to install the FileType menu.
|
" If the GUI is already running, may still need to install the FileType menu.
|
||||||
" Don't do it when the 'M' flag is included in 'guioptions'.
|
" Don't do it when the 'M' flag is included in 'guioptions'.
|
||||||
|
@@ -442,7 +442,7 @@ static int included_patches[] = {
|
|||||||
// 1239 NA
|
// 1239 NA
|
||||||
// 1238 NA
|
// 1238 NA
|
||||||
// 1237,
|
// 1237,
|
||||||
// 1236,
|
1236,
|
||||||
// 1235 NA
|
// 1235 NA
|
||||||
// 1234 NA
|
// 1234 NA
|
||||||
// 1233 NA
|
// 1233 NA
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
local helpers = require('test.functional.helpers')
|
local helpers = require('test.functional.helpers')
|
||||||
local Screen = require('test.functional.ui.screen')
|
local Screen = require('test.functional.ui.screen')
|
||||||
|
local os = require('os')
|
||||||
local clear, feed = helpers.clear, helpers.feed
|
local clear, feed = helpers.clear, helpers.feed
|
||||||
local execute, request, eq = helpers.execute, helpers.request, helpers.eq
|
local execute, request, eq = helpers.execute, helpers.request, helpers.eq
|
||||||
|
|
||||||
@@ -16,6 +17,73 @@ describe('color scheme compatibility', function()
|
|||||||
end)
|
end)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
describe('manual syntax highlight', function()
|
||||||
|
-- When using manual syntax highlighting, it should be preserved even when
|
||||||
|
-- switching buffers... bug did only occur without :set hidden
|
||||||
|
-- Ref: vim patch 7.4.1236
|
||||||
|
local screen
|
||||||
|
|
||||||
|
before_each(function()
|
||||||
|
clear()
|
||||||
|
screen = Screen.new(20,5)
|
||||||
|
screen:attach()
|
||||||
|
--ignore highligting of ~-lines
|
||||||
|
screen:set_default_attr_ignore( {{bold=true, foreground=Screen.colors.Blue}} )
|
||||||
|
--syntax highlight for vimcscripts "echo"
|
||||||
|
screen:set_default_attr_ids( {[1] = {bold=true, foreground=Screen.colors.Brown}} )
|
||||||
|
end)
|
||||||
|
|
||||||
|
after_each(function()
|
||||||
|
screen:detach()
|
||||||
|
os.remove('Xtest-functional-ui-highlight.tmp.vim')
|
||||||
|
end)
|
||||||
|
|
||||||
|
-- test with "set hidden" even if the bug did not occur this way
|
||||||
|
it("works with buffer switch and 'hidden'", function()
|
||||||
|
execute('e tmp1.vim')
|
||||||
|
execute('e Xtest-functional-ui-highlight.tmp.vim')
|
||||||
|
execute('filetype on')
|
||||||
|
execute('syntax manual')
|
||||||
|
execute('set ft=vim')
|
||||||
|
execute('set syntax=ON')
|
||||||
|
feed('iecho 1<esc>0')
|
||||||
|
|
||||||
|
execute('set hidden')
|
||||||
|
execute('w')
|
||||||
|
execute('bn')
|
||||||
|
execute('bp')
|
||||||
|
screen:expect([[
|
||||||
|
{1:^echo} 1 |
|
||||||
|
~ |
|
||||||
|
~ |
|
||||||
|
~ |
|
||||||
|
<f 1 --100%-- col 1 |
|
||||||
|
]])
|
||||||
|
end)
|
||||||
|
|
||||||
|
it("works with buffer switch and 'nohidden'", function()
|
||||||
|
execute('e tmp1.vim')
|
||||||
|
execute('e Xtest-functional-ui-highlight.tmp.vim')
|
||||||
|
execute('filetype on')
|
||||||
|
execute('syntax manual')
|
||||||
|
execute('set ft=vim')
|
||||||
|
execute('set syntax=ON')
|
||||||
|
feed('iecho 1<esc>0')
|
||||||
|
|
||||||
|
execute('set nohidden')
|
||||||
|
execute('w')
|
||||||
|
execute('bn')
|
||||||
|
execute('bp')
|
||||||
|
screen:expect([[
|
||||||
|
{1:^echo} 1 |
|
||||||
|
~ |
|
||||||
|
~ |
|
||||||
|
~ |
|
||||||
|
<ht.tmp.vim" 1L, 7C |
|
||||||
|
]])
|
||||||
|
end)
|
||||||
|
end)
|
||||||
|
|
||||||
|
|
||||||
describe('Default highlight groups', function()
|
describe('Default highlight groups', function()
|
||||||
-- Test the default attributes for highlight groups shown by the :highlight
|
-- Test the default attributes for highlight groups shown by the :highlight
|
||||||
@@ -38,6 +106,7 @@ describe('Default highlight groups', function()
|
|||||||
after_each(function()
|
after_each(function()
|
||||||
screen:detach()
|
screen:detach()
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('window status bar', function()
|
it('window status bar', function()
|
||||||
screen:set_default_attr_ids({
|
screen:set_default_attr_ids({
|
||||||
[1] = {reverse = true, bold = true}, -- StatusLine
|
[1] = {reverse = true, bold = true}, -- StatusLine
|
||||||
|
Reference in New Issue
Block a user