Repository Analysis

vim/vim

The official Vim repository

1.2 Likely human-written View on GitHub
1.2
Adjusted Score
1.2
Raw Score
100%
Time Factor
2026-05-30
Last Push
40,419
Stars
Vim Script
Language
819,076
Lines of Code
695
Files
903
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 21MEDIUM 5LOW 877

Pattern Findings

903 matches across 14 categories. Click a row to expand file-level details.

Over-Commented Block827 hits · 752 pts
SeverityFileLineSnippet
LOWruntime/tools/efm_perl.pl1#!/usr/bin/perl -w
LOWruntime/tools/efm_perl.pl21# set errorformat=%f:%l:%m
LOWruntime/tools/efm_perl.pl41# Version history:
LOWruntime/tools/xcmdsrv_client.c21#include <string.h>
LOWruntime/tools/demoserver.py1#!/usr/bin/python
LOWruntime/tools/pltags.pl1#!/usr/bin/env perl
LOWruntime/tools/vimspell.sh1#!/bin/sh
LOWruntime/doc/vim2html.pl1#!/usr/bin/env perl
LOWruntime/syntax/testdir/tools/regenerate_screendumps.sh1#!/bin/sh -e
LOWruntime/syntax/testdir/input/c.c21#if defined(MSWIN) && (!defined(FEAT_GUI_MSWIN) || defined(VIMDLL))
LOW…ntime/syntax/testdir/input/java_comments_markdown.java1// VIM_TEST_SETUP unlet! g:java_no_tab_space_error g:java_ignore_javadoc
LOW…ntime/syntax/testdir/input/java_comments_markdown.java21/**/ /*/ */ /* /*/ /*/*/ /*//*/ /// Markdown comment tests.
LOW…ntime/syntax/testdir/input/java_comments_markdown.java101 static final String MARKDOWN_COMMENT_B = "///";
LOW…ntime/syntax/testdir/input/java_comments_markdown.java121 /// public static void main(String[] args) { }
LOW…ntime/syntax/testdir/input/java_comments_markdown.java141 /// @see java.base/java.lang.Object#toString()
LOWruntime/syntax/testdir/input/c_string_literal.c1// C string literals
LOWruntime/syntax/testdir/input/sh_07.sh1#!/bin/dash
LOWruntime/syntax/testdir/input/sh_06.sh61
LOW.github/workflows/ci-windows.yml281 )
LOWsrc/scriptfile.c1421 else
LOWsrc/clientserver.c261# endif
LOWsrc/clientserver.c741
LOWsrc/bufwrite.c1461#endif
LOWsrc/bufwrite.c1821# define TRUNC_ON_OPEN 0
LOWsrc/bufwrite.c2201 // If we started writing, finish writing. Also when an error was
LOWsrc/bufwrite.c2221
LOWsrc/bufwrite.c2281 (void)mch_setperm(wfname, perm);
LOWsrc/gui_dwrite.h101#ifdef __cplusplus
LOWsrc/crypt.c201} sodium_state_T;
LOWsrc/crypt.c221# define sodium_init load_sodium
LOWsrc/diff.c21
LOWsrc/diff.c41# define DIFF_INLINE_NONE 0x2000 // no inline highlight
LOWsrc/optionstr.c41#endif
LOWsrc/option.c7621#endif
LOWsrc/installml.sh1#! /bin/sh
LOWsrc/osdef.sh1#! /bin/sh
LOWsrc/osdef.sh21# Make sure collation works as expected
LOWsrc/osdef.sh41#ifdef HAVE_FCNTL_H
LOWsrc/buffer.c1001#endif
LOWsrc/buffer.c2441# endif
LOWsrc/gui_w32_rc.h1//{{NO_DEPENDENCIES}}
LOWsrc/mouse.c661# if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) \
LOWsrc/mouse.c2641 else
LOWsrc/mouse.c2661 // instead of bytes.
LOWsrc/gui.c121 else
LOWsrc/gui.c441 gui.wide_bold_font = NOFONT;
LOWsrc/gui.c721#ifdef FEAT_MENU
LOWsrc/gui.c821# endif
LOWsrc/gui.c1541 // setting the size. (--mdcki)
LOWsrc/gui.c3501#endif
LOWsrc/gui.c3741 // changing the window size ourselves. This mostly happens when
LOWsrc/term.c41# define TPUTSFUNCAST (void (*)(unsigned int))
LOWsrc/term.c201extern char *UP, *BC, PC;
LOWsrc/term.c221static int initial_cursor_shape = 0;
LOWsrc/term.c1481# define DEFAULT_TERM (char_u *)"amiga"
LOWsrc/term.c1541#define TPR_CURSOR_BLINK 1
LOWsrc/term.c5221 // If no recognized terminal has set mouse behavior, assume xterm.
LOWsrc/term.c6701 */
LOWsrc/strings.c161#endif
LOWsrc/version.h21#define VIM_VERSION_BUILD 286
767 more matches not shown…
Cross-File Repetition16 hits · 80 pts
SeverityFileLineSnippet
HIGHruntime/syntax/testdir/input/python_strings_bytes.py0string with quotes ' and " and escapes \t and \040 and \xff and escapes \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python_strings_bytes.py0string with quotes ' and " and escapes \t and \040 and \xff and escapes \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python_strings_bytes.py0string with quotes ' and " and escapes \t and \040 and \xff and escapes \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python_strings_bytes.py0string with quotes ' and " and escapes \t and \040 and \xff and escapes \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0string with quotes ' and " and escapes \t and \040 and \xff and escapes \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0string with quotes ' and " and escapes \t and \040 and \xff and escapes \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python_strings_bytes.py0raw string with quotes ' and " and literal \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python_strings_bytes.py0raw string with quotes ' and " and literal \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0raw string with quotes ' and " and literal \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0raw string with quotes ' and " and literal \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0raw string with quotes ' and " and literal \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0raw string with quotes ' and " and literal \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0string with quotes ' and " and escapes \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0string with quotes ' and " and escapes \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0string with quotes ' and " and escapes \t and \040 and \xff and literal \u00a1 and \u00010605
HIGHruntime/syntax/testdir/input/python2_strings.py0string with quotes ' and " and escapes \t and \040 and \xff and literal \u00a1 and \u00010605
Synthetic Comment Markers5 hits · 38 pts
SeverityFileLineSnippet
HIGHruntime/syntax/testdir/tools/regenerate_screendumps.sh8# 4) Repeat steps 2) and 3) once or as many times as requested with the "$1"
HIGHsrc/strings.c3929 // truncate string if necessary as requested by precision
HIGHsrc/strings.c4495 // insert padding to the left as requested by min_field_width;
HIGHsrc/strings.c4517 // zero padding as requested by the precision or by the minimal
HIGHsrc/strings.c4544 // insert zero padding as requested by the precision or min
Unused Imports15 hits · 15 pts
SeverityFileLineSnippet
LOWruntime/tools/demoserver.py20
LOWsrc/testdir/test_makeencoding.py6
LOWsrc/testdir/test_makeencoding.py6
LOWsrc/testdir/test_channel_write.py7
LOWsrc/testdir/test_channel_pipe.py7
LOWsrc/testdir/test_channel_lsp.py8
LOWsrc/testdir/test_channel.py8
LOWsrc/testdir/test_channel_unix.py8
LOWsrc/testdir/test_channel_dap.py8
LOWsrc/testdir/test_netbeans.py8
LOWsrc/testdir/test_netbeans.py10
LOWsrc/testdir/test_netbeans.py11
LOWsrc/testdir/python3/module.py1
LOWsrc/testdir/python2/module.py1
LOWsrc/testdir/python_after/after.py1
Slop Phrases7 hits · 10 pts
SeverityFileLineSnippet
LOWsrc/list.c312 * It is not initialized, don't forget to set v_lock.
LOWsrc/findfile.c37 * with some new parameters. Don't forget to pass your old search context to
LOWsrc/findfile.c235 * Don't forget to clean up by calling vim_findfile_cleanup() if you are done
LOWsrc/findfile.c753 * stack with a list (don't forget to leave partly searched directories on the
LOWsrc/alloc.c688 * Initialize a growing array. Don't forget to set ga_itemsize and
LOWsrc/memline.c4312 * Don't forget to copy the mark!
LOWsrc/version.c2062 * When adding features here, don't forget to update the list of
Hyper-Verbose Identifiers10 hits · 10 pts
SeverityFileLineSnippet
LOWruntime/tools/demoserver.py35class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):
LOWsrc/testdir/test_channel_lsp.py22class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):
LOWsrc/testdir/test_channel_lsp.py123 def send_hdr_with_negative_len(self, msgid, resp_dict):
LOWsrc/testdir/test_channel_lsp.py214 def do_server_req_in_middle_resp(self, payload):
LOWsrc/testdir/test_channel.py22class TestingRequestHandler(socketserver.BaseRequestHandler):
LOWsrc/testdir/test_channel.py238class ThreadedTCPRequestHandler(TestingRequestHandler):
LOWsrc/testdir/test_channel_unix.py27class ThreadedUnixRequestHandler(TestingRequestHandler):
LOWsrc/testdir/thread_util.py57 def _get_time_constraint_policy(default=False):
LOWsrc/testdir/thread_util.py73 def _set_time_constraint_policy(policy_info):
LOWsrc/testdir/test_netbeans.py22class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler):
Fake / Example Data7 hits · 10 pts
SeverityFileLineSnippet
LOWruntime/doc/insert.txt461 Lorem ipsum (dolor
LOWruntime/doc/insert.txt465 Lorem ipsum (dolor)
LOWruntime/doc/indent.txt683 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
LOWruntime/doc/indent.txt683 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
LOWruntime/doc/indent.txt689 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
LOWruntime/doc/indent.txt689 "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
LOWsrc/feature.h799// #define MODIFIED_BY "John Doe"
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippet
MEDIUMruntime/tools/pltags.pl56# Create a tag file line and push it on the list of found tags
MEDIUMruntime/tools/pltags.pl75 # Create a tag line
MEDIUMruntime/syntax/testdir/input/sh_06.sh51# Create a backup using fbackup/frecover
AI Slop Vocabulary3 hits · 8 pts
SeverityFileLineSnippet
LOWsrc/vim.h1155#define ECMD_ADDBUF 0x10 // don't edit, just add to buffer list
MEDIUMsrc/highlight.c4912 // Temporarily utilize 28 more hl entries:
MEDIUMsrc/testdir/test_channel_unix.py38 # Signal the test harness we're ready, the port value has no meaning.
Verbosity Indicators3 hits · 4 pts
SeverityFileLineSnippet
LOWsrc/debugger.c1178 // We need to check if this line is actually executed in do_one_cmd()
LOWsrc/regexp_bt.c3872 // When we run into BACK we need to check if we don't keep
LOWsrc/job.c860 * Return TRUE if we need to check if the process of "job" has ended.
Deep Nesting4 hits · 4 pts
SeverityFileLineSnippet
LOWruntime/tools/demoserver.py37
LOWsrc/testdir/test_channel.py23
LOWsrc/testdir/test_channel_dap.py90
LOWsrc/testdir/test_netbeans.py24
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWruntime/tools/efm_perl.pl23# Usage:
Excessive Try-Catch Wrapping1 hit · 1 pts
SeverityFileLineSnippet
LOWsrc/testdir/test_channel_pipe.py35 except Exception:
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippet
LOWsrc/testdir/test_channel_dap.py77 def handle_request(self, msg):