wikimedia/mediawiki-extensions-VisualEditor

View on GitHub

Showing 912 of 912 total issues

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

ve.dm.MWParameterModel.prototype.isDocumented = function () {
    return this.template.getSpec().isParameterDocumented( this.name );
};
Severity: Major
Found in modules/ve-mw/dm/models/ve.dm.MWParameterModel.js and 7 other locations - About 1 hr to fix
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 60..62
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 67..69
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 123..125
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 130..132
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 137..139
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 144..146
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 151..153

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 58.

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 8 locations. Consider refactoring.
Open

ve.dm.MWParameterModel.prototype.getExampleValue = function () {
    return this.template.getSpec().getParameterExampleValue( this.name );
};
Severity: Major
Found in modules/ve-mw/dm/models/ve.dm.MWParameterModel.js and 7 other locations - About 1 hr to fix
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 60..62
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 67..69
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 74..76
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 123..125
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 130..132
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 144..146
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 151..153

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 58.

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 8 locations. Consider refactoring.
Open

ve.dm.MWParameterModel.prototype.getAutoValue = function () {
    return this.template.getSpec().getParameterAutoValue( this.name );
};
Severity: Major
Found in modules/ve-mw/dm/models/ve.dm.MWParameterModel.js and 7 other locations - About 1 hr to fix
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 60..62
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 67..69
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 74..76
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 123..125
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 130..132
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 137..139
modules/ve-mw/dm/models/ve.dm.MWParameterModel.js on lines 151..153

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 58.

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

mw.libs.ve.MWEditModeVisualTool = function VeUiMWEditModeVisualTool() {
    // Parent constructor
    mw.libs.ve.MWEditModeVisualTool.super.apply( this, arguments );
};
Severity: Major
Found in modules/ve-mw/preinit/ve.init.MWEditModeTool.js and 1 other location - About 1 hr to fix
modules/ve-mw/preinit/ve.init.MWEditModeTool.js on lines 127..130

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 58.

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

mw.libs.ve.MWEditModeSourceTool = function VeUiMWEditModeSourceTool() {
    // Parent constructor
    mw.libs.ve.MWEditModeSourceTool.super.apply( this, arguments );
};
Severity: Major
Found in modules/ve-mw/preinit/ve.init.MWEditModeTool.js and 1 other location - About 1 hr to fix
modules/ve-mw/preinit/ve.init.MWEditModeTool.js on lines 103..106

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 58.

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

Method __construct has 9 arguments (exceeds 4 allowed). Consider refactoring.
Open

        ApiMain $main,
        string $name,
        HookContainer $hookContainer,
        IBufferingStatsdDataFactory $statsdDataFactory,
        PageEditStash $pageEditStash,
