Repository Analysis

ckeditor/ckeditor5

Powerful rich text editor framework with a modular architecture, modern integrations, and features like collaborative editing.

3.1 Likely human-written View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of ckeditor/ckeditor5, a JavaScript project with 10,446 GitHub stars. SynthScan v2.0 examined 1,076,797 lines of code across 4759 source files, recording 1842 pattern matches distributed across 14 syntactic categories. The overall adjusted score of 3.1 places this repository in the Likely human-written band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

3.1
Adjusted Score
3.1
Raw Score
100%
Time Factor
2026-07-14
Last Push
10.4K
Stars
JavaScript
Language
1.1M
Lines of Code
4.8K
Files
1.8K
Pattern Hits
2026-07-14
Scan Date
0.03
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 118HIGH 7MEDIUM 82LOW 1635

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1842 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hallucination Indicators118 hits · 1250 pts
SeverityFileLineSnippetContext
CRITICAL…cs/_snippets/support/managing-ckeditor-logo-styling.js39 editor.ui.view.body._bodyCollectionContainer.classList.add( 'custom-theme-editor-wrapper' );CODE
CRITICAL…sts/imagetextalternative/ui/textalternativeformview.js58 expect( header.children.last.element.classList.contains( 'ck-form__header__label' ) ).toBe( true );CODE
CRITICAL…keditor5-image/tests/imageresize/imageresizehandles.js1103 editor.editing.view.document.selection.getSelectedElement()CODE
CRITICAL…mage/tests/imageresize/ui/imagecustomresizeformview.js50 expect( header.children.last.element.classList.contains( 'ck-form__header__label' ) ).toBe( true );CODE
CRITICAL…ckeditor5-image/src/image/replaceimagesourcecommand.ts38 const element = this.editor.model.document.selection.getSelectedElement()!;CODE
CRITICAL…ckeditor5-image/src/image/replaceimagesourcecommand.ts52 const image = this.editor.model.document.selection.getSelectedElement()!;CODE
CRITICAL…ages/ckeditor5-editor-classic/tests/classiceditorui.js719 editorWithUi.ui.view.stickyPanel.contentPanelElement.getBoundingClientRect.mockReturnValue( {CODE
CRITICAL…ages/ckeditor5-editor-classic/tests/classiceditorui.js925 const range = editor.editing.view.document.selection.getFirstRange();CODE
CRITICAL…ages/ckeditor5-editor-classic/tests/classiceditorui.js973 const range = editor.editing.view.document.selection.getFirstRange();CODE
CRITICAL…ages/ckeditor5-editor-classic/tests/classiceditorui.js1026 const range = editor.editing.view.document.selection.getFirstRange();CODE
CRITICALpackages/ckeditor5-alignment/src/alignmentcommand.ts37 const firstBlock = first( this.editor.model.document.selection.getSelectedBlocks() )!;CODE
CRITICALpackages/ckeditor5-widget/src/widgetresize/resizer.ts250 this._options.editor.editing.view.change( () => {CODE
CRITICALpackages/ckeditor5-widget/src/widgetresize/resizer.ts325 this._options.editor.editing.view.change( writer => {CODE
CRITICALpackages/ckeditor5-widget/src/widgetresize/resizer.ts448 return this._options.editor.editing.view.domConverter.mapViewToDom( this._viewResizerWrapper! ) as any;CODE
CRITICALpackages/ckeditor5-font/tests/integration.js232 dropdown.colorSelectorView.colorPickerFragmentView.colorPickerView.picker.dispatchEvent( event );CODE
CRITICALpackages/ckeditor5-font/tests/integration.js266 dropdown.colorSelectorView.colorPickerFragmentView.colorPickerView.picker.dispatchEvent( event );CODE
CRITICALpackages/ckeditor5-font/tests/ui/colorui.js165 const secondButton = dropdown.colorSelectorView.colorGridsFragmentView.staticColorsGrid.items.get( 1 );CODE
CRITICALpackages/ckeditor5-font/tests/fontsize/fontsizeui.js342 buttonSmall = subMenu.panelView.children.first.items.get( 1 ).children.first;CODE
CRITICAL…ckages/ckeditor5-font/tests/fontfamily/fontfamilyui.js346 buttonArial = subMenu.panelView.children.first.items.get( 1 ).children.first;CODE
CRITICALpackages/ckeditor5-bookmark/tests/bookmarkui.js751 expect( balloon.view.pin.mock.calls.at( -1 )[ 0 ].target ).toBe( BookmarkDomElement );CODE
CRITICALpackages/ckeditor5-bookmark/tests/bookmarkui.js769 expect( balloon.view.pin.mock.calls.at( -1 )[ 0 ].target ).not.toBe( BookmarkDomElement );CODE
CRITICALpackages/ckeditor5-bookmark/tests/bookmarkui.js774 expect( balloon.view.pin.mock.calls.at( -1 )[ 0 ].target ).toBe( newBookmarkDomElement );CODE
CRITICAL…ckeditor5-editor-multi-root/tests/multirooteditorui.js168 expect( view.editables.foo.element.classList.contains( 'ck-editor__editable_inline-root' ) ).toBe( false );CODE
CRITICAL…ckeditor5-editor-multi-root/tests/multirooteditorui.js169 expect( view.editables.bar.element.classList.contains( 'ck-editor__editable_inline-root' ) ).toBe( false );CODE
CRITICAL…tor-multi-root/tests/manual/multirooteditor-dynamic.js104 editor.ui.view.toolbar.element.remove();CODE
CRITICAL…tor-multi-root/tests/manual/multirooteditor-dynamic.js105 editor.ui.view.menuBarView.element.remove();CODE
CRITICAL…keditor5-editor-multi-root/tests/manual/placeholder.js50 editor.ui.view.toolbar.element.remove();CODE
CRITICAL…ges/ckeditor5-editor-multi-root/tests/manual/memory.js48 editor.ui.view.toolbar.element.remove();CODE
CRITICAL…tor5-editor-multi-root/tests/manual/multirooteditor.js80 editor.ui.view.toolbar.element.remove();CODE
CRITICAL…tor5-editor-multi-root/tests/manual/multirooteditor.js81 editor.ui.view.menuBarView.element.remove();CODE
CRITICAL…or-multi-root/tests/manual/multirooteditor-detached.js72 editor.ui.view.toolbar.element.remove();CODE
CRITICAL…or-multi-root/tests/manual/multirooteditor-detached.js73 editor.ui.view.menuBarView.element.remove();CODE
CRITICAL…ges/ckeditor5-editor-multi-root/src/multirooteditor.ts309 * editor.ui.view.toolbar.element.remove();COMMENT
CRITICAL…characters/tests/ui/specialcharacterscategoriesview.js52 view._dropdownView.fieldView.listView.items.last.children.first.fire( 'execute' );CODE
CRITICAL…characters/tests/ui/specialcharacterscategoriesview.js94 groupDropdownView.listView.items.last.children.first.fire( 'execute' );CODE
CRITICALpackages/ckeditor5-fullscreen/tests/fullscreenui.js100 editor.ui.view.toolbar.items.add( button );CODE
CRITICALpackages/ckeditor5-fullscreen/tests/fullscreenui.js183 editor.ui.view.toolbar.items.add( button );CODE
CRITICAL…ckages/ckeditor5-fullscreen/tests/fullscreenediting.js112 editor.ui.view.toolbar.items.add( buttonView );CODE
CRITICAL…ckages/ckeditor5-fullscreen/tests/manual/fullscreen.ts243 editorInstance.ui.view.toolbar.element.remove();CODE
CRITICAL…ckages/ckeditor5-fullscreen/tests/manual/fullscreen.ts246 editorInstance.ui.view.menuBarView.element.remove();CODE
CRITICAL…ckages/ckeditor5-fullscreen/tests/manual/fullscreen.ts288 editorInstance.ui.view.toolbar.element.remove();CODE
CRITICAL…ckages/ckeditor5-fullscreen/tests/manual/fullscreen.ts291 editorInstance.ui.view.menuBarView.element.remove();CODE
CRITICAL…or5-fullscreen/tests/handlers/abstracteditorhandler.js219 expect( global.document.body.parentElement.classList.contains( 'ck-fullscreen' ) ).toBe( false );CODE
CRITICAL…tor5-fullscreen/src/handlers/decouplededitorhandler.ts47 this._editor.ui.view.toolbar.switchBehavior(CODE
CRITICAL…itor5-fullscreen/src/handlers/abstracteditorhandler.ts445 this._editor.ui.view.toolbar.switchBehavior(CODE
CRITICAL…itor5-fullscreen/src/handlers/abstracteditorhandler.ts757 this._editor.ui.view.menuBarView.disable();CODE
CRITICAL…itor5-fullscreen/src/handlers/abstracteditorhandler.ts791 this._editor.ui.view.menuBarView.enable();CODE
CRITICAL…or5-list/tests/listproperties/ui/listpropertiesview.js275 expect( view.stylesView.element.firstChild.classList.contains( 'ck-button' ) ).toBe( true );CODE
CRITICAL…or5-list/tests/listproperties/ui/listpropertiesview.js276 expect( view.stylesView.element.lastChild.classList.contains( 'ck-button' ) ).toBe( true );CODE
CRITICAL…ges/ckeditor5-list/src/legacylist/legacylistcommand.ts239 const listItem = first( this.editor.model.document.selection.getSelectedBlocks() );CODE
CRITICAL…s/ckeditor5-list/src/legacylist/legacyindentcommand.ts106 const listItem = first( this.editor.model.document.selection.getSelectedBlocks() );CODE
CRITICAL…ist/src/legacylistproperties/legacyliststartcommand.ts57 const listItem = this.editor.model.document.selection.getFirstPosition()!.parent;CODE
CRITICAL…/src/legacylistproperties/legacylistreversedcommand.ts57 const listItem = this.editor.model.document.selection.getFirstPosition()!.parent;CODE
CRITICAL…ist/src/legacylistproperties/legacyliststylecommand.ts85 const listItem = this.editor.model.document.selection.getFirstPosition()!.parent;CODE
CRITICAL…/ckeditor5-list/src/listproperties/liststylecommand.ts108 const listItem = first( this.editor.model.document.selection.getSelectedBlocks() );CODE
CRITICALpackages/ckeditor5-clipboard/src/dragdroptarget.ts364 const domElement = this.editor.editing.view.domConverter.mapViewToDom( viewElement )!;CODE
CRITICAL…ckeditor5-editor-balloon/tests/manual/ballooneditor.js64 editor.ui.view.menuBarView.element.remove();CODE
CRITICALpackages/ckeditor5-ui/tests/dropdown/utils.js263 dropdownView.listView.items.first.children.first.fire( 'execute' );CODE
CRITICALpackages/ckeditor5-ui/tests/dropdown/utils.js1305 listItems.last.items.first.children.first.fire( 'execute' );CODE
CRITICALpackages/ckeditor5-ui/tests/menubar/utils.js375 const parentMenuAAListItem = menuA.panelView.children.first.items.get( 1 );CODE
58 more matches not shown…
Fake / Example Data701 hits · 827 pts
SeverityFileLineSnippetContext
LOWdocs/framework/custom-editor-creator.md280 sourceElement && sourceElement.tagName.toLowerCase() === 'textarea' && sourceElement.getAttribute( 'placeholder' );CODE
LOWdocs/framework/architecture/ui-library.md50 // The HTML "placeholder" attribute is also controlled by the observable.COMMENT
LOWdocs/framework/architecture/ui-library.md51 placeholder: bind.to( 'placeholder' ),CODE
LOWdocs/framework/architecture/ui-library.md126view.bind( 'placeholder', 'isEnabled' ).to( observable, 'placeholderText', 'isEnabled' );CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.html16 <p>Hello <span class="placeholder">{first name}</span> <span class="placeholder">{surname}</span>!</p>CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js37 const placeholder = writer.createElement( 'placeholder', {CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js54 const isAllowed = model.schema.checkChild( selection.focus.parent, 'placeholder' );CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js72 // The "placeholder" dropdown must be registered among the UI components of the editorCOMMENT
LOWdocs/_snippets/framework/tutorials/inline-widget.js74 editor.ui.componentFactory.add( 'placeholder', locale => {CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js89 const command = editor.commands.get( 'placeholder' );CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js94 editor.execute( 'placeholder', { value: evt.source.commandParam } );CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js134 this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) );CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js138 viewToModelPositionOutsideModelElement( this.editor.model, viewElement => viewElement.hasClass( 'placeholder' ) )CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js148 schema.register( 'placeholder', {CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js172 classes: [ 'placeholder' ]CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js178 return modelWriter.createElement( 'placeholder', { name } );CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js183 model: 'placeholder',CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js193 model: 'placeholder',CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js202 class: 'placeholder'CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js221 '|', 'placeholder',CODE
LOWdocs/updating/update-to-48.md300* `config.get( 'placeholder' )` -> `config.get( 'roots.main.placeholder' )`COMMENT
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md215 classes: [ 'placeholder' ]CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md221 return modelWriter.createElement( 'placeholder', { name } );CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md226 model: 'placeholder',CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md236 model: 'placeholder',CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md245 class: 'placeholder'CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md461 // The "placeholder" dropdown must be registered among the UI components of the editorCOMMENT
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md478 const command = editor.commands.get( 'placeholder' );CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md483 editor.execute( 'placeholder', { value: evt.source.commandParam } );CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md526 // Insert the "placeholder" dropdown into the editor toolbar.COMMENT
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md10In this tutorial, you will learn how to implement an inline widget. You will build a "placeholder" feature that allows tCODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md161 schema.register( 'placeholder', {CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md181<span class="placeholder">{name}</span>CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md294 const placeholder = writer.createElement( 'placeholder', {CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md308 const isAllowed = model.schema.checkChild( selection.focus.parent, 'placeholder' );CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md337 this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) );CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md357editor.execute( 'placeholder', { value: 'time' } );CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md381foo<span class="placeholder">{name}</span>barCODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md413 this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) );CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md418 viewToModelPositionOutsideModelElement( this.editor.model, viewElement => viewElement.hasClass( 'placeholder' ) )CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md463 editor.ui.componentFactory.add( 'placeholder', locale => {CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md527 toolbar: [ 'heading', 'bold', 'italic', 'numberedList', 'bulletedList', '|', 'placeholder' ]CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md550 this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) );CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md554 viewToModelPositionOutsideModelElement( this.editor.model, viewElement => viewElement.hasClass( 'placeholder' ) )CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md585 editor.ui.componentFactory.add( 'placeholder', locale => {CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md604 toolbar: [ 'heading', 'bold', 'italic', 'numberedList', 'bulletedList', '|', 'placeholder' ],CODE
LOWpackages/ckeditor5-enter/tests/manual/enter.manual.html47 Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br />CODE
LOWpackages/ckeditor5-enter/tests/manual/enter.manual.html47 Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br />CODE
LOWpackages/ckeditor5-emoji/tests/emojipicker.js453 '<paragraph>Lorem Ipsum is simply dummy [text] of the printing and typesetting industry.</paragraph>'CODE
LOWpackages/ckeditor5-emoji/tests/emojipicker.js459 '<paragraph>Lorem Ipsum is simply dummy [text] of the printing and typesetting industry.</paragraph>'CODE
LOWpackages/ckeditor5-mention/tests/mention.js64 const text = new ViewText( viewDocument, 'John Doe' );CODE
LOWpackages/ckeditor5-mention/tests/mention.js74 expect( mentionAttribute ).toHaveProperty( '_text', 'John Doe' );CODE
LOWpackages/ckeditor5-mention/tests/mention.js78 const text = new ViewText( viewDocument, 'John Doe' );CODE
LOWpackages/ckeditor5-mention/tests/mention.js89 expect( mentionAttribute ).toHaveProperty( '_text', 'John Doe' );CODE
LOWpackages/ckeditor5-mention/tests/manual/mention.js22 editor.model.schema.register( 'placeholder', {CODE
LOWpackages/ckeditor5-mention/tests/manual/mention.js30 model: 'placeholder',CODE
LOWpackages/ckeditor5-mention/tests/manual/mention.js39 model: 'placeholder',CODE
LOWpackages/ckeditor5-mention/tests/manual/mention.js44 view: 'placeholder',CODE
LOWpackages/ckeditor5-mention/tests/manual/mention.js56 return writer.createElement( 'placeholder', { type } );CODE
LOWpackages/ckeditor5-mention/tests/manual/mention.js62 viewToModelPositionOutsideModelElement( editor.model, viewElement => viewElement.name == 'placeholder' )CODE
641 more matches not shown…
Hyper-Verbose Identifiers492 hits · 500 pts
SeverityFileLineSnippetContext
LOWdocs/_snippets/shared-helpers.js110export function getViewportTopOffsetConfig() {CODE
LOWdocs/_snippets/shared-helpers.js123export function setViewportTopOffsetDynamically( editor ) {CODE
LOWdocs/_snippets/framework/tutorials/inline-widget.js103function getDropdownItemsDefinitions( placeholderNames ) {CODE
LOWdocs/_snippets/framework/tutorials/block-widget.js303function getClosestSelectedSimpleBoxElement( selection ) {CODE
LOWdocs/_snippets/framework/tutorials/block-widget.js329function getClosestSimpleBoxWidget( selection ) {CODE
LOWdocs/_snippets/examples/bottom-toolbar-editor.js241function overrideDropdownPositionsToNorth( editor, toolbarView ) {CODE
LOW…/getting-started/integrations-cdn/react-default-cdn.md147function CKEditorNestedInstanceDemo( { name, content } ) {CODE
LOWdocs/examples/custom/bottom-toolbar-editor.md290function overrideDropdownPositionsToNorth( editor, toolbarView ) {CODE
LOWdocs/tutorials/widgets/implementing-a-block-widget.md912function getClosestSelectedSimpleBoxElement( selection ) {CODE
LOWdocs/tutorials/widgets/implementing-a-block-widget.md1134function getClosestSimpleBoxWidget( selection ) {CODE
LOWdocs/tutorials/widgets/implementing-an-inline-widget.md492function getDropdownItemsDefinitions( placeholderNames ) {CODE
LOWdocs/assets/global.js44function createClipboardInputNotification() {CODE
LOWdocs/assets/global.js73function getViewportTopOffsetConfig() {CODE
LOW…-indent/src/integrations/indentblocklistintegration.ts331function listBlockIndentUpcastConverter(CODE
LOW…-indent/src/integrations/indentblocklistintegration.ts380function ensureIndentValuesConsistency(CODE
LOWpackages/ckeditor5-enter/src/shiftenter.ts106function removeStaleSoftBreakAttributes( writer: ModelWriter ): boolean {CODE
LOWpackages/ckeditor5-emoji/tests/emojimention.js20function mockEmojiRepositoryValues( editor ) {CODE
LOWpackages/ckeditor5-emoji/tests/emojipicker.js20function mockEmojiRepositoryValues( editor ) {CODE
LOWpackages/ckeditor5-style/src/styleutils.ts328function normalizedStyleDefinitionToMatcherPattern( { element, classes }: StyleDefinition ): MatcherObjectPattern {CODE
LOWpackages/ckeditor5-style/src/stylecommand.ts258function getDefinitionExclusiveClasses(CODE
LOW…ricted-editing/tests/manual/restrictedediting-focus.js54async function startRestrictedEditingMode() {CODE
LOW…5-restricted-editing/tests/manual/restrictedediting.js90async function startRestrictedEditingMode() {CODE
LOW…-editing/docs/_snippets/features/restricted-editing.js102async function startRestrictedEditingMode() {CODE
LOW…-editing/src/restrictededitingexceptionblockcommand.ts201function findExceptionContentBlock( element: ModelElement ): ModelElement | null {CODE
LOW…5-restricted-editing/src/standardeditingmodeediting.ts199function registerFallbackUpcastConverter( editor: Editor ) {CODE
LOW…restricted-editing/src/restrictededitingmodeediting.ts561function isDeleteCommandOnMarkerBoundaries( commandName: string, selection: ModelDocumentSelection, markerRange: ModelRaCODE
LOW…restricted-editing/src/restrictededitingmodeediting.ts621function disallowInputExecForWrongRange( editor: Editor ): GetCallback<InsertTextCommandExecuteEvent> {CODE
LOW…restricted-editing/src/restrictededitingmodeediting.ts638function isRangeInsideSingleMarker( editor: Editor, range: ModelRange ) {CODE
LOW…restricted-editing/src/restrictededitingmodeediting.ts653function ensureNewMarkerIsFlatPostFixer( editor: Editor ): ModelPostFixer {CODE
LOW…ricted-editing/src/restrictededitingmode/converters.ts40export function setupExceptionHighlighting( editor: Editor ): void {CODE
LOW…ricted-editing/src/restrictededitingmode/converters.ts96export function resurrectCollapsedMarkerPostFixer( editor: Editor ): ModelPostFixer {CODE
LOW…ricted-editing/src/restrictededitingmode/converters.ts120export function extendMarkerOnTypingPostFixer( editor: Editor ): ModelPostFixer {CODE
LOW…-restricted-editing/src/restrictededitingmode/utils.ts37export function isPositionInRangeBoundaries( range: ModelRange, position: ModelPosition ): boolean {CODE
LOWpackages/ckeditor5-utils/tests/_utils/utils.js99export function expectToThrowCKEditorError( fn, message, editorThatShouldBeFindableFromContext, data ) {CODE
LOWpackages/ckeditor5-utils/tests/_utils/utils.js123export async function expectToRejectWithCKEditorError( promise, message, editorThatShouldBeFindableFromContext, data ) {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js105 function testWithoutAncestorOffset() {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js235 function testWithOffsetAndAlignToTop() {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js235 function testWithOffsetAndAlignToTop() {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js300 function testWithOffsetAndAlignToTopAndForceScroll() {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js300 function testWithOffsetAndAlignToTopAndForceScroll() {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js837 function testWithViewportAndAncestorOffsets() {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js911 function testWithAlignToTopAndNoOffsets() {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js985 function testWithAlignToTopAndOffsets() {CODE
LOWpackages/ckeditor5-utils/tests/dom/scroll.js1059 function testWithAlignToTopOffsetsAndForceScroll() {CODE
LOWpackages/ckeditor5-utils/tests/dom/position.js1029function setElementTargetPlayground() {CODE
LOWpackages/ckeditor5-utils/tests/dom/position.js1070function setElementTargetLimiterPlayground() {CODE
LOWpackages/ckeditor5-utils/tests/dom/position.js1120function setElementTargetBigLimiterPlayground() {CODE
LOWpackages/ckeditor5-utils/src/keyboard.ts191export function getLocalizedArrowKeyCodeDirection(CODE
LOWpackages/ckeditor5-utils/src/ckeditorerror.ts172function getLinkToDocumentationMessage( errorName: string ): string {CODE
LOWpackages/ckeditor5-utils/src/focustracker.ts333function isExternalViewSubtreeFocused( subTreeRoot: Element, view: ViewWithFocusTracker ): boolean {CODE
LOW…s/ckeditor5-utils/src/areconnectedthroughproperties.ts13export function areConnectedThroughProperties( obj1: object, obj2: object ): boolean {CODE
LOWpackages/ckeditor5-utils/src/fastdiff.ts256function changeIndexesToAtomicChanges( changeIndexes: ChangeIndexes, newLength: number ): Array<DiffResult> {CODE
LOWpackages/ckeditor5-utils/src/emittermixin.ts818function getCallbacksListsForNamespace( source: EmitterInternal, eventName: string ): Array<EventNode[ 'callbacks' ]> {CODE
LOW…es/ckeditor5-utils/src/isfeatureblockedbylicensekey.ts16export function isFeatureBlockedByLicenseKey( licensePayload: Record<string, any>, licenseFeatureCode: string ): booleanCODE
LOWpackages/ckeditor5-utils/src/observablemixin.ts721function updateBoundObservableProperty( observable: ObservableInternal, propertyName: string ): void {CODE
LOWpackages/ckeditor5-utils/src/parsedimensionwithunit.ts25export function tryParseDimensionWithUnit( dimension: string | null | undefined ): DimensionWithUnit | null {CODE
LOWpackages/ckeditor5-utils/src/env.ts220export function isRegExpUnicodePropertySupported(): boolean {CODE
LOW…editor5-utils/src/dom/findclosestscrollableancestor.ts18export function findClosestScrollableAncestor( domElement: HTMLElement ): HTMLElement | null {CODE
LOWpackages/ckeditor5-utils/src/dom/position.ts184function getVisibleViewportIntersectionRect( source: RectSource, viewportRect: Rect ): Rect | null {CODE
LOWpackages/ckeditor5-utils/src/dom/position.ts197export function getConstrainedViewportRect( viewportOffsetConfig: DomOptimalPositionOptions[ 'viewportOffsetConfig' ] ):CODE
432 more matches not shown…
Over-Commented Block348 hits · 312 pts
SeverityFileLineSnippetContext
LOWdocs/tutorials/widgets/implementing-a-block-widget.md841 inheritAllFrom: '$blockObject',COMMENT
LOWpackages/ckeditor5-enter/src/shiftentercommand.ts101 insertBreak( model, writer, range.end, selection.getAttributes() );COMMENT
LOWpackages/ckeditor5-utils/tests/focustracker.js561 childViewA.element.remove();COMMENT
LOWpackages/ckeditor5-utils/tests/dom/position.js1041 right: 110,COMMENT
LOWpackages/ckeditor5-utils/tests/dom/position.js1101// ^ +-----------[ Viewport ]----------------------COMMENT
LOWpackages/ckeditor5-utils/src/focustracker.ts341function isFocusedView( subTreeRoot: Element, view: View ): boolean {COMMENT
LOWpackages/ckeditor5-utils/src/focustracker.ts361// @if CK_DEBUG_FOCUSTRACKER // keysToLog.forEach( key => { console.log( `${ key }=`, focusTracker[ key ] ) } );COMMENT
LOWpackages/ckeditor5-utils/src/focustracker.ts381// @if CK_DEBUG_FOCUSTRACKER // };COMMENT
LOWpackages/ckeditor5-utils/src/focustracker.ts401// @if CK_DEBUG_FOCUSTRACKER //COMMENT
LOWpackages/ckeditor5-utils/src/collection.ts581 //COMMENT
LOWpackages/ckeditor5-utils/src/fastdiff.ts161COMMENT
LOWpackages/ckeditor5-utils/src/emittermixin.ts761 // Note, that we might need to create intermediate events too.COMMENT
LOWpackages/ckeditor5-utils/src/observablemixin.ts381 } );COMMENT
LOWpackages/ckeditor5-utils/src/observablemixin.ts401 // } )COMMENT
LOWpackages/ckeditor5-utils/src/observablemixin.ts421 // { observable: A, property: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback }COMMENT
LOWpackages/ckeditor5-utils/src/observablemixin.ts441 // Map( {COMMENT
LOWpackages/ckeditor5-utils/src/dom/position.ts21// @if CK_DEBUG_POSITION // const TARGET_RECT_STYLE = {COMMENT
LOW…keditor5-image/tests/imageupload/imageuploadediting.js1941COMMENT
LOW…itor5-image/docs/framework/deep-dive/upload-adapter.md361// The rest of the MyUploadAdapter class definition.COMMENT
LOW…ckages/ckeditor5-editor-classic/src/classiceditorui.ts101COMMENT
LOW…or5-markdown-gfm/tests/gfmdataprocessor/blockquotes.js141 '>\n' +COMMENT
LOW…markdown-gfm/tests/gfmdataprocessor/strong-emphasis.js101 // it( 'should process nested emphasis #1', () => {COMMENT
LOWpackages/ckeditor5-widget/src/widget.ts101 const view = editor.editing.view;COMMENT
LOWpackages/ckeditor5-widget/src/widget.ts181 // If mouse down is pressed on widget - create selection over whole widget.COMMENT
LOWpackages/ckeditor5-widget/src/widgetresize/resizer.ts361 */COMMENT
LOWpackages/ckeditor5-editor-inline/src/inlineeditorui.ts81 view.render();COMMENT
LOWpackages/ckeditor5-bookmark/src/bookmarkui.ts561COMMENT
LOW…s/ckeditor5-editor-multi-root/src/multirooteditorui.ts121COMMENT
LOW…s/ckeditor5-list/tests/legacylist/legacylistcommand.js201 // 9 * -------- <- this should still be a child of item above, so indent = 1.COMMENT
LOW…s/ckeditor5-list/tests/legacylist/legacylistcommand.js441 '<listItem listIndent="1" listType="numbered">---</listItem>' +COMMENT
LOW…t/tests/legacylistproperties/legacyliststylecommand.js421 } );COMMENT
LOW…or5-list/tests/listproperties/listpropertiesediting.js621 it( 'should ensure that all item in a single list have the same `listReversed` attribute', () => {COMMENT
LOW…or5-list/tests/listproperties/listpropertiesediting.js921 # 4.1. {start:3}COMMENT
LOW…or5-list/tests/listproperties/listpropertiesediting.js1061 # 1a. {start:2}COMMENT
LOW…keditor5-list/tests/listproperties/liststartcommand.js361 //COMMENT
LOW…keditor5-list/tests/listproperties/liststartcommand.js381 # 3.1. {start:4}COMMENT
LOW…itor5-list/tests/listproperties/listreversedcommand.js341 listReversedCommand.execute( { reversed: false } );COMMENT
LOW…itor5-list/tests/listproperties/listreversedcommand.js361 // [X] ▶ 2.1.1.]COMMENT
LOW…keditor5-list/tests/listproperties/liststylecommand.js321 // "2.1.1" a child list of the "2.1" element (listIndent=2)COMMENT
LOW…ges/ckeditor5-list/src/legacylist/legacylistcommand.ts81 // Correct indent of all items after the last turned off item.COMMENT
LOW…ges/ckeditor5-list/src/legacylist/legacylistcommand.ts101 // 12 * -------- <-- this and all below are left unchanged.COMMENT
LOW…ges/ckeditor5-list/src/legacylist/legacylistcommand.ts121 // 13 * --------COMMENT
LOW…ges/ckeditor5-list/src/legacylist/legacylistcommand.ts161 // Changing one nested list item to other type should also trigger changing all its siblings so theCOMMENT
LOW…ges/ckeditor5-list/src/legacylist/legacylistcommand.ts281 isBackward: boolean,COMMENT
LOWpackages/ckeditor5-list/src/legacylist/legacyutils.ts321 // If found something else than `listItem`, we're out of the list scope.COMMENT
LOWpackages/ckeditor5-list/src/legacylist/legacyutils.ts341 // ○ List item 3. [listIndent=1]COMMENT
LOW…ages/ckeditor5-list/src/legacylist/legacyconverters.ts261 if ( data.item.name != 'listItem' ) {COMMENT
LOW…ages/ckeditor5-list/src/legacylist/legacyconverters.ts281 // Insert paragraph after item 1.1.1:COMMENT
LOW…ages/ckeditor5-list/src/legacylist/legacyconverters.ts301 // 1.1 --------COMMENT
LOW…ages/ckeditor5-list/src/legacylist/legacyconverters.ts881 // If this is a list, we expect that some `listItem`s and possibly other blocks will be inserted, however `.modelCursCOMMENT
LOW…ages/ckeditor5-list/src/legacylist/legacyconverters.ts901 //COMMENT
LOW…ages/ckeditor5-list/src/legacylist/legacyconverters.ts981 // Lorem ipsum.COMMENT
LOW…ages/ckeditor5-list/src/legacylist/legacyconverters.ts1001 // 1.1 --------COMMENT
LOW…ages/ckeditor5-list/src/legacylist/legacyconverters.ts1021 // 1.1 -------- <--- this is removed, previous list item has indent smaller than reference indent.COMMENT
LOW…rc/legacylistproperties/legacylistpropertiesediting.ts521 // ○ List item 2.COMMENT
LOW…rc/legacylistproperties/legacylistpropertiesediting.ts681 // attributes for inserted (pasted) items. See https://github.com/ckeditor/ckeditor5/issues/8160.COMMENT
LOW…itor5-list/src/legacytodolist/legacytodolistediting.ts141COMMENT
LOWpackages/ckeditor5-list/src/list/converters.ts841 // The <li> uses a fixed ID per indent (`list-item-skip-N`) so that sibling items sharingCOMMENT
LOWpackages/ckeditor5-list/src/list/listediting.ts641 //COMMENT
LOWpackages/ckeditor5-list/src/list/utils/model.ts481 // For example:COMMENT
288 more matches not shown…
Decorative Section Separators69 hits · 260 pts
SeverityFileLineSnippetContext
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts398 // ├───────────────────────────┼───────────────────────────┼───────────────────────────┤COMMENT
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts647 // ┌─────────────────────┬───────────────────┐COMMENT
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts649 // ├─────────────────────┼───────────────────┤COMMENT
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts651 // ├─────────────────────┼───────────────────┤COMMENT
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts653 // ├─────────────────────┼───────────────────┤COMMENT
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts655 // ├─────────────────────┼───────────────────┤COMMENT
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts658 // ├─────────────────────┼───────────────────┤COMMENT
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts661 // ├─────────────────────┼───────────────────┤COMMENT
MEDIUMpackages/ckeditor5-list/src/list/listediting.ts664 // └─────────────────────┴───────────────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts65// ┌──────────────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts67// └─────────┬────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts69// └─────────────────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts71// │ ┌─────────V────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts73// │ └──────────────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts75// ┌─────────V────────┐ Retrieves the selected model.DocumentFragmentCOMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts77// └─────────┬────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts79// ┌─────────V────────┐ Processes view.DocumentFragment to text/html and text/plainCOMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts81// └─────────┬────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts84// ┌────────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts86// ┌─────────V────────┐ │COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts88// └─────────┬────────┘ │COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts90// ┌─────────────└────────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts92// │ ┌─────────V────────┐ │COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts94// │ └─────────┬────────┘ │COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts96// ┌───│─────────────┘ │COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts98// │ │ ┌─────────V────────┐ │COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts100// │ │ └─────────┬────────┘ │COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts102// │ │ └────────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts104// │ └─────────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts106// │ │ ┌─────────V────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts108// │ └─────────┬────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts110// │ ┌─────────V────────┐ Resolves the final data.targetRanges.COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts112// │ └─────────┬────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts114// │ ┌─────────V────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts116// │ └─────────┬────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts118// │ ┌───────────V───────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts120// │ └───────────┬───────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts122// │ ┌──────────V──────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts124// │ └──────────┬──────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts126// │ ┌──────────V──────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts128// │ └──────────┬──────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts130// │ ┌──────────V──────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts132// │ └──────────┬──────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts134// └─────────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts136// ┌─────────V────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/dragdrop.ts138// └──────────────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts39// ┌──────────────────────┐ ┌──────────────────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts42// └───────────┬──────────┘ └───────────┬──────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts44// └────────────────┌────────────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts46// ┌─────────V────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts49// └─────────┬────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts51// ┌───────────V───────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts54// └───────────┬───────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts56// ┌──────────V──────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts59// └─────────────────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts64// ┌──────────────────────┐ ┌──────────────────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts67// └───────────┬──────────┘ └───────────┬──────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts69// └────────────────┌────────────────┘COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts71// ┌───────────V───────────┐COMMENT
MEDIUMpackages/ckeditor5-clipboard/src/clipboardpipeline.ts74// └───────────┬───────────┘COMMENT
9 more matches not shown…
Verbosity Indicators51 hits · 73 pts
SeverityFileLineSnippetContext
LOW…ckages/ckeditor5-widget/src/widgettoolbarrepository.ts115 // UI#update is not fired after focus is back in editor, we need to check if balloon panel should be visible.COMMENT
LOWpackages/ckeditor5-typing/src/twostepcaretmovement.ts443 // We need to check if the caret is a one position before the attribute boundary:COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js599 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js605 // Step 3: <p>foo{}<b></b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js621 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js631 // Step 1: <p>"FILLER{}"<b>foo</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js654 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js658 // Step 3: <p><b>{}foo</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js674 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js684 // Step 1: <p>"FILLER{}"<b>foo</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js706 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js710 // Step 3: <p><b>{}foo</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js726 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js734 // Step 1: <p>"FILLER{}"<b>foo</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js757 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js761 // Step 3: <p><b>foo{}</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js777 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js786 // Step 1: <p><br>{}</p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js808 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js812 // Step 3: <p>{}<br></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js827 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js837 // Step 1: <p>"FILLER{}"<b>foo</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js859 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js863 // Step 3: <p><b>foo{}</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js967 // Step 2: Add text node.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js975 // Step 3: Remove selection from the view.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1003 // Step 2: Remove the <b> and update the selection (<p>bar[]</p>).COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1011 // Step 3: Check whether there's no filler in the DOM.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1018 // Step 1: <p><b>foo</b>"FILLER{}"<b>bar</b></p><p></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1085 // Step 3: Check whether new filler was created in the <i> element.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1094 // Step 1: <p>bar<b>abc</b>"FILLER"{}</p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1106 // Step 2: Move selection to a new attribute element.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1115 // Step 3: Check whether old filler was removed.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js572 // Step 1: <p>foo<b>"FILLER{}"</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js879 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js914 // Step 1: <p>foo<b>"FILLER{}"</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js935 // Step 2: <p>foo<b></b><i>"FILLER{}"</i></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js951 // Step 1: <p>foo<b>"FILLER{}"</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js991 // Step 1: <p>bar<b>foo</b>"FILLER{}"</p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1035 // Step 2: Move <b>foo</b><b>bar</b> to the second paragraph and leave collapsed selection in the first one.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1049 // Step 3: Check whether in the first paragraph there's a <br> filler and thatCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1062 // Step 1: <p>bar<b>"FILLER{}"</b></p>COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1074 // Step 2: Move selection to a new attribute element and remove the previous oneCOMMENT
LOWpackages/ckeditor5-engine/src/model/writer.ts204 // We need to check if item is going to be inserted within the same document.COMMENT
LOW…ages/ckeditor5-engine/src/model/utils/deletecontent.ts218 // So we need to check if there is no content in the skipped range (because we want to include the <imageBlock>).COMMENT
LOW…ges/ckeditor5-engine/src/conversion/downcasthelpers.ts2662 // For insert or remove use parent element because we need to check if it's added/removed child.COMMENT
LOWpackages/ckeditor5-engine/src/view/downcastwriter.ts1078 // We need to check if parent of this text matches to given element.COMMENT
LOWpackages/ckeditor5-engine/src/view/downcastwriter.ts1091 // We need to check if element range stick out of the given range and truncate if it is.COMMENT
LOWpackages/ckeditor5-table/src/tableutils.ts892 // This check is needed since we need to check if there are any cells from previous rows than spans over this cell'sCOMMENT
LOW…ditor5-table/src/converters/table-layout-post-fixer.ts273 // Step 1: correct rowspans of table cells if necessary.COMMENT
LOW…ditor5-table/src/converters/table-layout-post-fixer.ts276 // Step 2: fix table rows sizes.COMMENT
Structural Annotation Overuse40 hits · 60 pts
SeverityFileLineSnippetContext
LOWdocs/updating/migration-to-cdn/angular.md27### Step 1: Remove CKEditor&nbsp;5 importsCOMMENT
LOWdocs/updating/migration-to-cdn/angular.md36### Step 2: Update your Angular components to use CDNCOMMENT
LOWdocs/updating/migration-to-cdn/vuejs-v3.md27### Step 1: Remove CKEditor&nbsp;5 importsCOMMENT
LOWdocs/updating/migration-to-cdn/vuejs-v3.md36### Step 2: Update your Vue components to use CDNCOMMENT
LOWdocs/updating/migration-to-cdn/react.md29#### Step 1: Remove CKEditor&nbsp;5 importsCOMMENT
LOWdocs/updating/migration-to-cdn/react.md38#### Step 2: Use `useCKEditorCloud` hook to load CKEditor&nbsp;5 from CDNCOMMENT
LOWdocs/updating/migration-to-cdn/react.md209#### Step 1: Remove CKEditor&nbsp;5 importsCOMMENT
LOWdocs/updating/migration-to-cdn/react.md218#### Step 2: Use `useCKEditorCloud` hook to load CKEditor&nbsp;5 Context from CDNCOMMENT
LOWdocs/updating/migration-to-cdn/react.md340#### Step 1: Remove CKEditor&nbsp;5 importsCOMMENT
LOWdocs/updating/migration-to-cdn/react.md349#### Step 2: Use `withCKEditorCloud` HOC to load CKEditor&nbsp;5 from CDNCOMMENT
LOWdocs/updating/migration-to-cdn/testing-suite.md19### Step 1: Remove CKEditor&nbsp;5 importsCOMMENT
LOWdocs/updating/migration-to-cdn/testing-suite.md28### Step 2: Update your test files to use CDNCOMMENT
LOWdocs/updating/migration-to-cdn/vanilla-js.md23### Step 1: Update your HTML fileCOMMENT
LOWdocs/updating/migration-to-cdn/vanilla-js.md48### Step 2: Replace CKEditor&nbsp;5 imports with `window.CKEDITOR`COMMENT
LOWdocs/updating/migration-to-cdn/vanilla-js.md90### Step 1: Install the `@ckeditor/ckeditor5-integrations-common` PackageCOMMENT
LOWdocs/updating/migration-to-cdn/vanilla-js.md98### Step 2: Replace CKEditor&nbsp;5 ImportsCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js599 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js621 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js654 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js674 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js706 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js726 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js757 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js777 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js808 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js827 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js859 // Step 2: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js967 // Step 2: Add text node.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js975 // Step 3: Remove selection from the view.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1003 // Step 2: Remove the <b> and update the selection (<p>bar[]</p>).COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1011 // Step 3: Check whether there's no filler in the DOM.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1085 // Step 3: Check whether new filler was created in the <i> element.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1106 // Step 2: Move selection to a new attribute element.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1115 // Step 3: Check whether old filler was removed.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js879 // Step 4: No mutation on second renderCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1035 // Step 2: Move <b>foo</b><b>bar</b> to the second paragraph and leave collapsed selection in the first one.COMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1049 // Step 3: Check whether in the first paragraph there's a <br> filler and thatCOMMENT
LOWpackages/ckeditor5-engine/tests/view/renderer.js1074 // Step 2: Move selection to a new attribute element and remove the previous oneCOMMENT
LOW…ditor5-table/src/converters/table-layout-post-fixer.ts273 // Step 1: correct rowspans of table cells if necessary.COMMENT
LOW…ditor5-table/src/converters/table-layout-post-fixer.ts276 // Step 2: fix table rows sizes.COMMENT
Synthetic Comment Markers6 hits · 56 pts
SeverityFileLineSnippetContext
HIGHCHANGELOG.md131#### ⭐ AI-generated suggestions in track changesCOMMENT
HIGHCHANGELOG.md165* **[ai](https://www.npmjs.com/package/@ckeditor/ckeditor5-ai), [track-changes](https://www.npmjs.com/package/@ckeditor/COMMENT
HIGHCHANGELOG.md176* **[collaboration-core](https://www.npmjs.com/package/@ckeditor/ckeditor5-collaboration-core), [track-changes](https://COMMENT
HIGHCHANGELOG.md178* **[ai](https://www.npmjs.com/package/@ckeditor/ckeditor5-ai)**: Fixed an issue where AI-suggested insertions generatedCOMMENT
HIGHCHANGELOG.md179* **[ai](https://www.npmjs.com/package/@ckeditor/ckeditor5-ai)**: Made AI-generated content displayed in the AI Quick AcCOMMENT
HIGHdocs/updating/update-to-48.md33### AI-generated suggestions in track changes (⭐)COMMENT
Self-Referential Comments10 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUMpackages/ckeditor5-editor-classic/src/classiceditor.ts173 * # Creating a detached editorCOMMENT
MEDIUMpackages/ckeditor5-editor-classic/src/classiceditor.ts256 * # Creating a detached editorCOMMENT
MEDIUMpackages/ckeditor5-editor-inline/src/inlineeditor.ts166 * # Creating a detached editorCOMMENT
MEDIUMpackages/ckeditor5-editor-inline/src/inlineeditor.ts249 * # Creating a detached editorCOMMENT
MEDIUM…ges/ckeditor5-editor-multi-root/src/multirooteditor.ts900 * # Creating a detached editorCOMMENT
MEDIUM…ges/ckeditor5-editor-multi-root/src/multirooteditor.ts1033 * # Creating a detached editorCOMMENT
MEDIUMpackages/ckeditor5-editor-balloon/src/ballooneditor.ts166 * # Creating a detached editorCOMMENT
MEDIUMpackages/ckeditor5-editor-balloon/src/ballooneditor.ts255 * # Creating a detached editorCOMMENT
MEDIUM…ages/ckeditor5-editor-decoupled/src/decouplededitor.ts190 * # Creating a detached editorCOMMENT
MEDIUM…ages/ckeditor5-editor-decoupled/src/decouplededitor.ts285 * # Creating a detached editorCOMMENT
AI Response Leakage1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHdocs/getting-started/setup/ui-language.md144Configure {@link module:core/editor/editorconfig~EditorConfig#language `config.language`} to change the language of the CODE
Slop Phrases2 hits · 4 pts
SeverityFileLineSnippetContext
LOW…itor5-fullscreen/src/handlers/abstracteditorhandler.ts28 * The only method that is necessary to provide when extending this class is {@link #defaultOnEnter}. However, make sureCOMMENT
MEDIUM…ages/ckeditor5-engine/src/model/operation/transform.ts1836 // Note that this is a simplified version of default case, but here we treat the common part (whole `rangeA`)COMMENT
Modern AI Meta-Vocabulary2 hits · 4 pts
SeverityFileLineSnippetContext
MEDIUMdocs/getting-started/integrations/jquery.md19 To set up the editor from npm, you need a bundler to build the JavaScript files correctly. CKEditor&nbsp;5 is compatiblCODE
MEDIUMdocs/getting-started/integrations/quick-start.md18 To set up the editor from npm, you need a bundler to build the JavaScript files correctly. CKEditor 5 is compatible witCODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWpackages/ckeditor5-cloud-services/tests/manual/token.js35function handleRequest( xhr, resolve, reject ) {CODE
AI Slop Vocabulary1 hit · 1 pts
SeverityFileLineSnippetContext
LOW…ckages/ckeditor5/tests/_data/full-websites-styled.html2977 style="color:#2980b9;">. Now, let&rsquo;s just add some toolbar with stylish buttons toCODE