How to use atom-linter - 10 common examples

To help you get started, we’ve selected a few atom-linter examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github mschuchard / linter-jenkins / lib / main.js View on Github external
}

        // output raw command for debugging assistance
        if (atom.config.get('linter-jenkins.debug')) {
          stdin = cmd == 'curl' ? '' : ` < ${activeEditor.getPath()}`;
          return [{severity: 'info',
                   excerpt: cmd + ' ' + args.join(' ') + stdin,
                   location: {
                     file: file,
                     position: [[0, 0], [0, 1]]
                   }
                 }];
        }

        // lint
        return helpers.exec(cmd, args, opts).then(output => {
          var toReturn = [];

          output.split(/\r?\n/).forEach(function (line) {
            // matcher for output parsing and capturing
            const matches = regex.exec(line);

            // check for errors
            if (matches != null) {
              toReturn.push({
                severity: 'error',
                excerpt: matches[1],
                location: {
                  file: file,
                  position: [[Number.parseInt(matches[2]) - 1, Number.parseInt(matches[3]) - 1], [Number.parseInt(matches[2]) - 1, Number.parseInt(matches[3])]],
                },
              });
github Munkei / atom-linter-cppcheck / lib / linter-cppcheck.js View on Github external
break;
      }

      // --suppress
      for (var suppress of atom.config.get('linter-cppcheck.suppress') || []) {
        args.push(`--suppress=${suppress}`);
      }

      // 
      args.push(textEditor.getPath());

      const executable = atom.config.get('linter-cppcheck.executable');
      console.debug(`[linter-cppcheck] Executing '${executable}' with args:` +
                    ` ${JSON.stringify(args, undefined, 2)}`);

      return exec(
        executable,
        args,
        {
          stream: 'both',
          throwOnStderr: false,
        }
      ).then((output) => {
        if (output.exitCode != 0) {
          atom.notifications.addError(
            'Cppcheck failed',
            {
              buttons: [
                {
                  className: 'btn icon icon-gear',
                  onDidClick: ()=>{
                    atom.workspace.open("atom://config/packages/linter-cppcheck");
github AtomLinter / linter-codeclimate / lib / index.js View on Github external
// Debug the command executed to run the Code Climate CLI to the console
        if (atom.inDevMode()) {
          // eslint-disable-next-line no-console
          console.log('linter-codeclimate:: Command: ' +
            `\`${this.executablePath} ${execArgs.join(' ')}\``);
        }

        // Start measure for how long the analysis took.
        const measureId = `linter-codeclimate: \`${relpath}\` analysis`;
        startMeasure(measureId);

        // Execute the Code Climate CLI, parse the results, and emit them to the
        // Linter package as warnings. The Linter package handles the styling.
        let result;
        try {
          result = await Helpers.exec(this.executablePath, execArgs, execOpts);
        } catch (e) {
          notifyError(e, `${this.executablePath} ${execArgs.join(' ')}`);
          return null;
        }

        // Handle unique spawning: killed execs will return null
        if (result === null) {
          return null;
        }

        let messages;
        try {
          messages = JSON.parse(result);
        } catch (e) {
          notifyError(
            e, `${this.executablePath} ${execArgs.join(' ')}`,
github AtomLinter / linter-hlint / lib / init.js View on Github external
hints = [`--hint=${hlintConfig}`];
        } else {
          // It's outside the project, or not found
          hints = [];
        }
        if (this.ignoreReduceDuplication) {
          hints.push('--ignore="Reduce duplication"');
        }
        const execArgs = baseArgs.concat(hints);

        const execOpts = {
          ignoreExitCode: true,
          cwd: fileDir,
        };

        const output = await exec(this.executablePath, execArgs, execOpts);
        let info;
        try {
          info = JSON.parse(output);
        } catch (error) {
          // eslint-disable-next-line no-console
          console.error('Unable to parse output:', output);
          return null;
        }
        return info.map((error) => {
          const message = {
            excerpt: `${error.hint}: ${error.from} ==> ${error.to}`,
            location: {
              file: filePath,
              position: [
                [error.startLine - 1, error.startColumn - 1],
                [error.endLine - 1, error.endColumn - 1],
github steelbrain / flow-ide / lib / index.js View on Github external
servers.forEach((server, rootDirectory) => {
      const executable = this.executablePath || findCached(rootDirectory, defaultFlowBinLocation) || 'flow'
      exec(executable, ['stop'], {
        cwd: rootDirectory,
        timeout: 60 * 1000,
        detached: true,
        ignoreExitCode: true,
      }).catch(() => null) // <-- ignore all errors
    })
  },
github AtomLinter / linter-elixirc / lib / init.js View on Github external
const lintMix = async (textEditor) => {
  const filePath = textEditor.getPath();
  const fileText = textEditor.getText();
  const execOpts = await getOpts(filePath);

  const result = await exec(mixPath, ['compile'], execOpts);
  if (textEditor.getText() !== fileText) {
    // File contents have changed since the run was triggered, don't update messages
    return null;
  }
  return handleResult(result, filePath);
};
github azawawi / atom-perl6-editor-tools / lib / syntax-check-linter.js View on Github external
projectDir = atom.project.getDirectories().find(
      (dir) => {
        return dir.contains(textEditor.getPath() )
      }
    )
    projectDir = projectDir && projectDir.path ? projectDir.path : null;

    options = {
      env: {
          "RAKUDO_ERROR_COLOR": 0
      },
      cwd: projectDir,
      stream : "both",
      stdin  : textEditor.getText()
    }
    return helpers.exec(command, args, options).then( (output) => {

      // return nothing if no errors are found
      if (output.stdout.match(/Syntax OK\n?/i) && output.stderr == "") {
        return []
      }

      // Try to find the error message and line number
      regex = /.+?[\r\n]((?:.|[\r\n])+\s+at\s+.+?(\d+)(?:\.|[\r\n]|$)[\s\S]*)/
      stderr = output.stderr
      match = regex.exec(stderr)
      if (match) {
        // Success; Remove the ansi escape sequence noise from the message
        message = match[1]
        line    = match[2] - 1
      } else {
        // We failed, at least show the message without line number information
github mschuchard / linter-terraform-syntax / lib / main.js View on Github external
for (i = 0; i < atom.config.get('linter-terraform-syntax.globalVarFiles').length; i++)
              args.push(...['-var-file', atom.config.get('linter-terraform-syntax.globalVarFiles')[i]]);

          // add local var files
          if (atom.config.get('linter-terraform-syntax.localVarFiles')[0] != '')
            for (i = 0; i < atom.config.get('linter-terraform-syntax.localVarFiles').length; i++)
              args.push(...['-var-file', atom.config.get('linter-terraform-syntax.localVarFiles')[i]]);

          // do not check if required variables are specified if desired
          if (!(atom.config.get('linter-terraform-syntax.checkRequiredVar')) && !(atom.config.get('linter-terraform-syntax.useTerraformPlan')))
            args.push('-check-variables=false')
        }

        // execute terraform fmt if selected
        if (atom.config.get('linter-terraform-syntax.useTerraformFormat'))
          helpers.exec(atom.config.get('linter-terraform-syntax.terraformExecutablePath'), ['fmt', '-list=false', dir])

        return helpers.exec(atom.config.get('linter-terraform-syntax.terraformExecutablePath'), args, options).then(output => {
          var toReturn = [];

          // new terraform validate will be doing JSON parsing
          if (!(atom.config.get('linter-terraform-syntax.useTerraformPlan')) && atom.config.get('linter-terraform-syntax.newVersion')) {
            // parse json output
            const info = JSON.parse(output)

            // command is reporting an issue
            if (info.valid == false) {
              info.diagnostics.forEach((issue) => {
                // if no range information given we have to improvise
                var file = dir;
                var line_start = 0;
                var line_end = 0;
github mschuchard / linter-ansible-linting / lib / main.js View on Github external
activate() {
    const helpers = require('atom-linter');

    // check for ansible-lint >= minimum version
    helpers.exec(atom.config.get('linter-ansible-linting.ansibleLintExecutablePath'), ['-T']).then(output => {
      if (!(/repeatability/.exec(output))) {
        atom.notifications.addWarning(
          'ansible-lint < 3.5 is unsupported. Backwards compatibility should exist, but is not guaranteed.',
          {
            detail: "Please upgrade your version of ansible-lint to >= 3.5.\n",
            dismissable: true
          }
        );
      }
    });
  },
github AtomLinter / linter-puppet-lint / lib / main.js View on Github external
// Setup args
        const args = ['--relative', '--json', '--error-level', errorLevel];

        const optionsMap = require('./flags.js');

        // Add the flags to the command options
        Object.keys(allSettings).forEach((flag) => {
          if (Object.hasOwnProperty.call(optionsMap, flag) && allSettings[flag] === true) {
            args.push(optionsMap[flag]);
          }
        });

        // Add the file to be checked to the arguments
        args.push(projectRelativeFilePath);

        return helpers.exec(executablePath, args, { cwd: projectPath, ignoreExitCode: true })
          .then((output) => {
            const toReturn = [];

            // If puppet-lint errors to stdout then redirect the message to atom error notifications
            if (/puppet-lint:/.exec(output)) {
              atom.notifications.addError(
                'Puppet-Lint errored due to the following reason(s):',
                {
                  detail: output,
                },
              );

              // return early
              return toReturn;
            }

atom-linter

Helper module for atom linter providers

MIT
Latest version published 7 years ago

Package Health Score

49 / 100
Full package analysis

Popular atom-linter functions