SublimeLinter / SublimeLinter-phpmd

SublimeLinter plugin for php, using phpmd.
MIT License
15 stars 9 forks source link

SublimeLinter-phpmd

This linter plugin for SublimeLinter provides an interface to phpmd. It will be used with files that have the "PHP", "HTML" and "HTML5" syntax.

Installation

Install SublimeLinter and SublimeLinter-phpmd

Make sure Package Control is installed.

  1. Open the command palette (Ctrl + Shift + P)
  2. Type Package Control: Install Package and select it.
  3. Type SublimeLinter and select it.
  4. Repeat steps 1-3 typing SublimeLinter-phpmd in step 3.

Install phpmd

Choose one of the installation methods below.

A local install allows you to fine-tune phpmd on a per-project basis. A global install is available system-wide.

Local install with Composer

On a command line inside your project:

composer require phpmd/phpmd

Inside Sublime, go to Preferences -> Package Settings -> SublimeLinter -> Settings.

Set the phpmd executable by adding/editing:

  "linters": {
    "phpmd": {
      "executable": "${folder}/vendor/bin/phpmd"
    }
  }

Global install with Composer

composer global require phpmd/phpmd

Make sure the composer global bin directory is available in $PATH:

export PATH=~/.composer/vendor/bin:$PATH

Global install with PEAR

pear channel-discover pear.phpmd.org
pear channel-discover pear.pdepend.org
pear install --alldeps phpmd/PHP_PMD

Settings

Additional settings

If you want to use a baseline file, the linter needs to run on the actual files instead of the temporary files we need for real-time "background" linting. Therefore, set the "real_file_mode" setting to true.

"linters": {
  "phpmd": {
    "real_file_mode": true
  }
}

Rulesets

You can configure rules via the rulesets setting. This can be a list of rules, or a path to a custom ruleset file.

  "linters": {
    "phpmd": {
      "rulesets": "codesize,unusedcode,naming"
    }
  }
  "linters": {
    "phpmd": {
      "rulesets": "${folder}/phpmd.xml"
    }
  }