mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-09-20 07:28:08 +03:00
23 lines
918 B
CoffeeScript
23 lines
918 B
CoffeeScript
path = require 'path'
|
|
|
|
module.exports = (grunt) ->
|
|
grunt.registerTask 'output-for-loop-returns', 'Log methods that end with a for loop', ->
|
|
appDir = grunt.config.get('atom.appDir')
|
|
|
|
jsPaths = []
|
|
grunt.file.recurse path.join(appDir, 'src'), (absolutePath, rootPath, relativePath, fileName) ->
|
|
jsPaths.push(absolutePath) if path.extname(fileName) is '.js'
|
|
|
|
jsPaths.forEach (jsPath) ->
|
|
js = grunt.file.read(jsPath)
|
|
method = null
|
|
for line, index in js.split('\n')
|
|
[match, className, methodName] = /^\s*([a-zA-Z]+)\.(?:prototype\.)?([a-zA-Z]+)\s*=\s*function\(/.exec(line) ? []
|
|
if className and methodName
|
|
method = "#{className}::#{methodName}"
|
|
else
|
|
[match, ctorName] = /^\s*function\s+([a-zA-Z]+)\(/.exec(line) ? []
|
|
|
|
if /^\s*return\s+_results;\s*$/.test(line)
|
|
console.log(method ? "#{path.basename(jsPath)}:#{index}")
|