Merge branch 'master' of github.com:Glavin001/atom-beautify

This commit is contained in:
Glavin Wiechert 2015-06-01 16:03:05 -03:00
commit f10f414296
6 changed files with 337 additions and 26 deletions

View File

@ -67,7 +67,7 @@ Or Settings/Preferences ➔ Packages ➔ Search for `atom-beautify`
Open the [Command Palette](https://github.com/atom/command-palette), and type `Beautify`. Open the [Command Palette](https://github.com/atom/command-palette), and type `Beautify`.
It will only beautify selected text, if a selection is found - if not, the whole file will be beautified. It will only beautify selected text if a selection is found -- if not, the whole file will be beautified.
### Shortcut ### Shortcut
@ -86,10 +86,9 @@ For example:
### Package Options ### Package Options
Each language and all of their respective beautifier's options Each language and its beautifier's options are fully documented in the Atom
are fully documented in Atom Beautify Package Settings Panel. Beautify package settings panel. There are far too many to document them all
There are much too many to document them all here. here. Here are a few key options that you may use:
Here are a few key options that you may use:
- `beautifyOnSave` (Default *false*) - `beautifyOnSave` (Default *false*)
You can also choose to beautify on every file save. You can also choose to beautify on every file save.
@ -108,14 +107,11 @@ Do not show the *Atom Beautify Error Messages* panel
for any of the errors occurring while beautifying. for any of the errors occurring while beautifying.
- `analytics` (Default *true*) - `analytics` (Default *true*)
There is [Segment.io](https://segment.io/), There is [Segment.io](https://segment.io/) which forwards data to [Google
which forwards the data to [Google Analytics](http://www.google.com/analytics/), Analytics](http://www.google.com/analytics/) to track what languages are being
to track what languages used the most, as well as other stats. Everything is anonymized and no personal
are being used the most and other stats. information, such as source code, is sent.
Everything is anonymized and no personal information, See https://github.com/Glavin001/atom-beautify/issues/47 for more details.
such as source code, is sent.
See https://github.com/Glavin001/atom-beautify/issues/47
for more details.
## Configuration ## Configuration
@ -126,13 +122,13 @@ Edit your `.jsbeautifyrc` file in any of the following locations:
- Same directory as current file - Same directory as current file
- Project root - Project root
`atom-beautify` will recursively look up from the current file's directory to find `.jsbeautifyrc`. `atom-beautify` will recursively look up from the current file's directory to find `.jsbeautifyrc`.
- Your User's Home directory - Your user's home directory
**Note**: *Comments are supported in `.jsbeautifyrc` thanks to [strip-json-comments](https://github.com/sindresorhus/strip-json-comments).* **Note**: *Comments are supported in `.jsbeautifyrc` thanks to [strip-json-comments](https://github.com/sindresorhus/strip-json-comments).*
See examples of both way inside [`examples/`](https://github.com/donaldpipowitch/atom-beautify/tree/master/examples) See examples of both ways inside [`examples/`](https://github.com/donaldpipowitch/atom-beautify/tree/master/examples)
Option table is available at the [js-beautify repo](https://github.com/beautify-web/js-beautify#options). An option table is available at the [js-beautify repo](https://github.com/beautify-web/js-beautify#options).
### Simple ### Simple

View File

@ -4,26 +4,81 @@ os: Windows Server 2012 R2
test: off test: off
deploy: off deploy: off
environment:
global:
# SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the
# /E:ON and /V:ON options are not enabled in the batch script intepreter
# See: http://stackoverflow.com/a/13751649/163740
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_env.cmd"
matrix:
- PYTHON: "C:\\Python27"
PYTHON_VERSION: "2.7.8"
PYTHON_ARCH: "32"
- PYTHON: "C:\\Python27-x64"
PYTHON_VERSION: "2.7.8"
PYTHON_ARCH: "64"
- PYTHON: "C:\\Python33"
PYTHON_VERSION: "3.3.5"
PYTHON_ARCH: "32"
- PYTHON: "C:\\Python33-x64"
PYTHON_VERSION: "3.3.5"
PYTHON_ARCH: "64"
- PYTHON: "C:\\Python34"
PYTHON_VERSION: "3.4.1"
PYTHON_ARCH: "32"
- PYTHON: "C:\\Python34-x64"
PYTHON_VERSION: "3.4.1"
PYTHON_ARCH: "64"
init: init:
- cmd: rd /s /q %CHOCOLATEYINSTALL% - cmd: rd /s /q %CHOCOLATEYINSTALL%
- ps: iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1')) - ps: iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
install: install:
- ECHO "Filesystem root:"
- ps: "ls \"C:/\""
- ECHO "Installed SDKs:"
- ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\""
- cinst atom -y - cinst atom -y
- cd %APPVEYOR_BUILD_FOLDER% - cd %APPVEYOR_BUILD_FOLDER%
# Add Atom's bin (apm, etc) to PATH # Add Atom's bin (apm, etc) to PATH
- SET PATH=%LOCALAPPDATA%\atom\bin;%PATH% - SET PATH=%LOCALAPPDATA%\atom\bin;%PATH%
- apm install - apm install
# Install CLI beautifiers # Install CLI beautifiers
# Python
- cinst python2 -y # Install Python (from the official .msi of http://python.org) and pip when
- cinst easy.install -y # not already installed.
- cinst pip -y - "powershell ./appveyor/install.ps1"
# autopep8
- pip install --upgrade autopep8 # Prepend newly installed Python to the PATH of this build (this cannot be
# done from inside the powershell script as it would require to restart
# the parent CMD process).
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
# Check that we have the expected version and architecture for Python
- "python --version"
- "python -c \"import struct; print(struct.calcsize('P') * 8)\""
# Install the build dependencies of the project. If some dependencies contain
# compiled extensions and are not provided as pre-built wheel packages,
# pip will build them from source using the MSVC compiler matching the
# target Python version and architecture
- "%CMD_IN_ENV% pip install --upgrade autopep8"
# Ruby & Gem # Ruby & Gem
- cinst ruby -y - cinst ruby -y
- gem install rubocop - gem install rubocop
# PHP # PHP
- cinst php -y - cinst php -y
@ -32,4 +87,4 @@ build_script:
# Install languages to Atom # Install languages to Atom
- apm install language-typescript language-marko language-tss language-html-swig - apm install language-typescript language-marko language-tss language-html-swig
# Run tests on package # Run tests on package
- apm test --one --path %LOCALAPPDATA%/atom/bin/atom.cmd - apm test --one --path %LOCALAPPDATA%/atom/bin/atom.cmd

180
appveyor/install.ps1 Normal file
View File

@ -0,0 +1,180 @@
# Sample script to install Python and pip under Windows
# Authors: Olivier Grisel, Jonathan Helmus and Kyle Kastner
# License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
$MINICONDA_URL = "http://repo.continuum.io/miniconda/"
$BASE_URL = "https://www.python.org/ftp/python/"
$GET_PIP_URL = "https://bootstrap.pypa.io/get-pip.py"
$GET_PIP_PATH = "C:\get-pip.py"
function DownloadPython ($python_version, $platform_suffix) {
$webclient = New-Object System.Net.WebClient
$filename = "python-" + $python_version + $platform_suffix + ".msi"
$url = $BASE_URL + $python_version + "/" + $filename
$basedir = $pwd.Path + "\"
$filepath = $basedir + $filename
if (Test-Path $filename) {
Write-Host "Reusing" $filepath
return $filepath
}
# Download and retry up to 3 times in case of network transient errors.
Write-Host "Downloading" $filename "from" $url
$retry_attempts = 2
for($i=0; $i -lt $retry_attempts; $i++){
try {
$webclient.DownloadFile($url, $filepath)
break
}
Catch [Exception]{
Start-Sleep 1
}
}
if (Test-Path $filepath) {
Write-Host "File saved at" $filepath
} else {
# Retry once to get the error message if any at the last try
$webclient.DownloadFile($url, $filepath)
}
return $filepath
}
function InstallPython ($python_version, $architecture, $python_home) {
Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
if (Test-Path $python_home) {
Write-Host $python_home "already exists, skipping."
return $false
}
if ($architecture -eq "32") {
$platform_suffix = ""
} else {
$platform_suffix = ".amd64"
}
$msipath = DownloadPython $python_version $platform_suffix
Write-Host "Installing" $msipath "to" $python_home
$install_log = $python_home + ".log"
$install_args = "/qn /log $install_log /i $msipath TARGETDIR=$python_home"
$uninstall_args = "/qn /x $msipath"
RunCommand "msiexec.exe" $install_args
if (-not(Test-Path $python_home)) {
Write-Host "Python seems to be installed else-where, reinstalling."
RunCommand "msiexec.exe" $uninstall_args
RunCommand "msiexec.exe" $install_args
}
if (Test-Path $python_home) {
Write-Host "Python $python_version ($architecture) installation complete"
} else {
Write-Host "Failed to install Python in $python_home"
Get-Content -Path $install_log
Exit 1
}
}
function RunCommand ($command, $command_args) {
Write-Host $command $command_args
Start-Process -FilePath $command -ArgumentList $command_args -Wait -Passthru
}
function InstallPip ($python_home) {
$pip_path = $python_home + "\Scripts\pip.exe"
$python_path = $python_home + "\python.exe"
if (-not(Test-Path $pip_path)) {
Write-Host "Installing pip..."
$webclient = New-Object System.Net.WebClient
$webclient.DownloadFile($GET_PIP_URL, $GET_PIP_PATH)
Write-Host "Executing:" $python_path $GET_PIP_PATH
Start-Process -FilePath "$python_path" -ArgumentList "$GET_PIP_PATH" -Wait -Passthru
} else {
Write-Host "pip already installed."
}
}
function DownloadMiniconda ($python_version, $platform_suffix) {
$webclient = New-Object System.Net.WebClient
if ($python_version -eq "3.4") {
$filename = "Miniconda3-3.5.5-Windows-" + $platform_suffix + ".exe"
} else {
$filename = "Miniconda-3.5.5-Windows-" + $platform_suffix + ".exe"
}
$url = $MINICONDA_URL + $filename
$basedir = $pwd.Path + "\"
$filepath = $basedir + $filename
if (Test-Path $filename) {
Write-Host "Reusing" $filepath
return $filepath
}
# Download and retry up to 3 times in case of network transient errors.
Write-Host "Downloading" $filename "from" $url
$retry_attempts = 2
for($i=0; $i -lt $retry_attempts; $i++){
try {
$webclient.DownloadFile($url, $filepath)
break
}
Catch [Exception]{
Start-Sleep 1
}
}
if (Test-Path $filepath) {
Write-Host "File saved at" $filepath
} else {
# Retry once to get the error message if any at the last try
$webclient.DownloadFile($url, $filepath)
}
return $filepath
}
function InstallMiniconda ($python_version, $architecture, $python_home) {
Write-Host "Installing Python" $python_version "for" $architecture "bit architecture to" $python_home
if (Test-Path $python_home) {
Write-Host $python_home "already exists, skipping."
return $false
}
if ($architecture -eq "32") {
$platform_suffix = "x86"
} else {
$platform_suffix = "x86_64"
}
$filepath = DownloadMiniconda $python_version $platform_suffix
Write-Host "Installing" $filepath "to" $python_home
$install_log = $python_home + ".log"
$args = "/S /D=$python_home"
Write-Host $filepath $args
Start-Process -FilePath $filepath -ArgumentList $args -Wait -Passthru
if (Test-Path $python_home) {
Write-Host "Python $python_version ($architecture) installation complete"
} else {
Write-Host "Failed to install Python in $python_home"
Get-Content -Path $install_log
Exit 1
}
}
function InstallMinicondaPip ($python_home) {
$pip_path = $python_home + "\Scripts\pip.exe"
$conda_path = $python_home + "\Scripts\conda.exe"
if (-not(Test-Path $pip_path)) {
Write-Host "Installing pip..."
$args = "install --yes pip"
Write-Host $conda_path $args
Start-Process -FilePath "$conda_path" -ArgumentList $args -Wait -Passthru
} else {
Write-Host "pip already installed."
}
}
function main () {
InstallPython $env:PYTHON_VERSION $env:PYTHON_ARCH $env:PYTHON
InstallPip $env:PYTHON
}
main

47
appveyor/run_with_env.cmd Normal file
View File

@ -0,0 +1,47 @@
:: To build extensions for 64 bit Python 3, we need to configure environment
:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of:
:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1)
::
:: To build extensions for 64 bit Python 2, we need to configure environment
:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of:
:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0)
::
:: 32 bit builds do not require specific environment configurations.
::
:: Note: this script needs to be run with the /E:ON and /V:ON flags for the
:: cmd interpreter, at least for (SDK v7.0)
::
:: More details at:
:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows
:: http://stackoverflow.com/a/13751649/163740
::
:: Author: Olivier Grisel
:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/
@ECHO OFF
SET COMMAND_TO_RUN=%*
SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows
SET MAJOR_PYTHON_VERSION="%PYTHON_VERSION:~0,1%"
IF %MAJOR_PYTHON_VERSION% == "2" (
SET WINDOWS_SDK_VERSION="v7.0"
) ELSE IF %MAJOR_PYTHON_VERSION% == "3" (
SET WINDOWS_SDK_VERSION="v7.1"
) ELSE (
ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%"
EXIT 1
)
IF "%PYTHON_ARCH%"=="64" (
ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture
SET DISTUTILS_USE_SDK=1
SET MSSdk=1
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION%
"%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release
ECHO Executing: %COMMAND_TO_RUN%
call %COMMAND_TO_RUN% || EXIT 1
) ELSE (
ECHO Using default MSVC build environment for 32 bit architecture
ECHO Executing: %COMMAND_TO_RUN%
call %COMMAND_TO_RUN% || EXIT 1
)

View File

@ -36,6 +36,9 @@
}, { }, {
"name": "Filipe Silva", "name": "Filipe Silva",
"url": "https://github.com/filipesilva" "url": "https://github.com/filipesilva"
}, {
"name": "Ramón Cahenzli",
"url": "https://github.com/psy-q"
}], }],
"engines": { "engines": {
"atom": ">=0.174.0 <2.0.0" "atom": ">=0.174.0 <2.0.0"
@ -129,6 +132,36 @@
"go", "go",
"golang" "golang"
], ],
"dependencies": {
"analytics-node": "^1.2.2",
"async": "^1.0.0",
"atom-message-panel": "^1.2.4",
"atom-space-pen-views": "^2.0.5",
"bluebird": "^2.9.26",
"coffee-fmt": "0.10.2",
"coffee-formatter": "^0.1.2",
"csscomb": "^3.1.5",
"diff": "^1.4.0",
"editorconfig": "^0.12.2",
"emissary": "^1.3.3",
"event-kit": "^1.2.0",
"expand-home-dir": "0.0.2",
"extend": "^2.0.1",
"js-beautify": "^1.5.6",
"lodash": "3.9.3",
"loophole": "^1.0.0",
"node-dir": "^0.1.8",
"node-uuid": "^1.4.3",
"prettydiff": "^1.11.21",
"space-pen": "^5.1.1",
"strip-json-comments": "^1.0.2",
"temp": "^0.8.1",
"tidy-markdown": "^0.3.2",
"typescript-formatter": "~0.3.2",
"underscore-plus": "^1.6.6",
"winston": "^1.0.0",
"yaml-front-matter": "^3.2.3"
},
"devDependencies": { "devDependencies": {
"coffee-script": "^1.9.3", "coffee-script": "^1.9.3",
"handlebars": "^3.0.3" "handlebars": "^3.0.3"

View File

@ -29,7 +29,7 @@ module.exports = class Beautifiers
### ###
List of beautifier names List of beautifier names
To register a beautifier add it's name here To register a beautifier add its name here
### ###
beautifierNames : [ beautifierNames : [
'uncrustify' 'uncrustify'
@ -470,7 +470,7 @@ module.exports = class Beautifiers
title = "Atom Beautify could not find a supported beautifier for this file" title = "Atom Beautify could not find a supported beautifier for this file"
detail = """ detail = """
Atom Beautify could not determine a supported beautifier to handle this file with grammar \"#{grammar}\" and extension \"#{fileExtension}\". \ Atom Beautify could not determine a supported beautifier to handle this file with grammar \"#{grammar}\" and extension \"#{fileExtension}\". \
If you would like to request support for this file and it's language, please create an issue for Atom Beautify at #{repoBugsUrl} If you would like to request support for this file and its language, please create an issue for Atom Beautify at #{repoBugsUrl}
""" """
atom?.notifications.addWarning(title, { atom?.notifications.addWarning(title, {
@ -638,7 +638,7 @@ module.exports = class Beautifiers
userHome = @getUserHome() userHome = @getUserHome()
# FAKEFILENAME forces `path` to treat as file path and it's parent directory # FAKEFILENAME forces `path` to treat as file path and its parent directory
# is the userHome. See implementation of findConfig # is the userHome. See implementation of findConfig
# and how path.dirname(DIRECTORY) returns the parent directory of DIRECTORY # and how path.dirname(DIRECTORY) returns the parent directory of DIRECTORY
homeOptions = @getConfig(path.join(userHome, "FAKEFILENAME"), false) homeOptions = @getConfig(path.join(userHome, "FAKEFILENAME"), false)