ESLint
Plugin
Uses semistandard. On top of that defines all globals for exposed sketch classes and some other globals available through Cocoascript environment.
Also disables eqeqeq
rule, as it is not really feasable in Cocoascript, due to the various different types you are dealing with (NSString == string, but NSString !== string).
module.exports = {
extends: ['semistandard'],
globals: {
NSHTTPCookieStorage: false,
NSURLSessionConfiguration: false,
NSURLSession: false,
__mocha__: false,
coscript: false,
MSDocument: false,
MSDocumentWindow: false,
MSPage: false,
MSSymbolInstance: false,
MSSymbolMaster: false,
MSTextLayer: false,
NSAlert: false,
NSApp: false,
NSClassFromString: false,
NSColor: false,
NSData: false,
NSDocument: false,
NSDocumentController: false,
NSFileManager: false,
NSImage: false,
NSJSONSerialization: false,
NSMakeRect: false,
NSMutableData: false,
NSMutableURLRequest: false,
NSSaveOperation: false,
NSString: false,
NSTextField: false,
NSTextView: false,
NSThread: false,
NSTitledWindowMask: false,
NSURL: false,
NSURLRequest: false,
NSUTF8StringEncoding: false,
NSUserDefaults: false,
NSView: false,
NSViewHeightSizable: false,
NSViewWidthSizable: false,
NSWindow: false,
NSWorkspace: false,
WKWebView: false,
WKWebViewConfiguration: false,
Mocha: false,
log: false,
NSBackingStoreBuffered: false,
NSPanel: false,
NSResizableWindowMask: false,
NSWindowStyleMaskClosable: false,
SPBWebViewMessageHandler: false,
SPBWebViewMessageUtils: false
},
parser: 'babel-eslint',
plugins: [
'no-unused-vars-rest'
],
rules: {
semi: [2, "never"],
"eol-last": 0,
"space-before-function-paren": ["error", "never"],
eqeqeq: [
0
]
}
}
Webviews
Standard react app eslint rule set.
module.exports = {
plugins: ['react'],
extends: [
'semistandard',
'plugin:react/recommended'
],
env: {
es6: true
},
parser: 'babel-eslint',
parserOptions: {
sourceType: 'module',
ecmaVersion: 6,
ecmaFeatures: {
impliedStrict: true,
experimentalObjectRestSpread: true,
jsx: true
}
},
rules: {
semi: [2, "never"],
"eol-last": 0,
"space-before-function-paren": ["error", "never"],
"react/prop-types": 0
}
}