module.exports = {
    globals: {
        angular: true
    },
    plugins: [
        'angular'
    ],
    rules: {
        // error sources
        'angular/module-getter': 2,
        'angular/module-setter': 2,
        'angular/no-private-call': 2,

        // best practices
        'angular/component-limit': [0, 1],
        'angular/controller-as': 2,
        'angular/controller-as-vm': [2, 'vm'],
        'angular/controller-as-route': 2,
        'angular/deferred': 0, // research why new syntax...
        'angular/di-unused': 2,
        'angular/directive-restrict': [2,{"explicit":"always"}], // always needs a restrict where A;E are valid only.
        'angular/empty-controller': 2,
        'angular/no-controller': 2, // component first! disallow controllers.
        'angular/no-inline-template': [2, {"allowSimple":false}], // no inline templates
        'angular/no-run-logic': 0,
        'angular/no-services': [2, ['$http', '$resource']],
        'angular/on-watch': 2,

        // deprecated
        'angular/no-cookiestore': 2,
        'angular/no-http-callback': 2, // disallow $http methods success/error
        'angular/no-directive-replace': 2,

        // naming
        'angular/controller-name': [2, '/[a-zA-Z].*ctrl$/'],
        'angular/directive-name': [2,"dd"], // directive should be prefixed by dd -> ddTabs
        'angular/file-name': 0,
        'angular/filter-name': 0,
        'angular/module-name': 0,
        'angular/service-name': 2,

        // conventions
        'angular/di-order': [0, true],
        'angular/di': [2, 'function'],
        'angular/dumb-inject': 2,
        'angular/function-type': 0,
        'angular/module-dependency-order': 2,
        'angular/no-service-method': 0,
        'angular/one-dependency-per-line': 0,
        'angular/rest-service': 0,
        'angular/watchers-execution': [0, '$digest'],

        // angular wrappers
        'angular/angularelement': 1,
        'angular/definedundefined': 2,
        'angular/document-service': 2,
        'angular/foreach': 0,
        'angular/interval-service': 2,
        'angular/json-functions': 2,
        'angular/log': 2,
        'angular/no-angular-mock': 0,
        'angular/no-jquery-angularelement': 2,
        'angular/timeout-service': 2,
        'angular/typecheck-array': 2,
        'angular/typecheck-date': 2,
        'angular/typecheck-function': 2,
        'angular/typecheck-number': 2,
        'angular/typecheck-object': 2,
        'angular/typecheck-string': 2,
        'angular/window-service': 2
    }
};
@@ -310,14 +310,9 @@
 t': 
-%5B0, 1%5D
+2
 ,%0A  
@@ -385,17 +385,9 @@
 m': 
-%5B2, 'vm'%5D
+0
 ,%0A  
@@ -458,40 +458,10 @@
 d': 
-0, // research why new syntax...
+2,
 %0A   
@@ -530,16 +530,17 @@
 ct': %5B2,
+ 
 %7B%22explic
@@ -543,16 +543,17 @@
 plicit%22:
+ 
 %22always%22
@@ -559,61 +559,8 @@
 %22%7D%5D,
- // always needs a restrict where A;E are valid only.
 %0A   
@@ -634,50 +634,8 @@
 : 2,
- // component first! disallow controllers.
 %0A   
@@ -700,31 +700,8 @@
 e%7D%5D,
- // no inline templates
 %0A   
@@ -925,48 +925,8 @@
 : 2,
- // disallow $http methods success/error
 %0A   
@@ -1005,26 +1005,20 @@
 lar/
-control
+fi
 le
-r
 -name': 
 %5B2, 
@@ -1017,125 +1017,48 @@
 e': 
-%5B
 2,
- '/%5Ba-zA-Z%5D.*ctrl$/'%5D,%0A        'angular/directive-name': %5B2,%22dd%22%5D, // directive should be prefixed by dd -%3E ddTabs
+%0A        'angular/controller-name': 0,
 %0A   
@@ -1063,35 +1063,40 @@
        'angular/
-fil
+directiv
 e-name': 0,%0A    
@@ -1187,25 +1187,25 @@
 vice-name': 
-2
+0
 ,%0A%0A        /
@@ -1359,25 +1359,36 @@
 tion-type': 
-0
+%5B2, %22named%22%5D
 ,%0A        'a
@@ -1867,25 +1867,25 @@
 gular/log': 
-2
+1
 ,%0A        'a
@@ -2032,17 +2032,17 @@
 array': 
-2
+0
 ,%0A      
@@ -2065,25 +2065,25 @@
 heck-date': 
-2
+0
 ,%0A        'a
@@ -2110,17 +2110,17 @@
 ction': 
-2
+0
 ,%0A      
@@ -2145,25 +2145,25 @@
 ck-number': 
-2
+0
 ,%0A        'a
@@ -2184,25 +2184,25 @@
 ck-object': 
-2
+0
 ,%0A        'a
@@ -2227,17 +2227,17 @@
 tring': 
-2
+0
 ,%0A      

change rules according to votes and discussion