wikimedia/mediawiki-core

View on GitHub

Showing 11,545 of 11,545 total issues

Function getFileInfo has a Cognitive Complexity of 36 (exceeds 5 allowed). Consider refactoring.
Open

    public function getFileInfo( IPageConfig $pageConfig, array $files ): array {
        $page = Title::newFromLinkTarget( $pageConfig->getLinkTarget() );

        $keys = [];
        foreach ( $files as $f ) {
Severity: Minor
Found in includes/parser/Parsoid/Config/DataAccess.php - About 5 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

Function checkSvgScriptCallback has a Cognitive Complexity of 36 (exceeds 5 allowed). Consider refactoring.
Open

    public function checkSvgScriptCallback( $element, $attribs, $data = null ) {
        [ $namespace, $strippedElement ] = self::splitXmlNamespace( $element );

        // We specifically don't include:
        // http://www.w3.org/1999/xhtml (T62771)
Severity: Minor
Found in includes/upload/UploadBase.php - About 5 hrs to fix

Cognitive Complexity

Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

A method's cognitive complexity is based on a few simple rules:

  • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
  • Code is considered more complex for each "break in the linear flow of the code"
  • Code is considered more complex when "flow breaking structures are nested"

Further reading

File ArchivedFile.php has 392 lines of code (exceeds 250 allowed). Consider refactoring.
Open

<?php
/**
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
Severity: Minor
Found in includes/filerepo/file/ArchivedFile.php - About 5 hrs to fix

    Function justify has 135 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

        function justify() {
            let lastTop,
                rows = [],
                $gallery = $( this );
    
    
    Severity: Major
    Found in resources/src/mediawiki.page.gallery.js - About 5 hrs to fix

      Method setOldSubtitle has 135 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

          public function setOldSubtitle( $oldid = 0 ) {
              if ( !$this->getHookRunner()->onDisplayOldSubtitle( $this, $oldid ) ) {
                  return;
              }
      
      
      Severity: Major
      Found in includes/page/Article.php - About 5 hrs to fix

        Method getCreditsForExtension has 135 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

            public function getCreditsForExtension( $type, array $extension ) {
                $out = $this->getOutput();
        
                // We must obtain the information for all the bits and pieces!
                // ... such as extension names and links
        Severity: Major
        Found in includes/specials/SpecialVersion.php - About 5 hrs to fix

          File upload.js has 391 lines of code (exceeds 250 allowed). Consider refactoring.
          Open

          /**
           * JavaScript for Special:Upload
           *
           * @private
           * @class mw.special.upload
          Severity: Minor
          Found in resources/src/mediawiki.special.upload/upload.js - About 5 hrs to fix

            Function parseDate has 134 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                parseDate: function (format, value, settings) {
                    if (format == null || value == null)
                        throw 'Invalid arguments';
                    value = (typeof value == 'object' ? value.toString() : value + '');
                    if (value == '')
            Severity: Major
            Found in resources/lib/jquery.ui/jquery.ui.datepicker.js - About 5 hrs to fix

              Method execute has 134 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                  public function execute( $subPage ) {
                      if ( $this->mPosted ) {
                          $time = microtime( true );
                          $profilingScope = new ScopedCallback( function () use ( $time ) {
                              $time = microtime( true ) - $time;
              Severity: Major
              Found in includes/specialpage/LoginSignupSpecialPage.php - About 5 hrs to fix

                Method rename has 134 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                    public function rename() {
                        $dbw = $this->dbProvider->getPrimaryDatabase();
                        $atomicId = $dbw->startAtomic( __METHOD__, $dbw::ATOMIC_CANCELABLE );
                
                        $this->hookRunner->onRenameUserPreRename( $this->uid, $this->old, $this->new );
                Severity: Major
                Found in includes/RenameUser/RenameuserSQL.php - About 5 hrs to fix

                  Method extractOutputData has 134 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                      private function extractOutputData( WatchedItem $watchedItem, array $recentChangeInfo ) {
                          /* Determine the title of the page that has been changed. */
                          $target = $watchedItem->getTarget();
                          if ( $target instanceof LinkTarget ) {
                              $title = Title::newFromLinkTarget( $target );
                  Severity: Major
                  Found in includes/api/ApiQueryWatchlist.php - About 5 hrs to fix

                    File ApiQueryBlocks.php has 390 lines of code (exceeds 250 allowed). Consider refactoring.
                    Open

                    <?php
                    /**
                     * Copyright © 2007 Roan Kattouw <roan.kattouw@gmail.com>
                     *
                     * This program is free software; you can redistribute it and/or modify
                    Severity: Minor
                    Found in includes/api/ApiQueryBlocks.php - About 5 hrs to fix

                      File SpecialNewPages.php has 390 lines of code (exceeds 250 allowed). Consider refactoring.
                      Open

                      <?php
                      /**
                       * This program is free software; you can redistribute it and/or modify
                       * it under the terms of the GNU General Public License as published by
                       * the Free Software Foundation; either version 2 of the License, or
                      Severity: Minor
                      Found in includes/specials/SpecialNewPages.php - About 5 hrs to fix

                        File MessagesFa.php has 390 lines of code (exceeds 250 allowed). Consider refactoring.
                        Open

                        <?php
                        /** Persian (فارسی)
                         *
                         * @file
                         * @ingroup Languages
                        Severity: Minor
                        Found in languages/messages/MessagesFa.php - About 5 hrs to fix

                          Method execute has 134 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                              public function execute() {
                                  $userName = $this->getOption( 'user', false );
                                  $summary = $this->getOption( 'summary', 'Imported from text file' );
                                  $useTimestamp = $this->hasOption( 'use-timestamp' );
                                  $rc = $this->hasOption( 'rc' );
                          Severity: Major
                          Found in maintenance/importTextFiles.php - About 5 hrs to fix

                            Similar blocks of code found in 2 locations. Consider refactoring.
                            Open

                                    if ( !this.sawWheelEvent ) {
                                        if ( event.originalEvent.wheelDeltaX ) {
                                            delta = -event.originalEvent.wheelDeltaX;
                                        } else if ( event.originalEvent.wheelDeltaY ) {
                                            delta = event.originalEvent.wheelDeltaY;
                            Severity: Major
                            Found in resources/lib/ooui/oojs-ui-core.js and 1 other location - About 5 hrs to fix
                            resources/src/mediawiki.widgets.datetime/DateTimeInputWidget.js on lines 754..764

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 142.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            Similar blocks of code found in 2 locations. Consider refactoring.
                            Open

                                    if ( !this.sawWheelEvent ) {
                                        if ( e.originalEvent.wheelDeltaX ) {
                                            delta = -e.originalEvent.wheelDeltaX;
                                        } else if ( e.originalEvent.wheelDeltaY ) {
                                            delta = e.originalEvent.wheelDeltaY;
                            resources/lib/ooui/oojs-ui-core.js on lines 13971..13981

                            Duplicated Code

                            Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

                            Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

                            When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

                            Tuning

                            This issue has a mass of 142.

                            We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

                            The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

                            If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

                            See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

                            Refactorings

                            Further Reading

                            File WikiExporter.php has 389 lines of code (exceeds 250 allowed). Consider refactoring.
                            Open

                            <?php
                            /**
                             * Base class for exporting
                             *
                             * Copyright © 2003, 2005, 2006 Brooke Vibber <bvibber@wikimedia.org>
                            Severity: Minor
                            Found in includes/export/WikiExporter.php - About 5 hrs to fix

                              File McrUndoAction.php has 389 lines of code (exceeds 250 allowed). Consider refactoring.
                              Open

                              <?php
                              /**
                               * Temporary action for MCR undos
                               * @file
                               * @ingroup Actions
                              Severity: Minor
                              Found in includes/actions/McrUndoAction.php - About 5 hrs to fix

                                File MediaWikiTitleCodec.php has 389 lines of code (exceeds 250 allowed). Consider refactoring.
                                Open

                                <?php
                                /**
                                 * A codec for MediaWiki page titles.
                                 *
                                 * This program is free software; you can redistribute it and/or modify
                                Severity: Minor
                                Found in includes/title/MediaWikiTitleCodec.php - About 5 hrs to fix
                                  Severity
                                  Category
                                  Status
                                  Source
                                  Language