From 42304e8a878036b2b1504b2d344077958746d9ab Mon Sep 17 00:00:00 2001 From: Jeroen Akkerman Date: Tue, 5 Oct 2021 22:28:22 +0200 Subject: [PATCH] Update editorconfig and automatic code format --- .editorconfig | 22 ++++++++----- src/css/easymde.css | 13 +++++--- src/js/codemirror/tablist.js | 6 ++-- src/js/easymde.js | 60 +++++++++++++++++++----------------- types/easymde-test.ts | 44 +++++++++++++------------- types/easymde.d.ts | 10 +++--- 6 files changed, 83 insertions(+), 72 deletions(-) diff --git a/.editorconfig b/.editorconfig index b9d22fe..c42e68f 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,9 +1,17 @@ +# Editor configuration, see https://editorconfig.org +root = true + [*] -charset=utf-8 -end_of_line=lf -insert_final_newline=true -indent_style=space -indent_size=4 +charset = utf-8 +end_of_line = lf +insert_final_newline = true +indent_size = 4 +indent_style = space +trim_trailing_whitespace = true + +[*.yaml] +indent_size = 2 -[*.{yml,yaml}] -indent_size=2 +[*.md] +max_line_length = off +trim_trailing_whitespace = false diff --git a/src/css/easymde.css b/src/css/easymde.css index 8e59cee..8191a8c 100644 --- a/src/css/easymde.css +++ b/src/css/easymde.css @@ -2,8 +2,8 @@ display: block; } -.CodeMirror-rtl pre { - direction: rtl; +.CodeMirror-rtl pre { + direction: rtl; } .EasyMDEContainer.sided--no-fullscreen { @@ -46,8 +46,8 @@ } .EasyMDEContainer.sided--no-fullscreen .CodeMirror-sided { - border-right: none!important; - border-bottom-right-radius: 0px; + border-right: none !important; + border-bottom-right-radius: 0; position: relative; flex: 1 1 auto; } @@ -364,15 +364,18 @@ visibility: visible; } -span[data-img-src]::after{ +span[data-img-src]::after { content: ''; + /*noinspection CssUnresolvedCustomProperty, added through JS*/ background-image: var(--bg-image); display: block; max-height: 100%; max-width: 100%; background-size: contain; height: 0; + /*noinspection CssUnresolvedCustomProperty, added through JS*/ padding-top: var(--height); + /*noinspection CssUnresolvedCustomProperty, added through JS*/ width: var(--width); background-repeat: no-repeat; } diff --git a/src/js/codemirror/tablist.js b/src/js/codemirror/tablist.js index 0ec9c8d..d47cc79 100644 --- a/src/js/codemirror/tablist.js +++ b/src/js/codemirror/tablist.js @@ -16,8 +16,7 @@ CodeMirror.commands.tabAndIndentMarkdownList = function (cm) { if (cm.options.indentWithTabs) { cm.execCommand('insertTab'); - } - else { + } else { var spaces = Array(cm.options.tabSize + 1).join(' '); cm.replaceSelection(spaces); } @@ -36,8 +35,7 @@ CodeMirror.commands.shiftTabAndUnindentMarkdownList = function (cm) { if (cm.options.indentWithTabs) { cm.execCommand('insertTab'); - } - else { + } else { var spaces = Array(cm.options.tabSize + 1).join(' '); cm.replaceSelection(spaces); } diff --git a/src/js/easymde.js b/src/js/easymde.js index 960e31c..6b796f3 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -151,7 +151,7 @@ var CLASS_REGEX = {}; * @param {String} className Class name to convert to regex for matching. * @returns {RegExp} Regular expression option that will match className. */ -function getClassRegex (className) { +function getClassRegex(className) { return CLASS_REGEX[className] || (CLASS_REGEX[className] = new RegExp('\\s*' + className + '(\\s*)', 'g')); } @@ -161,7 +161,7 @@ function getClassRegex (className) { * @param {String} className Class string to apply * @returns {void} */ -function addClass (el, className) { +function addClass(el, className) { if (!el || !className) return; var classRegex = getClassRegex(className); if (el.className.match(classRegex)) return; // already applied @@ -174,7 +174,7 @@ function addClass (el, className) { * @param {String} className Class string to remove * @returns {void} */ - function removeClass (el, className) { +function removeClass(el, className) { if (!el || !className) return; var classRegex = getClassRegex(className); if (!el.className.match(classRegex)) return; // not available to remove @@ -241,7 +241,7 @@ function createToolbarButton(options, enableActions, enableTooltips, shortcuts, // Prevent errors if there is no class name in custom options var classNameParts = []; - if(typeof options.className !== 'undefined') { + if (typeof options.className !== 'undefined') { classNameParts = options.className.split(' '); } @@ -870,11 +870,11 @@ function afterImageUploaded(editor, url) { // Check if media is an image if (['png', 'jpg', 'jpeg', 'gif', 'svg'].includes(ext)) { - _replaceSelection(cm, stat.image, options.insertTexts.uploadedImage, url); + _replaceSelection(cm, stat.image, options.insertTexts.uploadedImage, url); } else { - var text_link = options.insertTexts.link; - text_link[0] = '[' + imageName; - _replaceSelection(cm, stat.link, text_link, url); + var text_link = options.insertTexts.link; + text_link[0] = '[' + imageName; + _replaceSelection(cm, stat.link, text_link, url); } // show uploaded image filename for 1000ms @@ -1767,7 +1767,7 @@ function EasyMDE(options) { options.shortcuts = extend({}, shortcuts, options.shortcuts || {}); options.maxHeight = options.maxHeight || undefined; - + options.direction = options.direction || 'ltr'; if (typeof options.maxHeight !== 'undefined') { @@ -1795,7 +1795,7 @@ function EasyMDE(options) { // If overlay mode is specified and combine is not provided, default it to true if (options.overlayMode && options.overlayMode.combine === undefined) { - options.overlayMode.combine = true; + options.overlayMode.combine = true; } // Update this options @@ -1871,7 +1871,7 @@ function EasyMDE(options) { */ EasyMDE.prototype.uploadImages = function (files, onSuccess, onError) { if (files.length === 0) { - return; + return; } var names = []; for (var i = 0; i < files.length; i++) { @@ -1893,7 +1893,7 @@ EasyMDE.prototype.uploadImages = function (files, onSuccess, onError) { */ EasyMDE.prototype.uploadImagesUsingCustomFunction = function (imageUploadFunction, files) { if (files.length === 0) { - return; + return; } var names = []; for (var i = 0; i < files.length; i++) { @@ -1952,9 +1952,9 @@ EasyMDE.prototype.markdown = function (text) { if (hljs) { markedOptions.highlight = function (code, language) { if (language && hljs.getLanguage(language)) { - return hljs.highlight(language, code).value; + return hljs.highlight(language, code).value; } else { - return hljs.highlightAuto(code).value; + return hljs.highlightAuto(code).value; } }; } @@ -2036,13 +2036,13 @@ EasyMDE.prototype.render = function (el) { // CodeMirror overlay mode if (options.overlayMode) { - CodeMirror.defineMode('overlay-mode', function(config) { - return CodeMirror.overlayMode(CodeMirror.getMode(config, options.spellChecker !== false ? 'spell-checker' : 'gfm'), options.overlayMode.mode, options.overlayMode.combine); - }); + CodeMirror.defineMode('overlay-mode', function (config) { + return CodeMirror.overlayMode(CodeMirror.getMode(config, options.spellChecker !== false ? 'spell-checker' : 'gfm'), options.overlayMode.mode, options.overlayMode.combine); + }); - mode = 'overlay-mode'; - backdrop = options.parsingConfig; - backdrop.gitHubSpice = false; + mode = 'overlay-mode'; + backdrop = options.parsingConfig; + backdrop.gitHubSpice = false; } else { mode = options.parsingConfig; mode.name = 'gfm'; @@ -2149,7 +2149,7 @@ EasyMDE.prototype.render = function (el) { function assignImageBlockAttributes(parentEl, img) { parentEl.setAttribute('data-img-src', img.url); - parentEl.setAttribute('style', '--bg-image:url('+img.url+');--width:'+img.naturalWidth+'px;--height:'+calcHeight(img.naturalWidth, img.naturalHeight)); + parentEl.setAttribute('style', '--bg-image:url(' + img.url + ');--width:' + img.naturalWidth + 'px;--height:' + calcHeight(img.naturalWidth, img.naturalHeight)); _vm.codemirror.setSize(); } @@ -2158,8 +2158,8 @@ EasyMDE.prototype.render = function (el) { return; } - easyMDEContainer.querySelectorAll('.cm-image-marker').forEach(function(e) { - var parentEl = e.parentElement; + easyMDEContainer.querySelectorAll('.cm-image-marker').forEach(function (e) { + var parentEl = e.parentElement; if (!parentEl.innerText.match(/^!\[.*?\]\(.*\)/g)) { // if img pasted on the same line with other text, don't preview, preview only images on separate line return; @@ -2173,9 +2173,9 @@ EasyMDE.prototype.render = function (el) { if (srcAttr && srcAttr.length >= 2) { var keySrc = srcAttr[1]; - if (! window.EMDEimagesCache[keySrc]) { + if (!window.EMDEimagesCache[keySrc]) { var img = document.createElement('img'); - img.onload = function() { + img.onload = function () { window.EMDEimagesCache[keySrc] = { naturalWidth: img.naturalWidth, naturalHeight: img.naturalHeight, @@ -2191,6 +2191,7 @@ EasyMDE.prototype.render = function (el) { } }); } + this.codemirror.on('update', function () { handleImages(); }); @@ -2300,9 +2301,9 @@ EasyMDE.prototype.openBrowseFileWindow = function (onSuccess, onError) { imageInput.click(); //dispatchEvent(new MouseEvent('click')); // replaced with click() for IE11 compatibility. function onChange(event) { if (self.options.imageUploadFunction) { - self.uploadImagesUsingCustomFunction(self.options.imageUploadFunction, event.target.files); + self.uploadImagesUsingCustomFunction(self.options.imageUploadFunction, event.target.files); } else { - self.uploadImages(event.target.files, onSuccess, onError); + self.uploadImages(event.target.files, onSuccess, onError); } imageInput.removeEventListener('change', onChange); } @@ -2409,8 +2410,9 @@ EasyMDE.prototype.uploadImage = function (file, onSuccess, onError) { * @param imageUploadFunction {Function} The custom function to upload the image passed in options * @param file {File} The image to upload, as a HTML5 File object (https://developer.mozilla.org/en-US/docs/Web/API/File). */ -EasyMDE.prototype.uploadImageUsingCustomFunction = function(imageUploadFunction, file) { +EasyMDE.prototype.uploadImageUsingCustomFunction = function (imageUploadFunction, file) { var self = this; + function onSuccess(imageUrl) { afterImageUploaded(self, imageUrl); } @@ -2451,7 +2453,7 @@ EasyMDE.prototype.setPreviewMaxHeight = function () { var wrapperMaxHeight = optionsMaxHeight + paddingTop * 2 + borderTopWidth * 2; var previewMaxHeight = wrapperMaxHeight.toString() + 'px'; - preview.style.height = previewMaxHeight; + preview.style.height = previewMaxHeight; }; EasyMDE.prototype.createSideBySide = function () { diff --git a/types/easymde-test.ts b/types/easymde-test.ts index 4750c4d..8e209cf 100644 --- a/types/easymde-test.ts +++ b/types/easymde-test.ts @@ -8,7 +8,7 @@ const editor = new EasyMDE({ inputStyle: 'textarea', shortcuts: { drawTable: 'Cmd-Alt-T', - toggleFullScreen: null + toggleFullScreen: null, }, previewClass: 'my-custom-class', spellChecker: false, @@ -16,7 +16,7 @@ const editor = new EasyMDE({ console.log('FullscreenToggled', full); }, theme: 'someOtherTheme', - minHeight: '200px' + minHeight: '200px', }); // Editor functions @@ -44,7 +44,7 @@ const editor2 = new EasyMDE({ name: 'bold', action: EasyMDE.toggleBold, className: 'fa fas fa-bolt', - title: 'Bold' + title: 'Bold', }, '|', 'undo', @@ -57,7 +57,7 @@ const editor2 = new EasyMDE({ className: 'fa fas fa-star', title: 'A Custom Button', noDisable: undefined, - noMobile: false + noMobile: false, }, '|', { @@ -66,7 +66,7 @@ const editor2 = new EasyMDE({ className: 'fa fab fa-github', title: 'A Custom Link', noDisable: true, - noMobile: true + noMobile: true, }, 'preview', { @@ -80,18 +80,18 @@ const editor2 = new EasyMDE({ className: 'fa fab fa-github', title: 'A Custom Link', noDisable: true, - noMobile: true + noMobile: true, }, 'preview', { name: 'bold', action: EasyMDE.toggleBold, className: 'fa fas fa-bold', - title: 'Bold' + title: 'Bold', }, - ] - } - ] + ], + }, + ], }); editor2.clearAutosavedValue(); @@ -112,17 +112,17 @@ const editorImages = new EasyMDE({ sbOnDrop: 'Uploading...', sbProgress: 'Uploading... (#progress#)', sbOnUploaded: 'Upload complete!', - sizeUnits: 'b,Kb,Mb' + sizeUnits: 'b,Kb,Mb', }, errorMessages: { noFileGiven: 'Please select a file', typeNotAllowed: 'This file type is not allowed!', fileTooLarge: 'Image too big', - importError: 'Something went oops!' + importError: 'Something went oops!', }, errorCallback: errorMessage => { console.error(errorMessage); - } + }, }); const editorImagesCustom = new EasyMDE({ @@ -141,13 +141,13 @@ const editorImagesCustom = new EasyMDE({ sbOnDrop: 'Uploading...', sbProgress: 'Uploading... (#progress#)', sbOnUploaded: 'Upload complete!', - sizeUnits: 'b,Kb,Mb' + sizeUnits: 'b,Kb,Mb', }, errorMessages: { noFileGiven: 'Please select a file', typeNotAllowed: 'This file type is not allowed!', fileTooLarge: 'Image too big', - importError: 'Something went oops!' + importError: 'Something went oops!', }, errorCallback: errorMessage => { console.error(errorMessage); @@ -157,14 +157,14 @@ const editorImagesCustom = new EasyMDE({ markedOptions: { silent: true, highlight(code: string, lang: string, callback?: (error: (any | undefined), code: string) => void): string { - return 'something' + return 'something'; }, }, }, promptTexts: { - image: 'Insert URL' + image: 'Insert URL', }, - syncSideBySidePreviewScroll: true + syncSideBySidePreviewScroll: true, }); new EasyMDE({ @@ -179,10 +179,10 @@ new EasyMDE({ locale: 'en-GB', format: { month: 'long', - } + }, }, text: 'Stored: ', - } + }, }); new EasyMDE({ @@ -199,6 +199,6 @@ new EasyMDE({ 'ordered-list', 'table', '|', - 'link' - ] + 'link', + ], }); diff --git a/types/easymde.d.ts b/types/easymde.d.ts index debf3e6..4e09b9c 100644 --- a/types/easymde.d.ts +++ b/types/easymde.d.ts @@ -23,7 +23,7 @@ /// interface ArrayOneOrMore extends Array { - 0: T + 0: T; } type ToolbarButton = @@ -161,12 +161,12 @@ declare namespace EasyMDE { } interface OverlayModeOptions { - mode: CodeMirror.Mode - combine?: boolean + mode: CodeMirror.Mode; + combine?: boolean; } interface SpellCheckerOptions { - codeMirrorInstance: CodeMirror.Editor + codeMirrorInstance: CodeMirror.Editor; } interface Options { @@ -221,7 +221,7 @@ declare namespace EasyMDE { promptTexts?: PromptTexts; syncSideBySidePreviewScroll?: boolean; - overlayMode?: OverlayModeOptions + overlayMode?: OverlayModeOptions; } }