Powerful rich text editor framework with a modular architecture, modern integrations, and features like collaborative editing.
This report summarizes scanner evidence for ckeditor/ckeditor5, a JavaScript project with 10,522 GitHub stars. SynthScan examined 1,262,054 lines of code across 7902 source files, recording 1790 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 2.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 901 finding(s).
Are imports declared and package/API names verified? 820 finding(s).
Are wrappers, guards, and repeated structures necessary? 584 finding(s).
Which changes need focused human review? 1790 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1790 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. 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 configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …cs/_snippets/support/managing-ckeditor-logo-styling.js | 37 | editor.ui.view.body._bodyCollectionContainer.classList.add( 'custom-theme-editor-wrapper' ); | CODE |
| CRITICAL | …sts/imagetextalternative/ui/textalternativeformview.js | 58 | expect( header.children.last.element.classList.contains( 'ck-form__header__label' ) ).toBe( true ); | CODE |
| CRITICAL | …keditor5-image/tests/imageresize/imageresizehandles.js | 1103 | editor.editing.view.document.selection.getSelectedElement() | CODE |
| CRITICAL | …mage/tests/imageresize/ui/imagecustomresizeformview.js | 50 | expect( header.children.last.element.classList.contains( 'ck-form__header__label' ) ).toBe( true ); | CODE |
| CRITICAL | …ckeditor5-image/src/image/replaceimagesourcecommand.ts | 38 | const element = this.editor.model.document.selection.getSelectedElement()!; | CODE |
| CRITICAL | …ckeditor5-image/src/image/replaceimagesourcecommand.ts | 52 | const image = this.editor.model.document.selection.getSelectedElement()!; | CODE |
| CRITICAL | …ages/ckeditor5-editor-classic/tests/classiceditorui.js | 724 | editorWithUi.ui.view.stickyPanel.contentPanelElement.getBoundingClientRect.mockReturnValue( { | CODE |
| CRITICAL | …ages/ckeditor5-editor-classic/tests/classiceditorui.js | 931 | const range = editor.editing.view.document.selection.getFirstRange(); | CODE |
| CRITICAL | …ages/ckeditor5-editor-classic/tests/classiceditorui.js | 979 | const range = editor.editing.view.document.selection.getFirstRange(); | CODE |
| CRITICAL | …ages/ckeditor5-editor-classic/tests/classiceditorui.js | 1032 | const range = editor.editing.view.document.selection.getFirstRange(); | CODE |
| CRITICAL | packages/ckeditor5-alignment/src/alignmentcommand.ts | 37 | const firstBlock = first( this.editor.model.document.selection.getSelectedBlocks() )!; | CODE |
| CRITICAL | packages/ckeditor5-widget/src/widgetresize/resizer.ts | 252 | this._options.editor.editing.view.change( () => { | CODE |
| CRITICAL | packages/ckeditor5-widget/src/widgetresize/resizer.ts | 327 | this._options.editor.editing.view.change( writer => { | CODE |
| CRITICAL | packages/ckeditor5-widget/src/widgetresize/resizer.ts | 450 | return this._options.editor.editing.view.domConverter.mapViewToDom( this._viewResizerWrapper! ) as any; | CODE |
| CRITICAL | packages/ckeditor5-font/tests/integration.js | 232 | dropdown.colorSelectorView.colorPickerFragmentView.colorPickerView.picker.dispatchEvent( event ); | CODE |
| CRITICAL | packages/ckeditor5-font/tests/integration.js | 266 | dropdown.colorSelectorView.colorPickerFragmentView.colorPickerView.picker.dispatchEvent( event ); | CODE |
| CRITICAL | packages/ckeditor5-font/tests/ui/colorui.js | 166 | const secondButton = dropdown.colorSelectorView.colorGridsFragmentView.staticColorsGrid.items.get( 1 ); | CODE |
| CRITICAL | packages/ckeditor5-font/tests/fontsize/fontsizeui.js | 342 | buttonSmall = subMenu.panelView.children.first.items.get( 1 ).children.first; | CODE |
| CRITICAL | …ckages/ckeditor5-font/tests/fontfamily/fontfamilyui.js | 346 | buttonArial = subMenu.panelView.children.first.items.get( 1 ).children.first; | CODE |
| CRITICAL | packages/ckeditor5-bookmark/tests/bookmarkui.js | 751 | expect( balloon.view.pin.mock.calls.at( -1 )[ 0 ].target ).toBe( BookmarkDomElement ); | CODE |
| CRITICAL | packages/ckeditor5-bookmark/tests/bookmarkui.js | 769 | expect( balloon.view.pin.mock.calls.at( -1 )[ 0 ].target ).not.toBe( BookmarkDomElement ); | CODE |
| CRITICAL | packages/ckeditor5-bookmark/tests/bookmarkui.js | 774 | expect( balloon.view.pin.mock.calls.at( -1 )[ 0 ].target ).toBe( newBookmarkDomElement ); | CODE |
| CRITICAL⚡ | …ckeditor5-editor-multi-root/tests/multirooteditorui.js | 172 | expect( view.editables.foo.element.classList.contains( 'ck-editor__editable_root' ) ).toBe( true ); | CODE |
| CRITICAL⚡ | …ckeditor5-editor-multi-root/tests/multirooteditorui.js | 173 | expect( view.editables.bar.element.classList.contains( 'ck-editor__editable_root' ) ).toBe( true ); | CODE |
| CRITICAL⚡ | …ckeditor5-editor-multi-root/tests/multirooteditorui.js | 180 | expect( view.editables.foo.element.classList.contains( 'ck-editor__editable_inline-root' ) ).toBe( false ); | CODE |
| CRITICAL⚡ | …ckeditor5-editor-multi-root/tests/multirooteditorui.js | 181 | expect( view.editables.bar.element.classList.contains( 'ck-editor__editable_inline-root' ) ).toBe( false ); | CODE |
| CRITICAL | …5-editor-multi-root/manual/multirooteditor-detached.ts | 78 | editor.ui.view.toolbar.element.remove(); | CODE |
| CRITICAL | …5-editor-multi-root/manual/multirooteditor-detached.ts | 79 | editor.ui.view.menuBarView.element.remove(); | CODE |
| CRITICAL | …/ckeditor5-editor-multi-root/manual/multirooteditor.ts | 92 | editor.ui.view.toolbar.element.remove(); | CODE |
| CRITICAL | …/ckeditor5-editor-multi-root/manual/multirooteditor.ts | 93 | editor.ui.view.menuBarView.element.remove(); | CODE |
| CRITICAL | packages/ckeditor5-editor-multi-root/manual/memory.ts | 48 | editor.ui.view.toolbar.element.remove(); | CODE |
| CRITICAL | …r5-editor-multi-root/manual/multirooteditor-dynamic.ts | 110 | editor.ui.view.toolbar.element.remove(); | CODE |
| CRITICAL | …r5-editor-multi-root/manual/multirooteditor-dynamic.ts | 111 | editor.ui.view.menuBarView.element.remove(); | CODE |
| CRITICAL | …ages/ckeditor5-editor-multi-root/manual/placeholder.ts | 54 | editor.ui.view.toolbar.element.remove(); | CODE |
| CRITICAL | …ges/ckeditor5-editor-multi-root/src/multirooteditor.ts | 309 | * editor.ui.view.toolbar.element.remove(); | COMMENT |
| CRITICAL | …characters/tests/ui/specialcharacterscategoriesview.js | 52 | view._dropdownView.fieldView.listView.items.last.children.first.fire( 'execute' ); | CODE |
| CRITICAL | …characters/tests/ui/specialcharacterscategoriesview.js | 94 | groupDropdownView.listView.items.last.children.first.fire( 'execute' ); | CODE |
| CRITICAL | packages/ckeditor5-fullscreen/tests/fullscreenui.js | 100 | editor.ui.view.toolbar.items.add( button ); | CODE |
| CRITICAL | packages/ckeditor5-fullscreen/tests/fullscreenui.js | 183 | editor.ui.view.toolbar.items.add( button ); | CODE |
| CRITICAL | …ckages/ckeditor5-fullscreen/tests/fullscreenediting.js | 112 | editor.ui.view.toolbar.items.add( buttonView ); | CODE |
| CRITICAL | …or5-fullscreen/tests/handlers/abstracteditorhandler.js | 232 | expect( global.document.body.parentElement.classList.contains( 'ck-fullscreen' ) ).toBe( false ); | CODE |
| CRITICAL | …or5-fullscreen/tests/handlers/abstracteditorhandler.js | 2151 | expect( shadowEditor.ui.view.body.bodyCollectionContainer.checkVisibility() ).toBe( true ); | CODE |
| CRITICAL | …or5-fullscreen/tests/handlers/abstracteditorhandler.js | 2176 | expect( shadowEditor.ui.view.body.bodyCollectionContainer.checkVisibility() ).toBe( true ); | CODE |
| CRITICAL | …tor5-fullscreen/src/handlers/decouplededitorhandler.ts | 52 | this._editor.ui.view.toolbar.switchBehavior( | CODE |
| CRITICAL | …itor5-fullscreen/src/handlers/abstracteditorhandler.ts | 581 | this._editor.ui.view.toolbar.switchBehavior( | CODE |
| CRITICAL | …itor5-fullscreen/src/handlers/abstracteditorhandler.ts | 913 | this._editor.ui.view.menuBarView.disable(); | CODE |
| CRITICAL | …itor5-fullscreen/src/handlers/abstracteditorhandler.ts | 947 | this._editor.ui.view.menuBarView.enable(); | CODE |
| CRITICAL | …or5-list/tests/listproperties/ui/listpropertiesview.js | 275 | expect( view.stylesView.element.firstChild.classList.contains( 'ck-button' ) ).toBe( true ); | CODE |
| CRITICAL | …or5-list/tests/listproperties/ui/listpropertiesview.js | 276 | expect( view.stylesView.element.lastChild.classList.contains( 'ck-button' ) ).toBe( true ); | CODE |
| CRITICAL | …ges/ckeditor5-list/src/legacylist/legacylistcommand.ts | 239 | const listItem = first( this.editor.model.document.selection.getSelectedBlocks() ); | CODE |
| CRITICAL | …s/ckeditor5-list/src/legacylist/legacyindentcommand.ts | 106 | const listItem = first( this.editor.model.document.selection.getSelectedBlocks() ); | CODE |
| CRITICAL | …ist/src/legacylistproperties/legacyliststartcommand.ts | 57 | const listItem = this.editor.model.document.selection.getFirstPosition()!.parent; | CODE |
| CRITICAL | …/src/legacylistproperties/legacylistreversedcommand.ts | 57 | const listItem = this.editor.model.document.selection.getFirstPosition()!.parent; | CODE |
| CRITICAL | …ist/src/legacylistproperties/legacyliststylecommand.ts | 85 | const listItem = this.editor.model.document.selection.getFirstPosition()!.parent; | CODE |
| CRITICAL | …/ckeditor5-list/src/listproperties/liststylecommand.ts | 108 | const listItem = first( this.editor.model.document.selection.getSelectedBlocks() ); | CODE |
| CRITICAL | packages/ckeditor5-clipboard/src/dragdroptarget.ts | 365 | const domElement = this.editor.editing.view.domConverter.mapViewToDom( viewElement )!; | CODE |
| CRITICAL | …kages/ckeditor5-editor-balloon/manual/ballooneditor.ts | 77 | editor.ui.view.menuBarView.element.remove(); | CODE |
| CRITICAL | packages/ckeditor5-ui/tests/dropdown/utils.js | 263 | dropdownView.listView.items.first.children.first.fire( 'execute' ); | CODE |
| CRITICAL | packages/ckeditor5-ui/tests/dropdown/utils.js | 1348 | listItems.last.items.first.children.first.fire( 'execute' ); | CODE |
| CRITICAL | packages/ckeditor5-ui/tests/menubar/utils.js | 375 | const parentMenuAAListItem = menuA.panelView.children.first.items.get( 1 ); | CODE |
| 62 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/framework/custom-editor-creator.md | 280 | sourceElement && sourceElement.tagName.toLowerCase() === 'textarea' && sourceElement.getAttribute( 'placeholder' ); | CODE |
| LOW | docs/framework/architecture/ui-library.md | 50 | // The HTML "placeholder" attribute is also controlled by the observable. | COMMENT |
| LOW | docs/framework/architecture/ui-library.md | 51 | placeholder: bind.to( 'placeholder' ), | CODE |
| LOW | docs/framework/architecture/ui-library.md | 126 | view.bind( 'placeholder', 'isEnabled' ).to( observable, 'placeholderText', 'isEnabled' ); | CODE |
| LOW | docs/_snippets/framework/tutorials/inline-widget.html | 16 | <p>Hello <span class="placeholder">{first name}</span> <span class="placeholder">{surname}</span>!</p> | CODE |
| LOW | docs/_snippets/framework/tutorials/inline-widget.js | 37 | const placeholder = writer.createElement( 'placeholder', { | CODE |
| LOW | docs/_snippets/framework/tutorials/inline-widget.js | 54 | const isAllowed = model.schema.checkChild( selection.focus.parent, 'placeholder' ); | CODE |
| LOW | docs/_snippets/framework/tutorials/inline-widget.js | 72 | // The "placeholder" dropdown must be registered among the UI components of the editor | COMMENT |
| LOW | docs/_snippets/framework/tutorials/inline-widget.js | 74 | editor.ui.componentFactory.add( 'placeholder', locale => { | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 89 | const command = editor.commands.get( 'placeholder' ); | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 94 | editor.execute( 'placeholder', { value: evt.source.commandParam } ); | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 134 | this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) ); | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 138 | viewToModelPositionOutsideModelElement( this.editor.model, viewElement => viewElement.hasClass( 'placeholder' ) ) | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 148 | schema.register( 'placeholder', { | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 172 | classes: [ 'placeholder' ] | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 178 | return modelWriter.createElement( 'placeholder', { name } ); | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 183 | model: 'placeholder', | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 193 | model: 'placeholder', | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 202 | class: 'placeholder' | CODE |
| LOW | docs/_snippets/framework/tutorials/inline-widget.js | 221 | '|', 'placeholder', | CODE |
| LOW | docs/updating/update-to-48.md | 310 | * `config.get( 'placeholder' )` -> `config.get( 'roots.main.placeholder' )` | COMMENT |
| LOW⚡ | docs/tutorials/widgets/implementing-an-inline-widget.md | 215 | classes: [ 'placeholder' ] | CODE |
| LOW⚡ | docs/tutorials/widgets/implementing-an-inline-widget.md | 221 | return modelWriter.createElement( 'placeholder', { name } ); | CODE |
| LOW⚡ | docs/tutorials/widgets/implementing-an-inline-widget.md | 226 | model: 'placeholder', | CODE |
| LOW⚡ | docs/tutorials/widgets/implementing-an-inline-widget.md | 236 | model: 'placeholder', | CODE |
| LOW⚡ | docs/tutorials/widgets/implementing-an-inline-widget.md | 245 | class: 'placeholder' | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 461 | // The "placeholder" dropdown must be registered among the UI components of the editor | COMMENT |
| LOW⚡ | docs/tutorials/widgets/implementing-an-inline-widget.md | 478 | const command = editor.commands.get( 'placeholder' ); | CODE |
| LOW⚡ | docs/tutorials/widgets/implementing-an-inline-widget.md | 483 | editor.execute( 'placeholder', { value: evt.source.commandParam } ); | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 526 | // Insert the "placeholder" dropdown into the editor toolbar. | COMMENT |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 10 | In this tutorial, you will learn how to implement an inline widget. You will build a "placeholder" feature that allows t | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 161 | schema.register( 'placeholder', { | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 181 | <span class="placeholder">{name}</span> | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 294 | const placeholder = writer.createElement( 'placeholder', { | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 308 | const isAllowed = model.schema.checkChild( selection.focus.parent, 'placeholder' ); | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 337 | this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) ); | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 357 | editor.execute( 'placeholder', { value: 'time' } ); | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 381 | foo<span class="placeholder">{name}</span>bar | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 413 | this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) ); | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 418 | viewToModelPositionOutsideModelElement( this.editor.model, viewElement => viewElement.hasClass( 'placeholder' ) ) | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 463 | editor.ui.componentFactory.add( 'placeholder', locale => { | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 527 | toolbar: [ 'heading', 'bold', 'italic', 'numberedList', 'bulletedList', '|', 'placeholder' ] | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 550 | this.editor.commands.add( 'placeholder', new PlaceholderCommand( this.editor ) ); | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 554 | viewToModelPositionOutsideModelElement( this.editor.model, viewElement => viewElement.hasClass( 'placeholder' ) ) | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 585 | editor.ui.componentFactory.add( 'placeholder', locale => { | CODE |
| LOW | docs/tutorials/widgets/implementing-an-inline-widget.md | 604 | toolbar: [ 'heading', 'bold', 'italic', 'numberedList', 'bulletedList', '|', 'placeholder' ], | CODE |
| LOW | packages/ckeditor5-enter/manual/enter.manual.html | 47 | Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br /> | CODE |
| LOW | packages/ckeditor5-enter/manual/enter.manual.html | 47 | Lorem ipsum dolor sit amet, consectetur adipiscing elit.<br /> | CODE |
| LOW | packages/ckeditor5-emoji/tests/emojipicker.js | 453 | '<paragraph>Lorem Ipsum is simply dummy [text] of the printing and typesetting industry.</paragraph>' | CODE |
| LOW | packages/ckeditor5-emoji/tests/emojipicker.js | 459 | '<paragraph>Lorem Ipsum is simply dummy [text] of the printing and typesetting industry.</paragraph>' | CODE |
| LOW⚡ | packages/ckeditor5-mention/tests/mention.js | 64 | const text = new ViewText( viewDocument, 'John Doe' ); | CODE |
| LOW⚡ | packages/ckeditor5-mention/tests/mention.js | 74 | expect( mentionAttribute ).toHaveProperty( '_text', 'John Doe' ); | CODE |
| LOW⚡ | packages/ckeditor5-mention/tests/mention.js | 78 | const text = new ViewText( viewDocument, 'John Doe' ); | CODE |
| LOW | packages/ckeditor5-mention/tests/mention.js | 89 | expect( mentionAttribute ).toHaveProperty( '_text', 'John Doe' ); | CODE |
| LOW⚡ | packages/ckeditor5-mention/manual/mention.ts | 26 | editor.model.schema.register( 'placeholder', { | CODE |
| LOW⚡ | packages/ckeditor5-mention/manual/mention.ts | 34 | model: 'placeholder', | CODE |
| LOW⚡ | packages/ckeditor5-mention/manual/mention.ts | 43 | model: 'placeholder', | CODE |
| LOW⚡ | packages/ckeditor5-mention/manual/mention.ts | 48 | view: 'placeholder', | CODE |
| LOW⚡ | packages/ckeditor5-mention/manual/mention.ts | 60 | return writer.createElement( 'placeholder', { type } ); | CODE |
| LOW⚡ | packages/ckeditor5-mention/manual/mention.ts | 66 | viewToModelPositionOutsideModelElement( editor.model, viewElement => viewElement.name == 'placeholder' ) | CODE |
| 638 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/_snippets/shared-helpers.js | 110 | export function getViewportTopOffsetConfig() { | CODE |
| LOW | docs/_snippets/shared-helpers.js | 123 | export function setViewportTopOffsetDynamically( editor ) { | CODE |
| LOW | docs/_snippets/shadow-dom.js | 44 | export function createSnippetShadowRootElement( { className = '', layers } = {} ) { | CODE |
| LOW | docs/_snippets/shadow-dom.js | 63 | async function addLayeredPageStylesToShadowRoot( shadowRoot, layerNames ) { | CODE |
| LOW | docs/_snippets/shadow-dom.js | 127 | function deleteRulesOutsideWantedLayers( styleSheet, isWantedLayer ) { | CODE |
| LOW⚡ | docs/_snippets/framework/tutorials/inline-widget.js | 103 | function getDropdownItemsDefinitions( placeholderNames ) { | CODE |
| LOW | docs/_snippets/framework/tutorials/block-widget.js | 303 | function getClosestSelectedSimpleBoxElement( selection ) { | CODE |
| LOW | docs/_snippets/framework/tutorials/block-widget.js | 329 | function getClosestSimpleBoxWidget( selection ) { | CODE |
| LOW | docs/_snippets/examples/bottom-toolbar-editor.js | 239 | function overrideDropdownPositionsToNorth( editor, toolbarView ) { | CODE |
| LOW | …/getting-started/integrations-cdn/react-default-cdn.md | 147 | function CKEditorNestedInstanceDemo( { name, content } ) { | CODE |
| LOW | docs/examples/custom/bottom-toolbar-editor.md | 290 | function overrideDropdownPositionsToNorth( editor, toolbarView ) { | CODE |
| LOW | docs/tutorials/widgets/implementing-a-block-widget.md | 912 | function getClosestSelectedSimpleBoxElement( selection ) { | CODE |
| LOW | docs/tutorials/widgets/implementing-a-block-widget.md | 1134 | function getClosestSimpleBoxWidget( selection ) { | CODE |
| LOW⚡ | docs/tutorials/widgets/implementing-an-inline-widget.md | 492 | function getDropdownItemsDefinitions( placeholderNames ) { | CODE |
| LOW | docs/assets/global.js | 44 | function createClipboardInputNotification() { | CODE |
| LOW | docs/assets/global.js | 73 | function getViewportTopOffsetConfig() { | CODE |
| LOW | …-indent/src/integrations/indentblocklistintegration.ts | 331 | function listBlockIndentUpcastConverter( | CODE |
| LOW | …-indent/src/integrations/indentblocklistintegration.ts | 380 | function ensureIndentValuesConsistency( | CODE |
| LOW | packages/ckeditor5-enter/src/shiftenter.ts | 106 | function removeStaleSoftBreakAttributes( writer: ModelWriter ): boolean { | CODE |
| LOW | packages/ckeditor5-emoji/tests/emojimention.js | 20 | function mockEmojiRepositoryValues( editor ) { | CODE |
| LOW | packages/ckeditor5-emoji/tests/emojipicker.js | 20 | function mockEmojiRepositoryValues( editor ) { | CODE |
| LOW | packages/ckeditor5-emoji/tests/emojirepository.js | 809 | async function createDefinitionsTestEditor( editorConfig ) { | CODE |
| LOW | packages/ckeditor5-style/src/styleutils.ts | 328 | function normalizedStyleDefinitionToMatcherPattern( { element, classes }: StyleDefinition ): MatcherObjectPattern { | CODE |
| LOW | packages/ckeditor5-style/src/stylecommand.ts | 258 | function getDefinitionExclusiveClasses( | CODE |
| LOW | …-editing/docs/_snippets/features/restricted-editing.js | 100 | async function startRestrictedEditingMode() { | CODE |
| LOW | …editor5-restricted-editing/manual/restrictedediting.ts | 94 | async function startRestrictedEditingMode() { | CODE |
| LOW | …5-restricted-editing/manual/restrictedediting-focus.ts | 58 | async function startRestrictedEditingMode() { | CODE |
| LOW | …-editing/src/restrictededitingexceptionblockcommand.ts | 201 | function findExceptionContentBlock( element: ModelElement ): ModelElement | null { | CODE |
| LOW | …5-restricted-editing/src/standardeditingmodeediting.ts | 199 | function registerFallbackUpcastConverter( editor: Editor ) { | CODE |
| LOW | …restricted-editing/src/restrictededitingmodeediting.ts | 561 | function isDeleteCommandOnMarkerBoundaries( commandName: string, selection: ModelDocumentSelection, markerRange: ModelRa | CODE |
| LOW | …restricted-editing/src/restrictededitingmodeediting.ts | 621 | function disallowInputExecForWrongRange( editor: Editor ): GetCallback<InsertTextCommandExecuteEvent> { | CODE |
| LOW | …restricted-editing/src/restrictededitingmodeediting.ts | 638 | function isRangeInsideSingleMarker( editor: Editor, range: ModelRange ) { | CODE |
| LOW | …restricted-editing/src/restrictededitingmodeediting.ts | 653 | function ensureNewMarkerIsFlatPostFixer( editor: Editor ): ModelPostFixer { | CODE |
| LOW | …ricted-editing/src/restrictededitingmode/converters.ts | 40 | export function setupExceptionHighlighting( editor: Editor ): void { | CODE |
| LOW | …ricted-editing/src/restrictededitingmode/converters.ts | 96 | export function resurrectCollapsedMarkerPostFixer( editor: Editor ): ModelPostFixer { | CODE |
| LOW | …ricted-editing/src/restrictededitingmode/converters.ts | 120 | export function extendMarkerOnTypingPostFixer( editor: Editor ): ModelPostFixer { | CODE |
| LOW | …-restricted-editing/src/restrictededitingmode/utils.ts | 37 | export function isPositionInRangeBoundaries( range: ModelRange, position: ModelPosition ): boolean { | CODE |
| LOW | packages/ckeditor5-utils/tests/_utils/trustedtypes.js | 17 | export function stubTrustedTypesEnforcement() { | CODE |
| LOW | packages/ckeditor5-utils/tests/_utils/utils.js | 99 | export function expectToThrowCKEditorError( fn, message, editorThatShouldBeFindableFromContext, data ) { | CODE |
| LOW | packages/ckeditor5-utils/tests/_utils/utils.js | 123 | export async function expectToRejectWithCKEditorError( promise, message, editorThatShouldBeFindableFromContext, data ) { | CODE |
| LOW | …es/ckeditor5-utils/tests/_utils/syntheticshadowroot.js | 28 | export function createSyntheticShadowRoot( host ) { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 209 | function testWithoutAncestorOffset() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 339 | function testWithOffsetAndAlignToTop() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 339 | function testWithOffsetAndAlignToTop() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 404 | function testWithOffsetAndAlignToTopAndForceScroll() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 404 | function testWithOffsetAndAlignToTopAndForceScroll() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 1036 | function testWithViewportAndAncestorOffsets() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 1110 | function testWithAlignToTopAndNoOffsets() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 1184 | function testWithAlignToTopAndOffsets() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/scroll.js | 1258 | function testWithAlignToTopOffsetsAndForceScroll() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/rect.js | 1646 | function expectAbsoluteRectToKeepElementInPlace( element ) { | CODE |
| LOW | …ckages/ckeditor5-utils/tests/dom/shadowrootregistry.js | 31 | function createConnectedShadowNode( { mode = 'open', node = document.createElement( 'div' ) } = {} ) { | CODE |
| LOW | …ckages/ckeditor5-utils/tests/dom/shadowrootregistry.js | 732 | function createConnectedShadowNode( { mode = 'open' } = {} ) { | CODE |
| LOW | …ckages/ckeditor5-utils/tests/dom/shadowrootregistry.js | 899 | function createConnectedShadowNode() { | CODE |
| LOW | …kages/ckeditor5-utils/tests/dom/getelementfrompoint.js | 319 | function removeShadowRootElementFromPoint() { | CODE |
| LOW | …kages/ckeditor5-utils/tests/dom/getelementfrompoint.js | 368 | function createNestedShadowElement( mode ) { | CODE |
| LOW | …kages/ckeditor5-utils/tests/dom/getelementfrompoint.js | 387 | function createSiblingShadowElement( mode, top ) { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/position.js | 1078 | function setElementTargetPlayground() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/position.js | 1119 | function setElementTargetLimiterPlayground() { | CODE |
| LOW | packages/ckeditor5-utils/tests/dom/position.js | 1169 | function setElementTargetBigLimiterPlayground() { | CODE |
| 455 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/ckeditor5-list/src/list/listediting.ts | 398 | // ├───────────────────────────┼───────────────────────────┼───────────────────────────┤ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-list/src/list/listediting.ts | 647 | // ┌─────────────────────┬───────────────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-list/src/list/listediting.ts | 649 | // ├─────────────────────┼───────────────────┤ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-list/src/list/listediting.ts | 651 | // ├─────────────────────┼───────────────────┤ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-list/src/list/listediting.ts | 653 | // ├─────────────────────┼───────────────────┤ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-list/src/list/listediting.ts | 655 | // ├─────────────────────┼───────────────────┤ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-list/src/list/listediting.ts | 658 | // ├─────────────────────┼───────────────────┤ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-list/src/list/listediting.ts | 661 | // ├─────────────────────┼───────────────────┤ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-list/src/list/listediting.ts | 664 | // └─────────────────────┴───────────────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 67 | // ┌──────────────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 69 | // └─────────┬────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 71 | // └─────────────────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 73 | // │ ┌─────────V────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 75 | // │ └──────────────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 77 | // ┌─────────V────────┐ Retrieves the selected model.DocumentFragment | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 79 | // └─────────┬────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 81 | // ┌─────────V────────┐ Processes view.DocumentFragment to text/html and text/plain | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 83 | // └─────────┬────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 86 | // ┌────────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 88 | // ┌─────────V────────┐ │ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 90 | // └─────────┬────────┘ │ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 92 | // ┌─────────────└────────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 94 | // │ ┌─────────V────────┐ │ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 96 | // │ └─────────┬────────┘ │ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 98 | // ┌───│─────────────┘ │ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 100 | // │ │ ┌─────────V────────┐ │ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 102 | // │ │ └─────────┬────────┘ │ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 104 | // │ │ └────────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 106 | // │ └─────────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 108 | // │ │ ┌─────────V────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 110 | // │ └─────────┬────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 112 | // │ ┌─────────V────────┐ Resolves the final data.targetRanges. | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 114 | // │ └─────────┬────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 116 | // │ ┌─────────V────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 118 | // │ └─────────┬────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 120 | // │ ┌───────────V───────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 122 | // │ └───────────┬───────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 124 | // │ ┌──────────V──────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 126 | // │ └──────────┬──────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 128 | // │ ┌──────────V──────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 130 | // │ └──────────┬──────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 132 | // │ ┌──────────V──────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 134 | // │ └──────────┬──────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 136 | // └─────────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 138 | // ┌─────────V────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/dragdrop.ts | 140 | // └──────────────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 39 | // ┌──────────────────────┐ ┌──────────────────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 42 | // └───────────┬──────────┘ └───────────┬──────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 44 | // └────────────────┌────────────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 46 | // ┌─────────V────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 49 | // └─────────┬────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 51 | // ┌───────────V───────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 54 | // └───────────┬───────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 56 | // ┌──────────V──────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 59 | // └─────────────────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 64 | // ┌──────────────────────┐ ┌──────────────────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 67 | // └───────────┬──────────┘ └───────────┬──────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 69 | // └────────────────┌────────────────┘ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 71 | // ┌───────────V───────────┐ | COMMENT |
| MEDIUM⚡ | packages/ckeditor5-clipboard/src/clipboardpipeline.ts | 74 | // └───────────┬───────────┘ | COMMENT |
| 9 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/tutorials/widgets/implementing-a-block-widget.md | 841 | inheritAllFrom: '$blockObject', | COMMENT |
| LOW | packages/ckeditor5-enter/src/shiftentercommand.ts | 101 | insertBreak( model, writer, range.end, selection.getAttributes() ); | COMMENT |
| LOW | packages/ckeditor5-utils/tests/focustracker.js | 561 | childViewA.element.remove(); | COMMENT |
| LOW | packages/ckeditor5-utils/tests/dom/position.js | 1061 | } | COMMENT |
| LOW | packages/ckeditor5-utils/tests/dom/position.js | 1101 | // | | | COMMENT |
| LOW | packages/ckeditor5-utils/tests/dom/position.js | 1141 | bottom: 110, | COMMENT |
| LOW | packages/ckeditor5-utils/src/focustracker.ts | 341 | COMMENT | |
| LOW | packages/ckeditor5-utils/src/focustracker.ts | 361 | // @if CK_DEBUG_FOCUSTRACKER // ): string { | COMMENT |
| LOW | packages/ckeditor5-utils/src/focustracker.ts | 381 | // @if CK_DEBUG_FOCUSTRACKER // console.groupEnd(); | COMMENT |
| LOW | packages/ckeditor5-utils/src/focustracker.ts | 401 | // @if CK_DEBUG_FOCUSTRACKER // } | COMMENT |
| LOW | packages/ckeditor5-utils/src/collection.ts | 581 | // | COMMENT |
| LOW | packages/ckeditor5-utils/src/fastdiff.ts | 161 | COMMENT | |
| LOW | packages/ckeditor5-utils/src/emittermixin.ts | 761 | // Note, that we might need to create intermediate events too. | COMMENT |
| LOW | packages/ckeditor5-utils/src/observablemixin.ts | 381 | } ); | COMMENT |
| LOW | packages/ckeditor5-utils/src/observablemixin.ts | 401 | // } ) | COMMENT |
| LOW | packages/ckeditor5-utils/src/observablemixin.ts | 421 | // { observable: A, property: 'd', to: [ [ B, 'z' ], [ C, 'w' ] ], callback: callback } | COMMENT |
| LOW | packages/ckeditor5-utils/src/observablemixin.ts | 441 | // Map( { | COMMENT |
| LOW | packages/ckeditor5-utils/src/dom/position.ts | 21 | // @if CK_DEBUG_POSITION // const TARGET_RECT_STYLE = { | COMMENT |
| LOW | packages/ckeditor5-utils/src/dom/rect.ts | 601 | let moveX = 0; | COMMENT |
| LOW | …itor5-image/docs/framework/deep-dive/upload-adapter.md | 361 | // The rest of the MyUploadAdapter class definition. | COMMENT |
| LOW | …ckages/ckeditor5-editor-classic/src/classiceditorui.ts | 101 | COMMENT | |
| LOW | …or5-markdown-gfm/tests/gfmdataprocessor/blockquotes.js | 141 | '>\n' + | COMMENT |
| LOW | packages/ckeditor5-widget/src/widget.ts | 101 | const view = editor.editing.view; | COMMENT |
| LOW | packages/ckeditor5-widget/src/widget.ts | 181 | // If mouse down is pressed on widget - create selection over whole widget. | COMMENT |
| LOW | packages/ckeditor5-widget/src/widgetresize/resizer.ts | 361 | * | COMMENT |
| LOW | packages/ckeditor5-editor-inline/src/inlineeditorui.ts | 81 | // Mark the main editing root (adds `ck-editor__editable_root`) so themes can target it without | COMMENT |
| LOW | packages/ckeditor5-bookmark/src/bookmarkui.ts | 561 | COMMENT | |
| LOW | …s/ckeditor5-editor-multi-root/src/multirooteditorui.ts | 121 | const editableElement = editable.element!; | COMMENT |
| LOW | …itor5-fullscreen/src/handlers/abstracteditorhandler.ts | 381 | this._saveAncestorsScrollPositions( this._editor.ui.getEditableElement()! ); | COMMENT |
| LOW | …s/ckeditor5-list/tests/legacylist/legacylistcommand.js | 201 | // 9 * -------- <- this should still be a child of item above, so indent = 1. | COMMENT |
| LOW | …s/ckeditor5-list/tests/legacylist/legacylistcommand.js | 441 | '<listItem listIndent="1" listType="numbered">---</listItem>' + | COMMENT |
| LOW | …t/tests/legacylistproperties/legacyliststylecommand.js | 421 | } ); | COMMENT |
| LOW | …or5-list/tests/listproperties/listpropertiesediting.js | 621 | it( 'should ensure that all item in a single list have the same `listReversed` attribute', () => { | COMMENT |
| LOW | …or5-list/tests/listproperties/listpropertiesediting.js | 921 | # 4.1. {start:3} | COMMENT |
| LOW | …or5-list/tests/listproperties/listpropertiesediting.js | 1061 | # 1a. {start:2} | COMMENT |
| LOW | …keditor5-list/tests/listproperties/liststartcommand.js | 361 | // | COMMENT |
| LOW | …keditor5-list/tests/listproperties/liststartcommand.js | 381 | # 3.1. {start:4} | COMMENT |
| LOW | …itor5-list/tests/listproperties/listreversedcommand.js | 341 | listReversedCommand.execute( { reversed: false } ); | COMMENT |
| LOW | …itor5-list/tests/listproperties/listreversedcommand.js | 361 | // [X] ▶ 2.1.1.] | COMMENT |
| LOW | …keditor5-list/tests/listproperties/liststylecommand.js | 321 | // "2.1.1" a child list of the "2.1" element (listIndent=2) | COMMENT |
| LOW | …ges/ckeditor5-list/src/legacylist/legacylistcommand.ts | 81 | // Correct indent of all items after the last turned off item. | COMMENT |
| LOW | …ges/ckeditor5-list/src/legacylist/legacylistcommand.ts | 101 | // 12 * -------- <-- this and all below are left unchanged. | COMMENT |
| LOW | …ges/ckeditor5-list/src/legacylist/legacylistcommand.ts | 121 | // 13 * -------- | COMMENT |
| LOW | …ges/ckeditor5-list/src/legacylist/legacylistcommand.ts | 161 | // Changing one nested list item to other type should also trigger changing all its siblings so the | COMMENT |
| LOW | …ges/ckeditor5-list/src/legacylist/legacylistcommand.ts | 281 | isBackward: boolean, | COMMENT |
| LOW | packages/ckeditor5-list/src/legacylist/legacyutils.ts | 321 | // If found something else than `listItem`, we're out of the list scope. | COMMENT |
| LOW | packages/ckeditor5-list/src/legacylist/legacyutils.ts | 341 | // ○ List item 3. [listIndent=1] | COMMENT |
| LOW | …ages/ckeditor5-list/src/legacylist/legacyconverters.ts | 261 | if ( data.item.name != 'listItem' ) { | COMMENT |
| LOW | …ages/ckeditor5-list/src/legacylist/legacyconverters.ts | 281 | // Insert paragraph after item 1.1.1: | COMMENT |
| LOW | …ages/ckeditor5-list/src/legacylist/legacyconverters.ts | 301 | // 1.1 -------- | COMMENT |
| LOW | …ages/ckeditor5-list/src/legacylist/legacyconverters.ts | 881 | // If this is a list, we expect that some `listItem`s and possibly other blocks will be inserted, however `.modelCurs | COMMENT |
| LOW | …ages/ckeditor5-list/src/legacylist/legacyconverters.ts | 901 | // | COMMENT |
| LOW | …ages/ckeditor5-list/src/legacylist/legacyconverters.ts | 981 | // Lorem ipsum. | COMMENT |
| LOW | …ages/ckeditor5-list/src/legacylist/legacyconverters.ts | 1001 | // 1.1 -------- | COMMENT |
| LOW | …ages/ckeditor5-list/src/legacylist/legacyconverters.ts | 1021 | // 1.1 -------- <--- this is removed, previous list item has indent smaller than reference indent. | COMMENT |
| LOW | …rc/legacylistproperties/legacylistpropertiesediting.ts | 521 | // ○ List item 2. | COMMENT |
| LOW | …rc/legacylistproperties/legacylistpropertiesediting.ts | 681 | // attributes for inserted (pasted) items. See https://github.com/ckeditor/ckeditor5/issues/8160. | COMMENT |
| LOW | …itor5-list/src/legacytodolist/legacytodolistediting.ts | 141 | COMMENT | |
| LOW | packages/ckeditor5-list/src/list/converters.ts | 841 | // The <li> uses a fixed ID per indent (`list-item-skip-N`) so that sibling items sharing | COMMENT |
| LOW | packages/ckeditor5-list/src/list/listediting.ts | 641 | // | COMMENT |
| 216 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ckages/ckeditor5-widget/src/widgettoolbarrepository.ts | 115 | // UI#update is not fired after focus is back in editor, we need to check if balloon panel should be visible. | COMMENT |
| LOW | packages/ckeditor5-typing/src/twostepcaretmovement.ts | 443 | // We need to check if the caret is a one position before the attribute boundary: | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 636 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 642 | // Step 3: <p>foo{}<b></b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 658 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 668 | // Step 1: <p>"FILLER{}"<b>foo</b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 691 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 695 | // Step 3: <p><b>{}foo</b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 711 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 721 | // Step 1: <p>"FILLER{}"<b>foo</b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 743 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 747 | // Step 3: <p><b>{}foo</b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 763 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 771 | // Step 1: <p>"FILLER{}"<b>foo</b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 794 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 798 | // Step 3: <p><b>foo{}</b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 814 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 823 | // Step 1: <p><br>{}</p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 845 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 849 | // Step 3: <p>{}<br></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 864 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 874 | // Step 1: <p>"FILLER{}"<b>foo</b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 896 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 900 | // Step 3: <p><b>foo{}</b></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1004 | // Step 2: Add text node. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1012 | // Step 3: Remove selection from the view. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1040 | // Step 2: Remove the <b> and update the selection (<p>bar[]</p>). | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1048 | // Step 3: Check whether there's no filler in the DOM. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1055 | // Step 1: <p><b>foo</b>"FILLER{}"<b>bar</b></p><p></p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1122 | // Step 3: Check whether new filler was created in the <i> element. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1131 | // Step 1: <p>bar<b>abc</b>"FILLER"{}</p> | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1143 | // Step 2: Move selection to a new attribute element. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1152 | // Step 3: Check whether old filler was removed. | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 609 | // Step 1: <p>foo<b>"FILLER{}"</b></p> | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 916 | // Step 4: No mutation on second render | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 951 | // Step 1: <p>foo<b>"FILLER{}"</b></p> | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 972 | // Step 2: <p>foo<b></b><i>"FILLER{}"</i></p> | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 988 | // Step 1: <p>foo<b>"FILLER{}"</b></p> | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 1028 | // Step 1: <p>bar<b>foo</b>"FILLER{}"</p> | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 1072 | // Step 2: Move <b>foo</b><b>bar</b> to the second paragraph and leave collapsed selection in the first one. | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 1086 | // Step 3: Check whether in the first paragraph there's a <br> filler and that | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 1099 | // Step 1: <p>bar<b>"FILLER{}"</b></p> | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 1111 | // Step 2: Move selection to a new attribute element and remove the previous one | COMMENT |
| LOW | packages/ckeditor5-engine/src/model/writer.ts | 204 | // We need to check if item is going to be inserted within the same document. | COMMENT |
| LOW | …ages/ckeditor5-engine/src/model/utils/deletecontent.ts | 221 | // 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.ts | 2662 | // For insert or remove use parent element because we need to check if it's added/removed child. | COMMENT |
| LOW | packages/ckeditor5-engine/src/view/downcastwriter.ts | 1084 | // We need to check if parent of this text matches to given element. | COMMENT |
| LOW | packages/ckeditor5-engine/src/view/downcastwriter.ts | 1097 | // We need to check if element range stick out of the given range and truncate if it is. | COMMENT |
| LOW | packages/ckeditor5-table/src/tableutils.ts | 896 | // This check is needed since we need to check if there are any cells from previous rows than spans over this cell's | COMMENT |
| LOW⚡ | …ditor5-table/src/converters/table-layout-post-fixer.ts | 273 | // Step 1: correct rowspans of table cells if necessary. | COMMENT |
| LOW⚡ | …ditor5-table/src/converters/table-layout-post-fixer.ts | 276 | // Step 2: fix table rows sizes. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/updating/migration-to-cdn/angular.md | 27 | ### Step 1: Remove CKEditor 5 imports | COMMENT |
| LOW | docs/updating/migration-to-cdn/angular.md | 36 | ### Step 2: Update your Angular components to use CDN | COMMENT |
| LOW | docs/updating/migration-to-cdn/vuejs-v3.md | 27 | ### Step 1: Remove CKEditor 5 imports | COMMENT |
| LOW | docs/updating/migration-to-cdn/vuejs-v3.md | 36 | ### Step 2: Update your Vue components to use CDN | COMMENT |
| LOW | docs/updating/migration-to-cdn/react.md | 29 | #### Step 1: Remove CKEditor 5 imports | COMMENT |
| LOW | docs/updating/migration-to-cdn/react.md | 38 | #### Step 2: Use `useCKEditorCloud` hook to load CKEditor 5 from CDN | COMMENT |
| LOW | docs/updating/migration-to-cdn/react.md | 209 | #### Step 1: Remove CKEditor 5 imports | COMMENT |
| LOW | docs/updating/migration-to-cdn/react.md | 218 | #### Step 2: Use `useCKEditorCloud` hook to load CKEditor 5 Context from CDN | COMMENT |
| LOW | docs/updating/migration-to-cdn/react.md | 337 | #### Step 1: Remove CKEditor 5 imports | COMMENT |
| LOW | docs/updating/migration-to-cdn/react.md | 346 | #### Step 2: Use `withCKEditorCloud` HOC to load CKEditor 5 from CDN | COMMENT |
| LOW | docs/updating/migration-to-cdn/testing-suite.md | 19 | ### Step 1: Remove CKEditor 5 imports | COMMENT |
| LOW | docs/updating/migration-to-cdn/testing-suite.md | 28 | ### Step 2: Update your test files to use CDN | COMMENT |
| LOW | docs/updating/migration-to-cdn/vanilla-js.md | 23 | ### Step 1: Update your HTML file | COMMENT |
| LOW | docs/updating/migration-to-cdn/vanilla-js.md | 48 | ### Step 2: Replace CKEditor 5 imports with `window.CKEDITOR` | COMMENT |
| LOW | docs/updating/migration-to-cdn/vanilla-js.md | 90 | ### Step 1: Install the `@ckeditor/ckeditor5-integrations-common` Package | COMMENT |
| LOW | docs/updating/migration-to-cdn/vanilla-js.md | 98 | ### Step 2: Replace CKEditor 5 Imports | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 636 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 658 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 691 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 711 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 743 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 763 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 794 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 814 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 845 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 864 | // Step 4: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 896 | // Step 2: No mutation on second render | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1004 | // Step 2: Add text node. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1012 | // Step 3: Remove selection from the view. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1040 | // Step 2: Remove the <b> and update the selection (<p>bar[]</p>). | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1048 | // Step 3: Check whether there's no filler in the DOM. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1122 | // Step 3: Check whether new filler was created in the <i> element. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1143 | // Step 2: Move selection to a new attribute element. | COMMENT |
| LOW⚡ | packages/ckeditor5-engine/tests/view/renderer.js | 1152 | // Step 3: Check whether old filler was removed. | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 916 | // Step 4: No mutation on second render | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 1072 | // Step 2: Move <b>foo</b><b>bar</b> to the second paragraph and leave collapsed selection in the first one. | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 1086 | // Step 3: Check whether in the first paragraph there's a <br> filler and that | COMMENT |
| LOW | packages/ckeditor5-engine/tests/view/renderer.js | 1111 | // Step 2: Move selection to a new attribute element and remove the previous one | COMMENT |
| LOW⚡ | …ditor5-table/src/converters/table-layout-post-fixer.ts | 273 | // Step 1: correct rowspans of table cells if necessary. | COMMENT |
| LOW⚡ | …ditor5-table/src/converters/table-layout-post-fixer.ts | 276 | // Step 2: fix table rows sizes. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/ckeditor5-editor-classic/src/classiceditor.ts | 173 | * # Creating a detached editor | COMMENT |
| MEDIUM | packages/ckeditor5-editor-classic/src/classiceditor.ts | 256 | * # Creating a detached editor | COMMENT |
| MEDIUM | packages/ckeditor5-editor-inline/src/inlineeditor.ts | 166 | * # Creating a detached editor | COMMENT |
| MEDIUM | packages/ckeditor5-editor-inline/src/inlineeditor.ts | 249 | * # Creating a detached editor | COMMENT |
| MEDIUM | …ges/ckeditor5-editor-multi-root/src/multirooteditor.ts | 900 | * # Creating a detached editor | COMMENT |
| MEDIUM⚡ | …ges/ckeditor5-editor-multi-root/src/multirooteditor.ts | 1033 | * # Creating a detached editor | COMMENT |
| MEDIUM | packages/ckeditor5-editor-balloon/src/ballooneditor.ts | 166 | * # Creating a detached editor | COMMENT |
| MEDIUM | packages/ckeditor5-editor-balloon/src/ballooneditor.ts | 255 | * # Creating a detached editor | COMMENT |
| MEDIUM | …ages/ckeditor5-editor-decoupled/src/decouplededitor.ts | 190 | * # Creating a detached editor | COMMENT |
| MEDIUM | …ages/ckeditor5-editor-decoupled/src/decouplededitor.ts | 285 | * # Creating a detached editor | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | CHANGELOG.md | 351 | * **[ai](https://www.npmjs.com/package/@ckeditor/ckeditor5-ai)**: Removed normalization of AI-generated content through | COMMENT |
| HIGH | docs/updating/update-to-48.md | 43 | ### AI-generated suggestions in track changes (⭐) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | docs/getting-started/setup/ui-language.md | 144 | Configure {@link module:core/editor/editorconfig~EditorConfig#language `config.language`} to change the language of the | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …itor5-fullscreen/src/handlers/abstracteditorhandler.ts | 53 | * The only method that is necessary to provide when extending this class is {@link #defaultOnEnter}. However, make sure | COMMENT |
| MEDIUM | …ages/ckeditor5-engine/src/model/operation/transform.ts | 1836 | // Note that this is a simplified version of default case, but here we treat the common part (whole `rangeA`) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/getting-started/integrations/jquery.md | 19 | To set up the editor from npm, you need a bundler to build the JavaScript files correctly. CKEditor 5 is compatibl | CODE |
| MEDIUM | docs/getting-started/integrations/quick-start.md | 18 | To set up the editor from npm, you need a bundler to build the JavaScript files correctly. CKEditor 5 is compatible wit | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | packages/ckeditor5-cloud-services/manual/token.ts | 39 | function handleRequest( xhr: XMLHttpRequest, resolve: any, reject: any ) { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ckages/ckeditor5/tests/_data/full-websites-styled.html | 2977 | style="color:#2980b9;">. Now, let’s just add some toolbar with stylish buttons to | CODE |