mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-28 18:18:55 +01:00 
			
		
		
		
	 08133dcf3d
			
		
	
	
		08133dcf3d
		
			
		
	
	
	
	
		
			
			not sure why 'latest' is not working, but this fixes the annoying errors related to es5 being default
		
			
				
	
	
		
			101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			101 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
			Vendored
		
	
	
	
| // CodeMirror, copyright (c) by Marijn Haverbeke and others
 | |
| // Distributed under an MIT license: http://codemirror.net/LICENSE
 | |
| 
 | |
| (function(mod) {
 | |
|   if (typeof exports == "object" && typeof module == "object") // CommonJS
 | |
|     mod(require("../../lib/codemirror"));
 | |
|   else if (typeof define == "function" && define.amd) // AMD
 | |
|     define(["../../lib/codemirror"], mod);
 | |
|   else // Plain browser env
 | |
|     mod(CodeMirror);
 | |
| })(function(CodeMirror) {
 | |
|     "use strict";
 | |
| 
 | |
|     async function validatorHtml(text, options) {
 | |
|         const result = /<script[^>]*>([\s\S]+)<\/script>/ig.exec(text);
 | |
| 
 | |
|         if (result !== null) {
 | |
|             // preceding code is copied over but any (non-newline) character is replaced with space
 | |
|             // this will preserve line numbers etc.
 | |
|             const prefix = text.substr(0, result.index).replace(/./g, " ");
 | |
| 
 | |
|             const js = prefix + result[1];
 | |
| 
 | |
|             return await validatorJavaScript(js, options);
 | |
|         }
 | |
| 
 | |
|         return [];
 | |
|     }
 | |
| 
 | |
|     async function validatorJavaScript(text, options) {
 | |
|         if (glob.isMobile()
 | |
|             || glob.getActiveContextNote() == null
 | |
|             || glob.getActiveContextNote().mime === 'application/json') {
 | |
|             // eslint doesn't seem to validate pure JSON well
 | |
|             return [];
 | |
|         }
 | |
| 
 | |
|         await glob.requireLibrary(glob.ESLINT);
 | |
| 
 | |
|         if (text.length > 20000) {
 | |
|             console.log("Skipping linting because of large size: ", text.length);
 | |
| 
 | |
|             return [];
 | |
|         }
 | |
| 
 | |
|         const errors = new eslint().verify(text, {
 | |
|             root: true,
 | |
|             parserOptions: {
 | |
|                 ecmaVersion: "2019"
 | |
|             },
 | |
|             extends: ['eslint:recommended', 'airbnb-base'],
 | |
|             env: {
 | |
|                 'browser': true,
 | |
|                 'node': true
 | |
|             },
 | |
|             rules: {
 | |
|                 'import/no-unresolved': 'off',
 | |
|                 'func-names': 'off',
 | |
|                 'comma-dangle': ['warn'],
 | |
|                 'padded-blocks': 'off',
 | |
|                 'linebreak-style': 'off',
 | |
|                 'class-methods-use-this': 'off',
 | |
|                 'no-unused-vars': ['warn', { vars: 'local', args: 'after-used' }],
 | |
|                 'no-nested-ternary': 'off',
 | |
|                 'no-underscore-dangle': ['error', {'allow': ['_super', '_lookupFactory']}]
 | |
|             },
 | |
|             globals: {
 | |
|                 "api": "readonly"
 | |
|             }
 | |
|         });
 | |
| 
 | |
|         console.log(errors);
 | |
| 
 | |
|         const result = [];
 | |
|         if (errors) {
 | |
|             parseErrors(errors, result);
 | |
|         }
 | |
| 
 | |
|         return result;
 | |
|     }
 | |
| 
 | |
|     CodeMirror.registerHelper("lint", "javascript", validatorJavaScript);
 | |
|     CodeMirror.registerHelper("lint", "html", validatorHtml);
 | |
| 
 | |
|     function parseErrors(errors, output) {
 | |
|         for (const error of errors) {
 | |
|             const startLine = error.line - 1;
 | |
|             const endLine = error.endLine !== undefined ? error.endLine - 1 : startLine;
 | |
|             const startCol = error.column - 1;
 | |
|             const endCol = error.endColumn !== undefined ? error.endColumn - 1 : startCol + 1;
 | |
| 
 | |
|             output.push({
 | |
|                 message: error.message,
 | |
|                 severity: error.severity === 1 ? "warning" : "error",
 | |
|                 from: CodeMirror.Pos(startLine, startCol),
 | |
|                 to: CodeMirror.Pos(endLine, endCol)
 | |
|             });
 | |
|         }
 | |
|     }
 | |
| });
 |