runtime(compiler): add mypy and ruff compiler; update pylint linter

Commit: 
https://github.com/vim/vim/commit/6d9a145d719857fe461d045adf3b61ec4b4bb53f
Author: Konfekt <konf...@users.noreply.github.com>
Date:   Thu Nov 7 21:40:22 2024 +0100

    runtime(compiler): add mypy and ruff compiler; update pylint linter
    
    mypy and ruff come from
    https://github.com/Konfekt/vim-compilers/tree/master/compiler and the
    former was added by @pbnj-dragon
    
    closes: #16007
    
    Signed-off-by: Konfekt <konf...@users.noreply.github.com>
    Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/compiler/mypy.vim b/runtime/compiler/mypy.vim
new file mode 100644
index 000000000..891488626
--- /dev/null
+++ b/runtime/compiler/mypy.vim
@@ -0,0 +1,19 @@
+" Vim compiler file
+" Compiler:    Mypy (Python static checker)
+" Maintainer:   @Konfekt
+" Last Change: 2024 Nov 07
+
+if exists("current_compiler") | finish | endif
+let current_compiler = "mypy"
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" CompilerSet makeprg=mypy
+let &l:makeprg = 'mypy --show-column-numbers '
+           \ ..get(b:, 'mypy_makeprg_params', get(g:, 'mypy_makeprg_params', 
'--strict --ignore-missing-imports'))
+exe 'CompilerSet makeprg='..escape(&l:makeprg, ' "')
+CompilerSet errorformat=%f:%l:%c:\ %t%*[^:]:\ %m
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/pylint.vim b/runtime/compiler/pylint.vim
index 14e9696db..59408b475 100644
--- a/runtime/compiler/pylint.vim
+++ b/runtime/compiler/pylint.vim
@@ -1,13 +1,21 @@
 " Vim compiler file
-" Compiler:    Pylint for Python
-" Maintainer: Daniel Moch <dan...@danielmoch.com>
-" Last Change: 2016 May 20
-"              2024 Apr 03 by The Vim Project (removed :CompilerSet definition)
-
-if exists("current_compiler")
-  finish
-endif
+" Compiler:     Pylint for Python
+" Maintainer:   Daniel Moch <dan...@danielmoch.com>
+" Last Change:  2024 Nov 07 by The Vim Project (added params variable)
+
+if exists("current_compiler") | finish | endif
 let current_compiler = "pylint"
 
-CompilerSet makeprg=pylint\ --output-format=text\ 
--msg-template=\"{path}:{line}:{column}:{C}:\ [{symbol}]\ {msg}\"\ --reports=no
+let s:cpo_save = &cpo
+set cpo&vim
+
+" CompilerSet makeprg=ruff
+let &l:makeprg = 'pylint ' .
+      \ '--output-format=text --msg-template="{path}:{line}:{column}:{C}: 
[{symbol}] {msg}" --reports=no ' .
+      \ get(b:, "pylint_makeprg_params", get(g:, "pylint_makeprg_params",
+      \   (executable('getconf') ? '--jobs='..systemlist('getconf 
_NPROCESSORS_ONLN')[0] : '')))
+exe 'CompilerSet makeprg='..escape(&l:makeprg, ' "')
 CompilerSet errorformat=%A%f:%l:%c:%t:\ %m,%A%f:%l:\ %m,%A%f:(%l):\ 
%m,%-Z%p^%.%#,%-G%.%#
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/compiler/ruff.vim b/runtime/compiler/ruff.vim
new file mode 100644
index 000000000..11a69740d
--- /dev/null
+++ b/runtime/compiler/ruff.vim
@@ -0,0 +1,19 @@
+" Vim compiler file
+" Compiler:     Ruff (Python linter)
+" Maintainer:   @pbnj-dragon
+" Last Change:  2024 Nov 07
+
+if exists("current_compiler") | finish | endif
+let current_compiler = "ruff"
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+" CompilerSet makeprg=ruff
+let &l:makeprg= 'ruff check --output-format=concise '
+        \ ..get(b:, 'ruff_makeprg_params', get(g:, 'ruff_makeprg_params', 
'--preview'))
+exe 'CompilerSet makeprg='..escape(&l:makeprg, ' "')
+CompilerSet errorformat=%f:%l:%c:\ %m,%f:%l:\ %m,%f:%l:%c\ -\ %m,%f:
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt
index e7536446b..37f0a181d 100644
--- a/runtime/doc/quickfix.txt
+++ b/runtime/doc/quickfix.txt
@@ -1,4 +1,4 @@
-*quickfix.txt*  For Vim version 9.1.  Last change: 2024 Oct 05
+*quickfix.txt*  For Vim version 9.1.  Last change: 2024 Nov 07
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1405,6 +1405,33 @@ being checked.  To disable this set 
g:perl_compiler_force_warnings to a zero
 value.  For example: >
        let g:perl_compiler_force_warnings = 0
 
+MYPY TYPE CHECKER                                      *compiler-mypy*
+
+Commonly used compiler options can be added to 'makeprg' by setting the
+b/g:mypy_makeprg_params variable.  For example: >
+
+       let b:mypy_makeprg_params = "--warn-unused-ignores"
+
+The global default is "--strict --ignore-missing-imports".
+
+RUFF LINTER                                            *compiler-ruff*
+
+Commonly used compiler options can be added to 'makeprg' by setting the
+b/g:ruff_makeprg_params variable.  For example: >
+
+       let b:ruff_makeprg_params = "--max-line-length"..&textwidth
+
+The global default is "--preview".
+
+PYLINT LINTER                                          *compiler-pylint*
+
+Commonly used compiler options can be added to 'makeprg' by setting the
+b/g:pylint_makeprg_params variable.  For example: >
+
+       let b:pylint_makeprg_params = "--max-line-length"..&textwidth
+
+The global default is "--jobs=n" where n is the number of cores as reported
+by getconf, if executable. Otherwise it defaults to "".
 
 PYUNIT COMPILER                                                
*compiler-pyunit*
 
diff --git a/runtime/doc/tags b/runtime/doc/tags
index 37a8e266d..82a01e2d7 100644
--- a/runtime/doc/tags
+++ b/runtime/doc/tags
@@ -6560,9 +6560,12 @@ compiler-hpada   ft_ada.txt      /*compiler-hpada*
 compiler-javac quickfix.txt    /*compiler-javac*
 compiler-make  quickfix.txt    /*compiler-make*
 compiler-manx  quickfix.txt    /*compiler-manx*
+compiler-mypy  quickfix.txt    /*compiler-mypy*
 compiler-pandoc        quickfix.txt    /*compiler-pandoc*
 compiler-perl  quickfix.txt    /*compiler-perl*
+compiler-pylint        quickfix.txt    /*compiler-pylint*
 compiler-pyunit        quickfix.txt    /*compiler-pyunit*
+compiler-ruff  quickfix.txt    /*compiler-ruff*
 compiler-select        quickfix.txt    /*compiler-select*
 compiler-tex   quickfix.txt    /*compiler-tex*
 compiler-typst quickfix.txt    /*compiler-typst*

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
To view this discussion visit 
https://groups.google.com/d/msgid/vim_dev/E1t99NL-004hb3-3a%40256bit.org.

Raspunde prin e-mail lui