Update atom package
parent
a0edc2a520
commit
dd8dda101d
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"atom-text-editor": {
|
||||||
|
"ctrl-alt-f": "prettier:format"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"atom-text-editor": {
|
|
||||||
"ctrl-alt-f": "jscodefmt:format"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,101 +0,0 @@
|
||||||
/* global atom */
|
|
||||||
|
|
||||||
var path = require('path')
|
|
||||||
var findRoot = require('find-root')
|
|
||||||
var jscodefmt = require('jscodefmt');
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
style: null,
|
|
||||||
fileTypes: ['.js', '.jsx'],
|
|
||||||
|
|
||||||
fileSupported: function (file) {
|
|
||||||
// Ensure file is a supported file type.
|
|
||||||
var ext = path.extname(file)
|
|
||||||
return !!~this.fileTypes.indexOf(ext)
|
|
||||||
},
|
|
||||||
|
|
||||||
activate: function () {
|
|
||||||
this.commands = atom.commands.add('atom-workspace', 'jscodefmt:format', function () {
|
|
||||||
this.format()
|
|
||||||
}.bind(this))
|
|
||||||
|
|
||||||
this.editorObserver = atom.workspace.observeTextEditors(this.handleEvents.bind(this))
|
|
||||||
},
|
|
||||||
|
|
||||||
deactivate: function () {
|
|
||||||
this.commands.dispose()
|
|
||||||
this.editorObserver.dispose()
|
|
||||||
},
|
|
||||||
|
|
||||||
format: function (options) {
|
|
||||||
if (options === undefined) {
|
|
||||||
options = {}
|
|
||||||
}
|
|
||||||
var selection = typeof options.selection === 'undefined' ? true : !!options.selection
|
|
||||||
var editor = atom.workspace.getActiveTextEditor()
|
|
||||||
if (!editor) {
|
|
||||||
// Return if the current active item is not a `TextEditor`
|
|
||||||
return
|
|
||||||
}
|
|
||||||
var selectedText = selection ? editor.getSelectedText() : null
|
|
||||||
var text = selectedText || editor.getText()
|
|
||||||
var cursorPosition = editor.getCursorScreenPosition()
|
|
||||||
|
|
||||||
try {
|
|
||||||
var transformed = jscodefmt.format(text, { printWidth: options.printWidth });
|
|
||||||
}
|
|
||||||
catch(e) {
|
|
||||||
console.log('Error transforming using jscodefmt:', e)
|
|
||||||
transformed = text;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (selectedText) {
|
|
||||||
editor.setTextInBufferRange(editor.getSelectedBufferRange(), transformed)
|
|
||||||
} else {
|
|
||||||
editor.setText(transformed)
|
|
||||||
}
|
|
||||||
editor.setCursorScreenPosition(cursorPosition)
|
|
||||||
},
|
|
||||||
|
|
||||||
handleEvents: function (editor) {
|
|
||||||
editor.getBuffer().onWillSave(function () {
|
|
||||||
var path = editor.getPath()
|
|
||||||
if (!path) return
|
|
||||||
|
|
||||||
if (!editor.getBuffer().isModified()) return
|
|
||||||
|
|
||||||
// var formatOnSave = atom.config.get('jscodefmt.formatOnSave', {scope: editor.getRootScopeDescriptor()})
|
|
||||||
// if (!formatOnSave) return
|
|
||||||
|
|
||||||
// Set the relative path based on the file's nearest package.json.
|
|
||||||
// If no package.json is found, use path verbatim.
|
|
||||||
var relativePath
|
|
||||||
try {
|
|
||||||
var projectPath = findRoot(path)
|
|
||||||
relativePath = path.replace(projectPath, '').substring(1)
|
|
||||||
} catch (e) {
|
|
||||||
relativePath = path
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.fileSupported(relativePath)) {
|
|
||||||
this.format({selection: false})
|
|
||||||
}
|
|
||||||
}.bind(this))
|
|
||||||
|
|
||||||
if(editor.editorElement) {
|
|
||||||
window.addEventListener("resize", e => {
|
|
||||||
const { width } = window.document.body.getBoundingClientRect();
|
|
||||||
const columns = (width / editor.editorElement.getDefaultCharacterWidth() | 0);
|
|
||||||
console.log(width, columns);
|
|
||||||
this.format({selection: false, printWidth: columns});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
config: {
|
|
||||||
formatOnSave: {
|
|
||||||
type: 'boolean',
|
|
||||||
default: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,104 @@
|
||||||
|
/* global atom */
|
||||||
|
|
||||||
|
var path = require("path");
|
||||||
|
var findRoot = require("find-root");
|
||||||
|
var prettier = require("prettier");
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
style: null,
|
||||||
|
fileTypes: [ ".js", ".jsx" ],
|
||||||
|
fileSupported: function(file) {
|
||||||
|
// Ensure file is a supported file type.
|
||||||
|
var ext = path.extname(file);
|
||||||
|
return !!~this.fileTypes.indexOf(ext);
|
||||||
|
},
|
||||||
|
activate: function() {
|
||||||
|
this.commands = atom.commands.add(
|
||||||
|
"atom-workspace",
|
||||||
|
"prettier:format",
|
||||||
|
function() {
|
||||||
|
this.format();
|
||||||
|
}.bind(this)
|
||||||
|
);
|
||||||
|
|
||||||
|
this.editorObserver = atom.workspace.observeTextEditors(
|
||||||
|
this.handleEvents.bind(this)
|
||||||
|
);
|
||||||
|
},
|
||||||
|
deactivate: function() {
|
||||||
|
this.commands.dispose();
|
||||||
|
this.editorObserver.dispose();
|
||||||
|
},
|
||||||
|
format: function(options) {
|
||||||
|
if (options === undefined) {
|
||||||
|
options = {};
|
||||||
|
}
|
||||||
|
var selection = typeof options.selection === "undefined"
|
||||||
|
? true
|
||||||
|
: !!options.selection;
|
||||||
|
var editor = atom.workspace.getActiveTextEditor();
|
||||||
|
if (!editor) {
|
||||||
|
// Return if the current active item is not a `TextEditor`
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var selectedText = selection ? editor.getSelectedText() : null;
|
||||||
|
var text = selectedText || editor.getText();
|
||||||
|
var cursorPosition = editor.getCursorScreenPosition();
|
||||||
|
|
||||||
|
try {
|
||||||
|
var transformed = prettier.format(text, {
|
||||||
|
printWidth: options.printWidth
|
||||||
|
});
|
||||||
|
} catch (e) {
|
||||||
|
console.log("Error transforming using prettier:", e);
|
||||||
|
transformed = text;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedText) {
|
||||||
|
editor.setTextInBufferRange(editor.getSelectedBufferRange(), transformed);
|
||||||
|
} else {
|
||||||
|
editor.setText(transformed);
|
||||||
|
}
|
||||||
|
editor.setCursorScreenPosition(cursorPosition);
|
||||||
|
},
|
||||||
|
handleEvents: function(editor) {
|
||||||
|
editor.getBuffer().onWillSave(
|
||||||
|
function() {
|
||||||
|
var path = editor.getPath();
|
||||||
|
if (!path)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!editor.getBuffer().isModified())
|
||||||
|
return;
|
||||||
|
|
||||||
|
// var formatOnSave = atom.config.get('prettier.formatOnSave', {scope: editor.getRootScopeDescriptor()})
|
||||||
|
// if (!formatOnSave) return
|
||||||
|
// Set the relative path based on the file's nearest package.json.
|
||||||
|
// If no package.json is found, use path verbatim.
|
||||||
|
var relativePath;
|
||||||
|
try {
|
||||||
|
var projectPath = findRoot(path);
|
||||||
|
relativePath = path.replace(projectPath, "").substring(1);
|
||||||
|
} catch (e) {
|
||||||
|
relativePath = path;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.fileSupported(relativePath)) {
|
||||||
|
this.format({ selection: false });
|
||||||
|
}
|
||||||
|
}.bind(this)
|
||||||
|
);
|
||||||
|
|
||||||
|
if (editor.editorElement) {
|
||||||
|
window.addEventListener("resize", e => {
|
||||||
|
const { width } = window.document.body.getBoundingClientRect();
|
||||||
|
const columns = width /
|
||||||
|
editor.editorElement.getDefaultCharacterWidth() |
|
||||||
|
0;
|
||||||
|
console.log(width, columns);
|
||||||
|
this.format({ selection: false, printWidth: columns });
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
config: { formatOnSave: { type: "boolean", default: false } }
|
||||||
|
};
|
|
@ -2,8 +2,8 @@
|
||||||
"context-menu": {
|
"context-menu": {
|
||||||
"atom-text-editor[data-grammar='source js']": [
|
"atom-text-editor[data-grammar='source js']": [
|
||||||
{
|
{
|
||||||
"label": "Format With jscodefmt",
|
"label": "Format With prettier",
|
||||||
"command": "jscodefmt:format"
|
"command": "prettier:format"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -12,11 +12,11 @@
|
||||||
"label": "Packages",
|
"label": "Packages",
|
||||||
"submenu": [
|
"submenu": [
|
||||||
{
|
{
|
||||||
"label": "jscodefmt",
|
"label": "prettier",
|
||||||
"submenu": [
|
"submenu": [
|
||||||
{
|
{
|
||||||
"label": "Format",
|
"label": "Format",
|
||||||
"command": "jscodefmt:format"
|
"command": "prettier:format"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
Loading…
Reference in New Issue