Severity: Major
Found in includes/ApiVisualEditorEdit.php - About 1 hr to fix

    Function trackSaveError has 28 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

    ve.init.mw.ArticleTargetEvents.prototype.trackSaveError = function ( code ) {
        // Maps error codes to editAttemptStep types
        const typeMap = {
                badtoken: 'userBadToken',
                assertanonfailed: 'userNewUser',
    Severity: Minor
    Found in modules/ve-mw/init/ve.init.mw.ArticleTargetEvents.js - About 1 hr to fix

      Function filterParameters has 28 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

      ve.ui.MWTransclusionOutlineTemplateWidget.prototype.filterParameters = function ( query ) {
          const template = this.templateModel,
              spec = this.templateModel.getSpec(),
              visibility = {};
          let nothingFound = true;

        Function newFromImageAttributes has 28 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

        ve.dm.MWImageModel.static.newFromImageAttributes = function ( attrs, parentDoc ) {
            const imgModel = new ve.dm.MWImageModel(
                parentDoc,
                {
                    resourceName: attrs.resource,
        Severity: Minor
        Found in modules/ve-mw/dm/models/ve.dm.MWImageModel.js - About 1 hr to fix

          Method onTextSlotDiffRendererTablePrefix has 28 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              public function onTextSlotDiffRendererTablePrefix(
                  TextSlotDiffRenderer $textSlotDiffRenderer,
                  IContextSource $context,
                  array &$parts
              ) {
          Severity: Minor
          Found in includes/Hooks.php - About 1 hr to fix

            Method getMessageInfo has 28 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                protected function getMessageInfo( ResourceLoaderContext $context ) {
                    $editSubmitButtonLabelPublish = $this->getConfig()
                        ->get( 'EditSubmitButtonLabelPublish' );
                    $saveButtonLabelKey = $editSubmitButtonLabelPublish ? 'publishchanges' : 'savechanges';
                    $saveButtonLabel = $context->msg( $saveButtonLabelKey )->text();
            Severity: Minor
            Found in includes/VisualEditorDataModule.php - About 1 hr to fix

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

              ve.init.mw.Target.prototype.getLocalApi = function ( options ) {
                  options = options || {};
                  options.parameters = ve.extendObject( { formatversion: 2 }, options.parameters );
                  return new mw.Api( options );
              };
              Severity: Major
              Found in modules/ve-mw/init/targets/ve.init.mw.Target.js and 1 other location - About 1 hr to fix
              modules/ve-mw/init/targets/ve.init.mw.Target.js on lines 665..669

              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 57.

              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

                              setTimeout( () => {
                                  done(
                                      seleniumUtils.getBoundingRect( [
                                          ve.init.target.surface.dialogs.currentWindow.$frame[ 0 ]
                                      ] )
              Severity: Major
              Found in build/screenshots-client/userGuide.js and 1 other location - About 1 hr to fix
              build/screenshots-client/userGuide.js on lines 216..222

              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 57.

              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

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

              ve.init.mw.Target.prototype.getContentApi = function ( doc, options ) {
                  options = options || {};
                  options.parameters = ve.extendObject( { formatversion: 2 }, options.parameters );
                  return new mw.Api( options );
              };
              Severity: Major
              Found in modules/ve-mw/init/targets/ve.init.mw.Target.js and 1 other location - About 1 hr to fix
              modules/ve-mw/init/targets/ve.init.mw.Target.js on lines 680..684

              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 57.

              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

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

                          this.bookletLayout.getPagesOrdered().forEach( ( page ) => {
                              if ( page instanceof ve.ui.MWParameterPage ) {
                                  page.updateSize();
                              }
                          } );
              Severity: Major
              Found in modules/ve-mw/ui/dialogs/ve.ui.MWTemplateDialog.js and 1 other location - About 1 hr to fix
              modules/ve-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js on lines 599..603

              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 57.

              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

                      setTimeout( () => {
                          done(
                              seleniumUtils.getBoundingRect( [
                                  ve.init.target.toolbar.tools.citoid.$element[ 0 ]
                              ] )
              Severity: Major
              Found in build/screenshots-client/userGuide.js and 1 other location - About 1 hr to fix
              build/screenshots-client/userGuide.js on lines 119..125

              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 57.

              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

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

                      this.bookletLayout.getPagesOrdered().forEach( ( page ) => {
                          if ( page instanceof ve.ui.MWParameterPage ) {
                              page.updateSize();
                          }
                      } );
              Severity: Major
              Found in modules/ve-mw/ui/dialogs/ve.ui.MWTransclusionDialog.js and 1 other location - About 1 hr to fix
              modules/ve-mw/ui/dialogs/ve.ui.MWTemplateDialog.js on lines 73..77

              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 57.

              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

              Function teardown has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
              Open

              ve.init.mw.ArticleTarget.prototype.teardown = function () {
                  if ( !this.teardownPromise ) {
                      const surface = this.getSurface();
              
                      // Restore access keys
              Severity: Minor
              Found in modules/ve-mw/init/targets/ve.init.mw.ArticleTarget.js - About 1 hr 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 setPage has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
              Open

              ve.ui.MWTwoPaneTransclusionDialogLayout.prototype.setPage = function ( name ) {
                  const page = this.pages[ name ];
              
                  if ( page && name === this.currentPageName ) {
                      return;
              Severity: Minor
              Found in modules/ve-mw/ui/layouts/ve.ui.MWTwoPaneTransclusionDialogLayout.js - About 1 hr 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 setupNewSection has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
              Open

              ve.init.mw.DesktopArticleTarget.prototype.setupNewSection = function ( surface ) {
                  if ( surface.getMode() === 'source' && this.section === 'new' ) {
                      if ( !this.sectionTitle ) {
                          this.sectionTitle = new OO.ui.TextInputWidget( {
                              $element: $( '<h2>' ),
              Severity: Minor
              Found in modules/ve-mw/init/targets/ve.init.mw.DesktopArticleTarget.js - About 1 hr 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

              Severity
              Category
              Status
              Source
              Language