Repository Analysis

dream-num/univer

Univer is a full-stack framework for creating and editing spreadsheets / word processor / presentation on both web and server.

1.0 Likely human-written View on GitHub
1.0
Adjusted Score
1.0
Raw Score
100%
Time Factor
2026-05-30
Last Push
13,110
Stars
TypeScript
Language
1,029,443
Lines of Code
5827
Files
1244
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 1LOW 1243

Pattern Findings

1244 matches across 6 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers623 hits · 648 pts
SeverityFileLineSnippet
LOW…ion/src/__testing__/test-remove-rows-of-filter-rows.ts52export async function expectRemoveRowsOfFilterRowsResultMatchesSnapshot() {
LOW…rmula-integration/src/__testing__/test-formula-move.ts52export async function expectMoveFormulaRowsResultMatchesSnapshot() {
LOW…rmula-integration/src/__testing__/test-formula-move.ts107export async function expectMoveFormulaSiRowsResultMatchesSnapshot() {
LOW…rmula-integration/src/__testing__/test-formula-move.ts162export async function expectMoveFormulaCellResultMatchesSnapshot() {
LOWtests/formula-integration/src/__testing__/util.ts37export async function expectCalculationResultMatchesSnapshot() {
LOW…mmon/mockdata/src/docs/default-document.data-simple.ts66function createParagraphAndSectionBreaks(dataStream: string) {
LOWcommon/mockdata/src/slides/unlimited-slide-data.ts26export function generateUnlimitedSlideData(ratio: number = 1, slideData?: ISlideData): ISlideData {
LOW…shared/tsdown/plugins/class-name-whitespace-cleanup.ts55function normalizeClassNameWhitespace(value: string) {
LOW…shared/tsdown/plugins/class-name-whitespace-cleanup.ts82export function cleanupClassNameTemplateWhitespace(sourceCode: string, filePath: string) {
LOW…shared/tsdown/plugins/class-name-whitespace-cleanup.ts115export function createClassNameWhitespaceCleanupPlugin() {
LOWcommon/shared/tsdown/plugins/output-obfuscator.ts26export function createOutputObfuscatorPlugin(ignorePatterns?: RegExp[]) {
LOWcommon/shared/tsdown/utils/cleanup-pkg.ts65function shouldPreserveExistingDependency(packageName: string) {
LOWcommon/shared/tsdown/utils/cleanup-pkg.ts101function parseModuleSpecifiersFromCode(code: string, filePath: string) {
LOWcommon/shared/tsdown/utils/cleanup-pkg.ts224function collectBareSpecifiersFromSource(packageDir: string) {
LOWcommon/shared/tsdown/utils/cleanup-pkg.ts279function resolveUniverDependencyVersion(name: string) {
LOWcommon/shared/tsdown/utils/package.ts21function getProductionDependencyNames(packageJson: IPackageJson) {
LOWcommon/shared/tsdown/configs/umd.ts39function convertLibNameFromPackageName(name: string) {
LOWcommon/shared/esbuild/index.ts67export function removeClassnameNewlinesPlugin(): IEsbuildPlugin {
LOWexamples/src/sheets/custom/custom-register-event.ts96function registerMainRightClickEvent(univer: Univer, univerAPI: FUniver) {
LOWexamples/src/sheets/custom/custom-register-event.ts157function registerRemoveColumnEvent(univer: Univer, univerAPI: FUniver) {
LOWexamples/src/sheets/custom/custom-register-event.ts184function registerBeforeRemoveColumnEvent(univer: Univer, univerAPI: FUniver) {
LOW…les/src/theme-customizer/components/theme-sections.tsx272export function IntegrationExampleSection(props: {
LOWpackages/find-replace/src/menu/find-replace.menu.ts25export function FindReplaceMenuItemFactory(accessor: IAccessor): IMenuButtonItem {
LOW…ind-replace/src/controllers/find-replace.controller.ts164function getFindReplaceDialogDefaultPosition(): { x: number; y: number } {
LOW…/find-replace/src/controllers/find-replace.shortcut.ts31function whenFindReplaceDialogFocused(contextService: IContextService): boolean {
LOW…/find-replace/src/controllers/find-replace.shortcut.ts39function whenFindReplaceInputFocused(contextService: IContextService): boolean {
LOW…ages/find-replace/src/services/find-replace.service.ts186function shouldStateUpdateTriggerResearch(statusUpdate: Partial<IFindReplaceState>): boolean {
LOW…ages/find-replace/src/services/find-replace.service.ts518export function createInitFindReplaceState(): IFindReplaceState {
LOWpackages/drawing-ui/src/menu/arrange.menu.ts27export function DrawingArrangeContextMenuItemFactory(): IMenuSelectorItem<string> {
LOWpackages/drawing-ui/src/menu/arrange.menu.ts36export function SetDrawingArrangeFrontMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/arrange.menu.ts45export function SetDrawingArrangeForwardMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/arrange.menu.ts54export function SetDrawingArrangeBackMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/arrange.menu.ts63export function SetDrawingArrangeBackwardMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/group.menu.ts75export function DrawingGroupContextMenuItemFactory(accessor: IAccessor): IMenuSelectorItem<string> {
LOWpackages/drawing-ui/src/menu/group.menu.ts85export function SetDrawingGroupMenuItemFactory(accessor: IAccessor): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/group.menu.ts95export function CancelDrawingGroupMenuItemFactory(accessor: IAccessor): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/align.menu.ts64export function DrawingAlignContextMenuItemFactory(accessor: IAccessor): IMenuSelectorItem<string> {
LOWpackages/drawing-ui/src/menu/align.menu.ts74export function SetDrawingAlignLeftMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/align.menu.ts83export function SetDrawingAlignCenterMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/align.menu.ts92export function SetDrawingAlignRightMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/align.menu.ts101export function SetDrawingAlignTopMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/align.menu.ts110export function SetDrawingAlignMiddleMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/align.menu.ts119export function SetDrawingAlignBottomMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/align.menu.ts128export function SetDrawingAlignHorizonMenuItemFactory(): IMenuButtonItem {
LOWpackages/drawing-ui/src/menu/align.menu.ts137export function SetDrawingAlignVerticalMenuItemFactory(): IMenuButtonItem {
LOW…n-ui/src/__tests__/docs-mention-ui.integration.spec.ts51function createMentionDraftDocData(): IDocumentData {
LOW…s/ui/src/components/hooks/__tests__/observable.spec.ts70 function useTestSwitchObservableBed() {
LOW…kages/ui/src/components/menu/desktop/TinyMenuGroup.tsx42export function resolveMenuItemActiveState(itemId: string | undefined, observableActive: boolean, activeItemIds?: string
LOW…kages/ui/src/components/menu/desktop/TinyMenuGroup.tsx54export function getVisibleTinyMenuChildren(children: IMenuSchema[], hiddenItemKeys: string[]): IMenuSchema[] {
LOW…s/ui/src/components/menu/mobile/MobileMenu.stories.tsx37function createMobileMenuStorybookBed() {
LOWpackages/ui/src/components/menu/mobile/MobileMenu.tsx281function MobileSelectionOptionsView(props: {
LOWpackages/ui/src/components/menu/mobile/MobileMenu.tsx359function useMobileSchemaInteraction(props: {
LOWpackages/ui/src/components/menu/mobile/MobileMenu.tsx478function useContextGroupHiddenStates(menuSchemas: IMenuSchema[]) {
LOWpackages/ui/src/common/menu-hidden-observable.ts60export function getHeaderFooterMenuHiddenObservable(
LOW…kages/ui/src/controllers/shared-shortcut.controller.ts33function whenEditorFocusedButNotCellEditor(contextService: IContextService): boolean {
LOWpackages/ui/src/controllers/shortcut-display/menu.ts21export function ShortcutPanelMenuItemFactory(): IMenuButtonItem {
LOW…src/views/components/context-menu/ContextMenuPanel.tsx88export function hasRenderableContextMenuSchema(menuSchema: IMenuSchema): boolean {
LOW…src/views/components/context-menu/ContextMenuPanel.tsx761function useContextGroupHiddenStates(menuSchemas: IMenuSchema[]) {
LOWpackages/ui/src/views/components/ribbon/ToolbarItem.tsx92 function handleSelectionsValueChange(value: string | number) {
LOW…i/src/views/components/ribbon/TooltipButtonWrapper.tsx46 function handleChangeTooltipVisible(visible: boolean) {
563 more matches not shown…
Over-Commented Block581 hits · 344 pts
SeverityFileLineSnippet
LOWplaywright.config.ts61
LOWcommon/mockdata/src/sheets/slide-workbook-data.ts621 // range: {
LOWcommon/mockdata/src/sheets/default-workbook-data.ts601 'sheet-06': {
LOWcommon/mockdata/src/sheets/default-workbook-data.ts621 // namedRangeId: 'named-range-02',
LOWcommon/mockdata/src/sheets/default-workbook-data.ts941 // name: 'namedRange0001',
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16781 rightToLeft: 0,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16801 // "startColumn": 1,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16821 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16841 // "startRow": 3,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16861 // "startColumn": 16,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16881 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16901 // "startRow": 7,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16921 // "startColumn": 13,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16941 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16961 // "startRow": 12,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts16981 // "startColumn": 16,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17001 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17021 // "startRow": 20,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17041 // "startColumn": 16,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17061 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17081 // "startRow": 23,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17101 // "startColumn": 4,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17121 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17141 // "startRow": 26,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17161 // "startColumn": 3,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17181 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17201 // "startRow": 29,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17221 // "startColumn": 8,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17241 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17261 // "startRow": 32,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17281 // "startColumn": 8,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17301 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17321 // "startRow": 36,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17341 // "startColumn": 1,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17361 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17381 // "startRow": 40,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17401 // "startColumn": 3,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17421 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17441 // "startRow": 43,
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17461 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17481 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17501 // "12": {
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17521 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17541 // }
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17561 // "5": {
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17581 // "11": {
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17601 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17621 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17641 // "s": "I7SikP"
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17661 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17681 // "14": {
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17701 // "v": "",
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17721 // "m": ""
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17741 // "m": "差额"
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17761 // "9": {
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17781 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17801 // "19": {
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17821 // },
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17841 // "m": ""
LOW…ockdata/src/sheets/demo/default-workbook-data-demo7.ts17861 // "m": ""
521 more matches not shown…
Verbosity Indicators33 hits · 55 pts
SeverityFileLineSnippet
LOWpackages/core/src/shared/numfmt.ts149 * If the pattern is 'h:mm AM/PM' or 'hh:mm AM/PM', we need to check if the value ends with ' A', ' P', ' AM', o
LOWpackages/core/src/shared/range.ts148 // Step 1: Group ranges by row
LOWpackages/core/src/shared/range.ts158 // Step 2: Merge ranges within each row
LOWpackages/core/src/shared/range.ts196 // Step 1: Sort ranges by columns and then by rows
LOWpackages/core/src/shared/range.ts209 // Step 2: Merge ranges within each column
LOW…ore/src/docs/data-model/text-x/build-utils/drawings.ts91 // Step 1: Insert placeholder `\b` in dataStream and add drawing to customBlocks.
LOW…ore/src/docs/data-model/text-x/build-utils/drawings.ts152 // Step 2: add drawing to drawings and drawingsOrder fields.
LOW…cs-ui/src/commands/commands/clipboard.inner.command.ts404 // Step 3: delete table rows;
LOW…rc/commands/commands/table/doc-table-insert.command.ts177 // Step 3: Insert table row;
LOW…rc/commands/commands/table/doc-table-insert.command.ts285 // Step 3: Insert table cell;
LOW…rc/commands/commands/table/doc-table-create.command.ts117 // Step 1: Break lines if necessary.
LOW…rc/commands/commands/table/doc-table-create.command.ts137 // Step 2: Insert table.
LOW…rc/commands/commands/table/doc-table-create.command.ts179 // Step 3: Insert table source;
LOW…rc/commands/commands/table/doc-table-delete.command.ts109 // Step 3: delete table rows;
LOW…rc/commands/commands/table/doc-table-delete.command.ts215 // Step 3: delete table columns;
LOW…rc/commands/commands/table/doc-table-delete.command.ts321 // Step 3: delete table;
LOWpackages/docs-ui/src/services/editor/editor.ts242 // Step 1: set current editor to currentDocUnit.
LOWpackages/docs-ui/src/services/editor/editor.ts247 // Step 2: Focus this input element.
LOW…/sheets-ui/src/services/clipboard/clipboard.service.ts350 // clipboard item from excel may contain image, so we need to check if the clipboard item is from excel
LOW…s/docs/src/commands/mutations/core-editing.mutation.ts98 // Step 1: Update Doc Data Model.
LOW…s/docs/src/commands/mutations/core-editing.mutation.ts102 // Step 2: Update Doc View Model.
LOW…s/docs/src/commands/mutations/core-editing.mutation.ts104 // Step 3: Update cursor & selection.
LOW…s/docs/src/commands/mutations/core-editing.mutation.ts112 // Step 4: Emit state change event.
LOW…ui/src/commands/commands/insert-doc-drawing.command.ts85 // Step 1: Insert placeholder `\b` in dataStream and add drawing to customBlocks.
LOW…ui/src/commands/commands/insert-doc-drawing.command.ts146 // Step 2: add drawing to drawings and drawingsOrder fields.
LOW…controllers/doc-drawing-transform-update.controller.ts257 // Step 1: Update data in drawingManagerService.
LOW…controllers/doc-drawing-transform-update.controller.ts269 // Step 2: remove all drawing shapes.
LOW…controllers/doc-drawing-transform-update.controller.ts276 // Step 3: create new drawing shapes.
LOW…controllers/doc-drawing-transform-update.controller.ts281 // Step 4: reSelect previous shapes and focus previous drawings.
LOW…ckages/engine-render/src/basics/performance-monitor.ts258 // we need to check if we've already wrapped round
LOW…onents/docs/layout/block/paragraph/paragraph-layout.ts51 // Step 1: Text Shaping.
LOW…onents/docs/layout/block/paragraph/paragraph-layout.ts60 // Step 2: Line Breaking.
LOW…onents/docs/layout/block/paragraph/paragraph-layout.ts71 // Step 3: Line Adjustment.
Fake / Example Data4 hits · 6 pts
SeverityFileLineSnippet
LOWcommon/debugger/src/views/use-notification.ts45 content: 'Lorem Ipusm dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labor
LOWpackages/sheets/src/facade/f-workbook.ts858 * name: 'John Doe',
LOW…/sheets/src/facade/permission/f-workbook-permission.ts255 * user: { userID: 'user1', name: 'John Doe', avatar: 'https://...' },
LOW…/sheets/src/facade/permission/f-workbook-permission.ts291 * { userID: 'user1', name: 'John Doe', avatar: 'https://...' },
AI Slop Vocabulary2 hits · 4 pts
SeverityFileLineSnippet
LOWpackages/sheets-numfmt/src/__tests__/utils.test.ts39 expect(getDecimalFromPattern('_(###0);-###0.00')).toBe(0); // the function decimal just use positive,negative co
MEDIUM…/src/engine/reference-object/table-reference-object.ts192 // Not a Section: column/column range. Note: passing original s (with brackets) is more robust.
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippet
LOW…nder/src/components/docs/layout/doc-simple-skeleton.ts262 // Don't forget to add the last line if it has content