Repository Analysis

xournalpp/xournalpp

Xournal++ is a handwriting notetaking software with PDF annotation support. Written in C++ with GTK3, supporting Linux (e.g. Ubuntu, Debian, Arch, SUSE), macOS and Windows 10. Supports pen input from devices such as Wacom Tablets.

2.1 Likely human-written View on GitHub
2.1
Adjusted Score
2.1
Raw Score
100%
Time Factor
2026-05-30
Last Push
14,804
Stars
C++
Language
113,257
Lines of Code
948
Files
225
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 3LOW 222

Pattern Findings

225 matches across 8 categories. Click a row to expand file-level details.

Over-Commented Block200 hits · 200 pts
SeverityFileLineSnippet
LOWtest/unit_tests/util/ObjectIOStreamTest.cpp1#include <array>
LOWtest/unit_tests/control/LoadHandlerTest.cpp21#include <vector>
LOW.github/workflows/create-installers.yml1name: Create Installers
LOWsrc/CMakeLists.txt101# Generate icons
LOWsrc/core/plugin/Plugin.cpp1#include "Plugin.h"
LOWsrc/core/plugin/PluginController.cpp1#include "PluginController.h"
LOWsrc/core/plugin/luapi_application.h21#include <pango/pango.h>
LOWsrc/core/plugin/luapi_application.h41#include "gui/MainWindow.h"
LOWsrc/core/plugin/luapi_application.h61#include "util/PathUtil.h" // for clea...
LOWsrc/core/plugin/luapi_application.h1541 }
LOWsrc/core/plugin/luapi_application.h3001 lua_getfield(L, 1, "pngDpi");
LOWsrc/core/plugin/luapi_application.h3181
LOWsrc/core/pdf/popplerapi/PopplerGlibPage.cpp1#include "PopplerGlibPage.h"
LOWsrc/core/pdf/base/HybridPdfExport.cpp1#include "HybridPdfExport.h"
LOWsrc/core/pdf/base/XojPdfPage.h81 /// selection style.
LOWsrc/core/pdf/base/QPdfExport.cpp1#include "QPdfExport.h"
LOWsrc/core/pdf/base/XojCairoPdfExport.cpp1#include "XojCairoPdfExport.h"
LOWsrc/core/undo/FontUndoAction.cpp1#include "FontUndoAction.h"
LOWsrc/core/undo/RecognizerUndoAction.cpp1#include "RecognizerUndoAction.h"
LOWsrc/core/undo/InsertUndoAction.cpp1#include "InsertUndoAction.h"
LOWsrc/core/undo/TextBoxUndoAction.cpp1#include "TextBoxUndoAction.h"
LOWsrc/core/undo/ScaleUndoAction.cpp1#include "ScaleUndoAction.h"
LOWsrc/core/undo/EraseUndoAction.cpp1#include "EraseUndoAction.h"
LOWsrc/core/undo/MoveSelectionToLayerUndoAction.cpp1#include "MoveSelectionToLayerUndoAction.h"
LOWsrc/core/undo/LineStyleUndoAction.cpp1#include "LineStyleUndoAction.h"
LOWsrc/core/undo/MoveUndoAction.cpp1#include "MoveUndoAction.h"
LOWsrc/core/undo/UndoRedoHandler.cpp1#include "UndoRedoHandler.h"
LOWsrc/core/undo/SizeUndoAction.cpp1#include "SizeUndoAction.h"
LOWsrc/core/audio/PortAudioConsumer.cpp1#include "PortAudioConsumer.h"
LOWsrc/core/audio/VorbisConsumer.cpp1#include "VorbisConsumer.h"
LOWsrc/core/audio/VorbisProducer.cpp1#include "VorbisProducer.h"
LOWsrc/core/gui/Layout.cpp1#include "Layout.h"
LOWsrc/core/gui/PageView.cpp1#include "PageView.h"
LOWsrc/core/gui/PageView.cpp21#include "control/Control.h" // for Control
LOWsrc/core/gui/PageView.cpp41#include "control/tools/RulerHandler.h" // for RulerHandler
LOWsrc/core/gui/PageView.cpp61#include "model/XojPage.h" // for XojPage
LOWsrc/core/gui/PageView.cpp81#include "view/DebugShowRepaintBounds.h" // for IF_DEBUG_REPAINT
LOWsrc/core/gui/MainWindow.cpp1#include "MainWindow.h"
LOWsrc/core/gui/MainWindow.cpp21#include "gui/GladeGui.h" // for GladeGui
LOWsrc/core/gui/MainWindow.cpp41#include "util/gtk4_helper.h" // for gtk_widget_get_width
LOWsrc/core/gui/PdfFloatingToolbox.cpp1#include "PdfFloatingToolbox.h"
LOWsrc/core/gui/PdfFloatingToolbox.cpp21#include "model/Layer.h" // for Layer
LOWsrc/core/gui/SearchBar.cpp1#include "SearchBar.h"
LOWsrc/core/gui/FloatingToolbox.cpp1#include "FloatingToolbox.h"
LOWsrc/core/gui/XournalView.cpp1#include "XournalView.h"
LOWsrc/core/gui/XournalView.cpp21#include "control/tools/CursorSelectionType.h" // for CURSOR_SELECTION_NONE
LOWsrc/core/gui/PageView.h21#include <gdk/gdk.h> // for GdkEventKey, GdkRGBA, GdkRectangle
LOWsrc/core/gui/XournalppCursor.cpp1#include "XournalppCursor.h"
LOWsrc/core/gui/sidebar/Sidebar.cpp1#include "Sidebar.h"
LOWsrc/core/gui/sidebar/indextree/SidebarIndexPage.cpp1#include "SidebarIndexPage.h"
LOW…core/gui/sidebar/previews/page/SidebarPreviewPages.cpp1#include "SidebarPreviewPages.h"
LOW…re/gui/sidebar/previews/layer/SidebarPreviewLayers.cpp1#include "SidebarPreviewLayers.h"
LOW…/gui/sidebar/previews/base/SidebarPreviewBaseEntry.cpp1#include "SidebarPreviewBaseEntry.h"
LOW…/core/gui/sidebar/previews/base/SidebarPreviewBase.cpp1#include "SidebarPreviewBase.h"
LOWsrc/core/gui/inputdevices/StylusInputHandler.cpp1//
LOWsrc/core/gui/inputdevices/MouseInputHandler.cpp1//
LOWsrc/core/gui/inputdevices/TouchDrawingInputHandler.cpp1//
LOWsrc/core/gui/inputdevices/GeometryToolInputHandler.cpp1#include "GeometryToolInputHandler.h"
LOWsrc/core/gui/inputdevices/TouchInputHandler.cpp1//
LOWsrc/core/gui/inputdevices/HandRecognition.cpp1#include "HandRecognition.h"
140 more matches not shown…
Verbosity Indicators6 hits · 12 pts
SeverityFileLineSnippet
LOWmac-setup/CI_jhbuild.sh6### Step 1: install jhbuild
LOWmac-setup/CI_jhbuild.sh119### Step 2: Download modules' sources
LOWmac-setup/CI_jhbuild.sh130### Step 3: bootstrap
LOWmac-setup/CI_jhbuild.sh139### Step 4: build gtk (~15 minutes on a Mac Mini M1 w/ 8 cores)
LOWmac-setup/CI_jhbuild.sh149### Step 5: build xournalpp deps
LOWmac-setup/CI_jhbuild.sh159### Step 6: build binary blob
Redundant / Tautological Comments6 hits · 11 pts
SeverityFileLineSnippet
LOWmac-setup/CI_jhbuild.sh15 # Print the value corresponding to the provided lockfile key to stdout
LOWscripts/release_helper.sh91# Check if branch already exists
LOWscripts/release_helper.sh101# Check if release already exists
LOWscripts/release_helper.sh111# Check if git is in detached head mode
LOWscripts/release_helper.sh268 # Check if branch already exists
LOWscripts/release_helper.sh273 # Check if hotfix was already released
Self-Referential Comments3 hits · 9 pts
SeverityFileLineSnippet
MEDIUMmac-setup/build-dmg.sh14# Create the image.
MEDIUMscripts/release_helper.sh388 # Create the commit-msg hook
MEDIUMscripts/release_helper.sh464 # Create the pre-commit hook
Hyper-Verbose Identifiers4 hits · 4 pts
SeverityFileLineSnippet
LOWtest/unit_tests/util/RAIIWrappersTest.cpp20class TestDataHandler {
LOWscripts/compare_license.py32def get_files_from_copyright_format(file: str) -> Set[str]:
LOWscripts/compare_license.py52def get_files_containing_copyright_or_license():
LOWscripts/compare_license.py73def get_source_files_missing_license_of_header(scanned_files:Set[str], all_files:Set[str]) -> Set[str]:
Deep Nesting3 hits · 3 pts
SeverityFileLineSnippet
LOWscripts/lua_def_file.py8
LOWscripts/lua_def_file.py47
LOWscripts/lua_def_file.py159
Slop Phrases2 hits · 3 pts
SeverityFileLineSnippet
LOWsrc/core/gui/toolbarMenubar/AbstractToolItem.h25 // If you add a category, don't forget to give it a label in ToolbarCustomizeDialog.cpp.
LOWsrc/util/include/util/GtkUtil.h44 * To circumvent this, we make our own GAction/RadioButton interactions. Don't forget to group the buttons together.
Unused Imports1 hit · 1 pts
SeverityFileLineSnippet
LOWscripts/compare_license.py30