From 2613ba5000d4c0d9b15e2eec2d2b97615575925e Mon Sep 17 00:00:00 2001 From: Gregory Anders Date: Tue, 5 Dec 2023 10:01:32 -0800 Subject: feat(defaults): enable 'termguicolors' by default when supported by terminal Enable 'termguicolors' automatically when Nvim can detect that truecolor is supported by the host terminal. If $COLORTERM is set to "truecolor" or "24bit", or the terminal's terminfo entry contains capabilities for Tc, RGB, or setrgbf and setrgbb, then we assume that the terminal supports truecolor. Otherwise, the terminal is queried (using both XTGETTCAP and SGR + DECRQSS). If the terminal's response to these queries (if any) indicates that it supports truecolor, then 'termguicolors' is enabled. --- runtime/plugin/osc52.lua | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'runtime/plugin') diff --git a/runtime/plugin/osc52.lua b/runtime/plugin/osc52.lua index 374b70066f..7a90518966 100644 --- a/runtime/plugin/osc52.lua +++ b/runtime/plugin/osc52.lua @@ -6,7 +6,11 @@ if not tty or vim.g.clipboard ~= nil or vim.o.clipboard ~= '' or not os.getenv(' return end -require('vim.termcap').query('Ms', function(cap, seq) +require('vim.termcap').query('Ms', function(cap, found, seq) + if not found then + return + end + assert(cap == 'Ms') -- Check 'clipboard' and g:clipboard again to avoid a race condition @@ -16,7 +20,7 @@ require('vim.termcap').query('Ms', function(cap, seq) -- If the terminal reports a sequence other than OSC 52 for the Ms capability -- then ignore it. We only support OSC 52 (for now) - if not seq:match('^\027%]52') then + if not seq or not seq:match('^\027%]52') then return end -- cgit From 501cf323575864c847be892da1197daa8c3771a1 Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Tue, 9 Jan 2024 23:03:09 +0100 Subject: vim-patch:3a5b3df7764d (#26956) runtime(tar): fix a few problems with the tar plugin From: vim/vim#138331: - Updating .tar.zst files was broken. Fixes vim/vim#12639. - Extracting files from .tar.zst / .tzs files was also broken and works now. From: vim/vim#12637: - Fixes variable assignment and typo From: vim/vim#8109: - Rename .tzs to the more standard .tzst fixes: vim/vim#12639 fixes: vim/vim#8105 closes: vim/vim#8109 closes: vim/vim#12637 closes: vim/vim#13831 https://github.com/vim/vim/commit/3a5b3df7764daa058a3e779183e8f38a8418b164 Co-authored-by: Christian Brabandt Co-authored-by: Martin Rys Co-authored-by: Eisuke Kawashima Co-authored-by: Carlo Teubner --- runtime/plugin/tarPlugin.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/plugin') diff --git a/runtime/plugin/tarPlugin.vim b/runtime/plugin/tarPlugin.vim index 384a3ed823..26a994aee5 100644 --- a/runtime/plugin/tarPlugin.vim +++ b/runtime/plugin/tarPlugin.vim @@ -45,7 +45,7 @@ augroup tar au BufReadCmd *.tar.xz call tar#Browse(expand("")) au BufReadCmd *.txz call tar#Browse(expand("")) au BufReadCmd *.tar.zst call tar#Browse(expand("")) - au BufReadCmd *.tzs call tar#Browse(expand("")) + au BufReadCmd *.tzst call tar#Browse(expand("")) augroup END " --------------------------------------------------------------------- -- cgit From a9df0c5ce6caa5e623c3140a80baf4b3c1ce07db Mon Sep 17 00:00:00 2001 From: Evgeni Chasnovski Date: Fri, 26 Jan 2024 20:06:13 +0200 Subject: fix(osc52): do not use 'vim.iter' (#27218) Problem: Using 'vim.iter' loads it during startup. Solution: Do not use 'vim.iter'. --- runtime/plugin/osc52.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'runtime/plugin') diff --git a/runtime/plugin/osc52.lua b/runtime/plugin/osc52.lua index 7a90518966..7ffd64342e 100644 --- a/runtime/plugin/osc52.lua +++ b/runtime/plugin/osc52.lua @@ -1,6 +1,10 @@ -local tty = vim.iter(vim.api.nvim_list_uis()):any(function(ui) - return ui.chan == 1 and ui.stdout_tty -end) +local tty = false +for _, ui in ipairs(vim.api.nvim_list_uis()) do + if ui.chan == 1 and ui.stdout_tty then + tty = true + break + end +end if not tty or vim.g.clipboard ~= nil or vim.o.clipboard ~= '' or not os.getenv('SSH_TTY') then return -- cgit From 9bb046d1be5aa9ba0482b2cad050b286d4b78978 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 21 Feb 2024 06:30:18 +0800 Subject: vim-patch:f9ca139e3aa1 (#27554) runtime(misc): announce adoption of various runtime files https://github.com/vim/vim/commit/f9ca139e3aa12dd03177ebba5eedcee4f0836f27 Co-authored-by: Christian Brabandt --- runtime/plugin/netrwPlugin.vim | 3 ++- runtime/plugin/zipPlugin.vim | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'runtime/plugin') diff --git a/runtime/plugin/netrwPlugin.vim b/runtime/plugin/netrwPlugin.vim index a347781e6f..ed6f7dc008 100644 --- a/runtime/plugin/netrwPlugin.vim +++ b/runtime/plugin/netrwPlugin.vim @@ -1,7 +1,8 @@ " netrwPlugin.vim: Handles file transfer and remote directory listing across a network " PLUGIN SECTION +" Maintainer: This runtime file is looking for a new maintainer. " Date: Feb 09, 2021 -" Maintainer: Charles E Campbell +" Former Maintainer: Charles E Campbell " GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim " Copyright: Copyright (C) 1999-2021 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, diff --git a/runtime/plugin/zipPlugin.vim b/runtime/plugin/zipPlugin.vim index c3118a361d..2af119bbcb 100644 --- a/runtime/plugin/zipPlugin.vim +++ b/runtime/plugin/zipPlugin.vim @@ -1,7 +1,8 @@ " zipPlugin.vim: Handles browsing zipfiles " PLUGIN PORTION " Date: Dec 07, 2021 -" Maintainer: Charles E Campbell +" Maintainer: This runtime file is looking for a new maintainer. +" Former Maintainer: Charles E Campbell " License: Vim License (see vim's :help license) " Copyright: Copyright (C) 2005-2016 Charles E. Campbell {{{1 " Permission is hereby granted to use and distribute this code, -- cgit From 2f85bbe61513d12c746641fed6ad07559bd95719 Mon Sep 17 00:00:00 2001 From: altermo <107814000+altermo@users.noreply.github.com> Date: Mon, 26 Feb 2024 11:42:51 -0800 Subject: feat!: rewrite TOhtml in lua Co-authored-by: wookayin Co-authored-by: clason Co-authored-by: Lewis Russell --- runtime/plugin/tohtml.lua | 11 ++ runtime/plugin/tohtml.vim | 254 ---------------------------------------------- 2 files changed, 11 insertions(+), 254 deletions(-) create mode 100644 runtime/plugin/tohtml.lua delete mode 100644 runtime/plugin/tohtml.vim (limited to 'runtime/plugin') diff --git a/runtime/plugin/tohtml.lua b/runtime/plugin/tohtml.lua new file mode 100644 index 0000000000..893419ece6 --- /dev/null +++ b/runtime/plugin/tohtml.lua @@ -0,0 +1,11 @@ +if vim.g.loaded_2html_plugin ~= nil then + return +end +vim.g.loaded_2html_plugin = true + +vim.api.nvim_create_user_command('TOhtml', function(args) + local outfile = args.args ~= '' and args.args or vim.fn.tempname() .. '.html' + local html = require('tohtml').tohtml() + vim.fn.writefile(html, outfile) + vim.cmd.split(outfile) +end, { bar = true, nargs = '?' }) diff --git a/runtime/plugin/tohtml.vim b/runtime/plugin/tohtml.vim deleted file mode 100644 index 56eb2c15bf..0000000000 --- a/runtime/plugin/tohtml.vim +++ /dev/null @@ -1,254 +0,0 @@ -" Vim plugin for converting a syntax highlighted file to HTML. -" Maintainer: Ben Fritz -" Last Change: 2023 Sep 07 -" -" The core of the code is in $VIMRUNTIME/autoload/tohtml.vim and -" $VIMRUNTIME/syntax/2html.vim -" -if exists('g:loaded_2html_plugin') - finish -endif -let g:loaded_2html_plugin = 'vim9.0_v2' - -" -" Changelog: {{{ -" 9.0_v2 (this version): - Warn if using deprecated g:use_xhtml option -" - Change default g:html_use_input_for_pc to "none" -" instead of "fallback". All modern browsers support -" the "user-select: none" and "content:" CSS -" properties so the older method relying on extra -" markup and unspecified browser/app clipboard -" handling is only needed in rare special cases. -" - Fix SourceForge issue #33: generate diff filler -" correctly when new lines have been added to or -" removed from end of buffer. -" - Fix SourceForge issue #32/Vim Github issue #8547: -" use translated highlight ID for styling the -" special-use group names (e.g. LineNr) used -" directly by name in the 2html processing. -" - Fix SourceForge issue #26, refactoring to use -" :let-heredoc style string assignment and -" additional fixes for ".." vs. "." style string -" concatenation. Requires Vim v8.1.1354 or higher. -" 9.0_v1 (Vim 9.0.1275): - Implement g:html_no_doc and g:html_no_modeline -" for diff mode. Add tests. -" (Vim 9.0.1122): NOTE: no version string update for this version! -" - Bugfix for variable name in g:html_no_doc -" (Vim 9.0.0819): NOTE: no version string update for this version! -" - Add options g:html_no_doc, g:html_no_lines, -" and g:html_no_modeline (partially included in Vim -" runtime prior to version string update). -" - Updates for new Vim9 string append style (i.e. use -" ".." instead of "."). Requires Vim version -" 8.1.1114 or higher. -" -" 8.1 updates: {{{ -" 8.1_v2 (Vim 8.1.2312): - Fix SourceForge issue #19: fix calculation of tab -" stop position to use in expanding a tab, when that -" tab occurs after a syntax match which in turn -" comes after previously expanded tabs. -" - Set eventignore while splitting a window for the -" destination file to ignore FileType events; -" speeds up processing when the destination file -" already exists and HTML highlight takes too long. -" - Fix SourceForge issue #20: progress bar could not be -" seen when DiffDelete background color matched -" StatusLine background color. Added TOhtmlProgress -" highlight group for manual user override, but -" calculate it to be visible compared to StatusLine -" by default. -" - Fix SourceForge issue #1: Remove workaround for old -" browsers which don't support 'ch' CSS unit, since -" all modern browsers, including IE>=9, support it. -" - Fix SourceForge issue #10: support termguicolors -" - Fix SourceForge issue #21: default to using -" generated content instead of tags for -" uncopyable text, so that text is correctly -" prevented from being copied in chrome. Use -" g:html_use_input_for_pc option to control the -" method used. -" - Switch to HTML5 to allow using vnu as a validator -" in unit test. -" - Fix fallback sizing of tags for browsers -" without "ch" support. -" - Fix cursor on unselectable diff filler text. -" 8.1_v1 (Vim 8.1.0528): - Fix SourceForge issue #6: Don't generate empty -" script tag. -" - Fix SourceForge issue #5: javascript should -" declare variables with "var". -" - Fix SourceForge issue #13: errors thrown sourcing -" 2html.vim directly when plugins not loaded. -" - Fix SourceForge issue #16: support 'vartabstop'. -"}}} -" -" 7.4 updates: {{{ -" 7.4_v2 (Vim 7.4.0899): Fix error raised when converting a diff containing -" an empty buffer. Jan Stocker: allow g:html_font to -" take a list so it is easier to specfiy fallback -" fonts in the generated CSS. -" 7.4_v1 (Vim 7.4.0000): Fix modeline mangling for new "Vim:" format, and -" also for version-specific modelines like "vim>703:". -"}}} -" -" 7.3 updates: {{{ -" 7.3_v14 (Vim 7.3.1246): Allow suppressing line number anchors using -" g:html_line_ids=0. Allow customizing -" important IDs (like line IDs and fold IDs) using -" g:html_id_expr evaluated when the buffer conversion -" is started. -" 7.3_v13 (Vim 7.3.1088): Keep foldmethod at manual in the generated file and -" insert modeline to set it to manual. -" Fix bug: diff mode with 2 unsaved buffers creates a -" duplicate of one buffer instead of including both. -" Add anchors to each line so you can put '#L123' -" or '#123' at the end of the URL to jump to line 123 -" (idea by Andy Spencer). Add javascript to open folds -" to show the anchor being jumped to if it is hidden. -" Fix XML validation error: &nsbp; not part of XML. -" Allow TOhtml to chain together with other commands -" using |. -" 7.3_v12 (Vim 7.3.0616): Fix modeline mangling to also work for when multiple -" highlight groups make up the start-of-modeline text. -" Improve render time of page with uncopyable regions -" by not using one-input-per-char. Change name of -" uncopyable option from html_unselectable to -" html_prevent_copy. Added html_no_invalid option and -" default to inserting invalid markup for uncopyable -" regions to prevent MS Word from pasting undeletable -" elements. Fix 'cpo' handling (Thilo Six). -" 7.3_v12b1: Add html_unselectable option. Rework logic to -" eliminate post-processing substitute commands in -" favor of doing the work up front. Remove unnecessary -" special treatment of 'LineNr' highlight group. Minor -" speed improvements. Fix modeline mangling in -" generated output so it works for text in the first -" column. Fix missing line number and fold column in -" diff filler lines. Fix that some fonts have a 1px -" gap (using a dirty hack, improvements welcome). Add -" "colorscheme" meta tag. Does NOT include support for -" the new default foldtext added in v11, as the patch -" adding it has not yet been included in Vim. -" 7.3_v11 ( unreleased ): Support new default foldtext from patch by Christian -" Brabandt in -" http://groups.google.com/d/topic/vim_dev/B6FSGfq9VoI/discussion. -" This patch has not yet been included in Vim, thus -" these changes are removed in the next version. -" 7.3_v10 (Vim 7.3.0227): Fix error E684 when converting a range wholly inside -" multiple nested folds with dynamic folding on. -" Also fix problem with foldtext in this situation. -" 7.3_v9 (Vim 7.3.0170): Add html_pre_wrap option active with html_use_css -" and without html_no_pre, default value same as -" 'wrap' option, (Andy Spencer). Don't use -" 'fileencoding' for converted document encoding if -" 'buftype' indicates a special buffer which isn't -" written. -" 7.3_v8 (Vim 7.3.0100): Add html_expand_tabs option to allow leaving tab -" characters in generated output (Andy Spencer). -" Escape text that looks like a modeline so Vim -" doesn't use anything in the converted HTML as a -" modeline. Bugfixes: Fix folding when a fold starts -" before the conversion range. Remove fold column when -" there are no folds. -" 7.3_v7 (Vim 7-3-0063): see betas released on vim_dev below: -" 7.3_v7b3: Fixed bug, convert Unicode to UTF-8 all the way. -" 7.3_v7b2: Remove automatic detection of encodings that are not -" supported by all major browsers according to -" http://wiki.whatwg.org/wiki/Web_Encodings and -" convert to UTF-8 for all Unicode encodings. Make -" HTML encoding to Vim encoding detection be -" case-insensitive for built-in pairs. -" 7.3_v7b1: Remove use of setwinvar() function which cannot be -" called in restricted mode (Andy Spencer). Use -" 'fencoding' instead of 'encoding' to determine by -" charset, and make sure the 'fenc' of the generated -" file matches its indicated charset. Add charsets for -" all of Vim's natively supported encodings. -" 7.3_v6 (Vim 7.3.0000): Really fix bug with 'nowrapscan', 'magic' and other -" user settings interfering with diff mode generation, -" trailing whitespace (e.g. line number column) when -" using html_no_pre, and bugs when using -" html_hover_unfold. -" 7.3_v5 ( unreleased ): Fix bug with 'nowrapscan' and also with out-of-sync -" folds in diff mode when first line was folded. -" 7.3_v4 (Vim 7.3.0000): Bugfixes, especially for xhtml markup, and diff mode -" 7.3_v3 (Vim 7.3.0000): Refactor option handling and make html_use_css -" default to true when not set to anything. Use strict -" doctypes where possible. Rename use_xhtml option to -" html_use_xhtml for consistency. Use .xhtml extension -" when using this option. Add meta tag for settings. -" 7.3_v2 (Vim 7.3.0000): Fix syntax highlighting in diff mode to use both the -" diff colors and the normal syntax colors -" 7.3_v1 (Vim 7.3.0000): Add conceal support and meta tags in output -"}}} -"}}} - -" TODO: {{{ -" * Check the issue tracker: -" https://sourceforge.net/p/vim-tohtml/issues/search/?q=%21status%3Aclosed -" * Options for generating the CSS in external style sheets. New :TOcss -" command to convert the current color scheme into a (mostly) generic CSS -" stylesheet which can be re-used. Alternate stylesheet support? Good start -" by Erik Falor -" ( https://groups.google.com/d/topic/vim_use/7XTmC4D22dU/discussion ). -" * Add optional argument to :TOhtml command to specify mode (gui, cterm, -" term) to use for the styling. Suggestion by "nacitar". -" * Add way to override or specify which RGB colors map to the color numbers -" in cterm. Get better defaults than just guessing? Suggestion by "nacitar". -" * Disable filetype detection until after all processing is done. -" * Add option for not generating the hyperlink on stuff that looks like a -" URL? Or just color the link to fit with the colorscheme (and only special -" when hovering)? -" * Bug: Opera does not allow printing more than one page if uncopyable -" regions is turned on. Possible solution: Add normal text line numbers with -" display:none, set to display:inline for print style sheets, and hide -" elements for print, to allow Opera printing multiple pages (and -" other uncopyable areas?). May need to make the new text invisible to IE -" with conditional comments to prevent copying it, IE for some reason likes -" to copy hidden text. Other browsers too? -" * Bug: still a 1px gap throughout the fold column when html_prevent_copy is -" "fn" in some browsers. Specifically, in Chromium on Ubuntu (but not Chrome -" on Windows). Perhaps it is font related? -" * Bug: still some gaps in the fold column when html_prevent_copy contains -" 'd' and showing the whole diff (observed in multiple browsers). Only gaps -" on diff lines though. -" * Undercurl support via CSS3, with fallback to dotted or something: -" https://groups.google.com/d/topic/vim_use/BzXA6He1pHg/discussion -" * Redo updates for modified default foldtext (v11) when/if the patch is -" accepted to modify it. -" * Test case +diff_one_file-dynamic_folds+expand_tabs-hover_unfold -" +ignore_conceal-ignore_folding+no_foldcolumn+no_pre+no_progress -" +number_lines-pre_wrap-use_css+use_xhtml+whole_filler.xhtml -" does not show the whole diff filler as it is supposed to? -" * Bug: when 'isprint' is wrong for the current encoding, will generate -" invalid content. Can/should anything be done about this? Maybe a separate -" plugin to correct 'isprint' based on encoding? -" * Check to see if the windows-125\d encodings actually work in Unix without -" the 8bit- prefix. Add prefix to autoload dictionaries for Unix if not. -" * Font auto-detection similar to -" http://www.vim.org/scripts/script.php?script_id=2384 but for a variety of -" platforms. -" * Pull in code from http://www.vim.org/scripts/script.php?script_id=3113 : -" - listchars support -" - full-line background highlight -" - other? -" * Make it so deleted lines in a diff don't create side-scrolling (get it -" free with full-line background highlight above). -" * Restore open/closed folds and cursor position after processing each file -" with option not to restore for speed increase. -" * Add extra meta info (generation time, etc.)? -" * Tidy up so we can use strict doctype in even more situations -" * Implementation detail: add threshold for writing the lines to the html -" buffer before we're done (5000 or so lines should do it) -" * TODO comments for code cleanup scattered throughout -"}}} - -" Define the :TOhtml command when: -" - 'compatible' is not set -" - this plugin or user override was not already loaded -" - user commands are available. {{{ -if !&cp && !exists(":TOhtml") && has("user_commands") - command -range=% -bar TOhtml :call tohtml#Convert2HTML(, ) -endif "}}} - -" Make sure any patches will probably use consistent indent -" vim: ts=8 sw=2 sts=2 noet fdm=marker -- cgit From 0246f1a897f4c349760cec9aea6db8bdd71bf3c5 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Wed, 28 Feb 2024 18:01:38 +0100 Subject: fix(tohtml): set filetype of generated HTML to `html` Problem: `:TOhtml` opens the generated HTML code in a split, meaning it inherits the `help` filetype if a help buffer is to be converted. Solution: Explicitly set the filetype to `html`. --- runtime/plugin/tohtml.lua | 1 + 1 file changed, 1 insertion(+) (limited to 'runtime/plugin') diff --git a/runtime/plugin/tohtml.lua b/runtime/plugin/tohtml.lua index 893419ece6..79f2794a40 100644 --- a/runtime/plugin/tohtml.lua +++ b/runtime/plugin/tohtml.lua @@ -8,4 +8,5 @@ vim.api.nvim_create_user_command('TOhtml', function(args) local html = require('tohtml').tohtml() vim.fn.writefile(html, outfile) vim.cmd.split(outfile) + vim.bo.filetype = 'html' end, { bar = true, nargs = '?' }) -- cgit