Mercurial > vim
view runtime/autoload/spellfile.vim @ 33767:4913b4f5a133 v9.0.2104
patch 9.0.2104: wast filetype should be replaced by wat filetype
Commit: https://github.com/vim/vim/commit/bc8f79d36a456054ed29f46585830af6d71f57c8
Author: rhysd <lin90162@yahoo.co.jp>
Date: Tue Nov 14 16:46:07 2023 +0100
patch 9.0.2104: wast filetype should be replaced by wat filetype
Problem: wast filetype should be replaced by wat filetype
Solution: start using the official wat filetype name
runtime: rename `wast` filetype to `wat` (Wasm text format)
The problem is the name of the current filetype wast. When the plugin
was initially created, the file extension for Wasm text format was not
fixed and .wast was more popular.
However, recently .wat became the official file extension for
WebAssembly text (WAT) format and .wast is now a file extension for the
unofficial WAST format, which is a superset of .wat for the convenience
to describe the Wasm specification conformance tests.
https://webassembly.js.org/docs/contrib-wat-vs-wast.html
However for now, let's keep using the `wat` filetype even for the .wast
extension, so that we at least do not lose the filetype settings and
syntax highlighting. This can be adjusted later, if it turns out to have
a separate need for.
closes: #13533
Signed-off-by: rhysd <lin90162@yahoo.co.jp>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 14 Nov 2023 17:15:03 +0100 |
parents | 4027cefc2aab |
children |
line wrap: on
line source
" Vim script to download a missing spell file " Maintainer: The Vim Project <https://github.com/vim/vim> " Last Change: 2023 Aug 10 " Former Maintainer: Bram Moolenaar <Bram@vim.org> if !exists('g:spellfile_URL') " Always use https:// because it's secure. The certificate is for nluug.nl, " thus we can't use the alias ftp.vim.org here. let g:spellfile_URL = 'https://ftp.nluug.nl/pub/vim/runtime/spell' endif let s:spellfile_URL = '' " Start with nothing so that s:donedict is reset. " This function is used for the spellfile plugin. function! spellfile#LoadFile(lang) " If the netrw plugin isn't loaded we silently skip everything. if !exists(":Nread") if &verbose echomsg 'spellfile#LoadFile(): Nread command is not available.' endif return endif let lang = tolower(a:lang) " If the URL changes we try all files again. if s:spellfile_URL != g:spellfile_URL let s:donedict = {} let s:spellfile_URL = g:spellfile_URL endif " I will say this only once! if has_key(s:donedict, lang . &enc) if &verbose echomsg 'spellfile#LoadFile(): Tried this language/encoding before.' endif return endif let s:donedict[lang . &enc] = 1 " Find spell directories we can write in. let [dirlist, dirchoices] = spellfile#GetDirChoices() if len(dirlist) == 0 let dir_to_create = spellfile#WritableSpellDir() if &verbose || dir_to_create != '' echomsg 'spellfile#LoadFile(): There is no writable spell directory.' endif if dir_to_create != '' if confirm("Shall I create " . dir_to_create, "&Yes\n&No", 2) == 1 " After creating the directory it should show up in the list. call mkdir(dir_to_create, "p") let [dirlist, dirchoices] = spellfile#GetDirChoices() endif endif if len(dirlist) == 0 return endif endif let msg = 'Cannot find spell file for "' . lang . '" in ' . &enc let msg .= "\nDo you want me to try downloading it?" if confirm(msg, "&Yes\n&No", 2) == 1 let enc = &encoding if enc == 'iso-8859-15' let enc = 'latin1' endif let fname = lang . '.' . enc . '.spl' " Split the window, read the file into a new buffer. " Remember the buffer number, we check it below. new let newbufnr = winbufnr(0) setlocal bin fenc= echo 'Downloading ' . fname . '...' call spellfile#Nread(fname) if getline(2) !~ 'VIMspell' " Didn't work, perhaps there is an ASCII one. " Careful: Nread() may have opened a new window for the error message, " we need to go back to our own buffer and window. if newbufnr != winbufnr(0) let winnr = bufwinnr(newbufnr) if winnr == -1 " Our buffer has vanished!? Open a new window. echomsg "download buffer disappeared, opening a new one" new setlocal bin fenc= else exe winnr . "wincmd w" endif endif if newbufnr == winbufnr(0) " We are back the old buffer, remove any (half-finished) download. g/^/d else let newbufnr = winbufnr(0) endif let fname = lang . '.ascii.spl' echo 'Could not find it, trying ' . fname . '...' call spellfile#Nread(fname) if getline(2) !~ 'VIMspell' echo 'Sorry, downloading failed' exe newbufnr . "bwipe!" return endif endif " Delete the empty first line and mark the file unmodified. 1d set nomod let msg = "In which directory do you want to write the file:" for i in range(len(dirlist)) let msg .= "\n" . (i + 1) . '. ' . dirlist[i] endfor let dirchoice = confirm(msg, dirchoices) - 2 if dirchoice >= 0 if exists('*fnameescape') let dirname = fnameescape(dirlist[dirchoice]) else let dirname = escape(dirlist[dirchoice], ' ') endif setlocal fenc= exe "write " . dirname . '/' . fname " Also download the .sug file, if the user wants to. let msg = "Do you want me to try getting the .sug file?\n" let msg .= "This will improve making suggestions for spelling mistakes,\n" let msg .= "but it uses quite a bit of memory." if confirm(msg, "&No\n&Yes") == 2 g/^/d let fname = substitute(fname, '\.spl$', '.sug', '') echo 'Downloading ' . fname . '...' call spellfile#Nread(fname) if getline(2) =~ 'VIMsug' 1d exe "write " . dirname . '/' . fname set nomod else echo 'Sorry, downloading failed' " Go back to our own buffer/window, Nread() may have taken us to " another window. if newbufnr != winbufnr(0) let winnr = bufwinnr(newbufnr) if winnr != -1 exe winnr . "wincmd w" endif endif if newbufnr == winbufnr(0) set nomod endif endif endif endif " Wipe out the buffer we used. exe newbufnr . "bwipe" endif endfunc " Read "fname" from the server. function! spellfile#Nread(fname) " We do our own error handling, don't want a window for it. if exists("g:netrw_use_errorwindow") let save_ew = g:netrw_use_errorwindow endif let g:netrw_use_errorwindow=0 if g:spellfile_URL =~ '^ftp://' " for an ftp server use a default login and password to avoid a prompt let machine = substitute(g:spellfile_URL, 'ftp://\([^/]*\).*', '\1', '') let dir = substitute(g:spellfile_URL, 'ftp://[^/]*/\(.*\)', '\1', '') exe 'Nread "' . machine . ' anonymous vim7user ' . dir . '/' . a:fname . '"' else exe 'Nread ' g:spellfile_URL . '/' . a:fname endif if exists("save_ew") let g:netrw_use_errorwindow = save_ew else unlet g:netrw_use_errorwindow endif endfunc " Get a list of writable spell directories and choices for confirm(). function! spellfile#GetDirChoices() let dirlist = [] let dirchoices = '&Cancel' for dir in split(globpath(&rtp, 'spell'), "\n") if filewritable(dir) == 2 call add(dirlist, dir) let dirchoices .= "\n&" . len(dirlist) endif endfor return [dirlist, dirchoices] endfunc function! spellfile#WritableSpellDir() if has("unix") " For Unix always use the $HOME/.vim directory return $HOME . "/.vim/spell" endif for dir in split(&rtp, ',') if filewritable(dir) == 2 return dir . "/spell" endif endfor return '' endfunction