Merge changes with latest master branch
This commit is contained in:
parent
40d21136c3
commit
c54a0400fe
|
@ -0,0 +1,19 @@
|
||||||
|
# Number of days of inactivity before an issue becomes stale
|
||||||
|
daysUntilStale: 60
|
||||||
|
# Number of days of inactivity before a stale issue is closed
|
||||||
|
daysUntilClose: 7
|
||||||
|
# Issues with these labels will never be considered stale
|
||||||
|
exemptLabels:
|
||||||
|
- high priority
|
||||||
|
- pending-publication
|
||||||
|
- add-language
|
||||||
|
- add-beautifier
|
||||||
|
# Label to use when marking an issue as stale
|
||||||
|
staleLabel: stale
|
||||||
|
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||||
|
markComment: >
|
||||||
|
This issue has been automatically marked as stale because it has not had
|
||||||
|
recent activity. If this is still an issue, please add a comment. It will be closed if no further activity occurs. Thank you
|
||||||
|
for your contributions.
|
||||||
|
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||||
|
closeComment: false
|
166
.travis.yml
166
.travis.yml
|
@ -11,53 +11,24 @@ notifications:
|
||||||
|
|
||||||
script: sh build-package.sh
|
script: sh build-package.sh
|
||||||
|
|
||||||
|
language: generic
|
||||||
|
|
||||||
|
cache:
|
||||||
|
timeout: 1000
|
||||||
|
|
||||||
git:
|
git:
|
||||||
depth: 10
|
depth: 1
|
||||||
|
|
||||||
php:
|
os:
|
||||||
- '5.6'
|
- linux
|
||||||
python:
|
- osx
|
||||||
- '2.7'
|
|
||||||
go:
|
|
||||||
- release
|
|
||||||
|
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: linux
|
|
||||||
dist: trusty
|
|
||||||
sudo: required
|
sudo: required
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
env:
|
|
||||||
- ATOM_CHANNEL=stable
|
|
||||||
- os: linux
|
|
||||||
dist: trusty
|
|
||||||
sudo: required
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
env:
|
|
||||||
- ATOM_CHANNEL=beta
|
|
||||||
# - os: linux
|
|
||||||
# dist: trusty
|
|
||||||
# sudo: require
|
|
||||||
# env:
|
|
||||||
# - ATOM_CHANNEL=stable
|
|
||||||
# - os: linux
|
|
||||||
# dist: trusty
|
|
||||||
# sudo: require
|
|
||||||
# env:
|
|
||||||
# - ATOM_CHANNEL=beta
|
|
||||||
- os: osx
|
|
||||||
env:
|
|
||||||
- ATOM_CHANNEL=stable
|
|
||||||
# - os: osx
|
|
||||||
# env:
|
|
||||||
# - ATOM_CHANNEL=beta
|
|
||||||
|
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- APM_TEST_PACKAGES="language-marko language-html-swig language-svg language-d mavensmate-atom language-lua language-puppet fuse"
|
matrix:
|
||||||
- PATH="/home/travis/gopath/bin:$HOME/.linuxbrew/bin:$PATH"
|
- ATOM_SCRIPT_NAME=atom-beta APM_SCRIPT_NAME=apm-beta
|
||||||
|
- ATOM_SCRIPT_NAME=atom APM_SCRIPT_NAME=apm
|
||||||
|
|
||||||
addons:
|
addons:
|
||||||
apt:
|
apt:
|
||||||
|
@ -71,9 +42,7 @@ addons:
|
||||||
- libgnome-keyring-dev
|
- libgnome-keyring-dev
|
||||||
- fakeroot
|
- fakeroot
|
||||||
- crystal
|
- crystal
|
||||||
- ocaml
|
|
||||||
- camlp4
|
- camlp4
|
||||||
- opam
|
|
||||||
- php5-cli
|
- php5-cli
|
||||||
- golang
|
- golang
|
||||||
|
|
||||||
|
@ -84,111 +53,38 @@ cache:
|
||||||
- vendor/bundle # gems are installed here, https://docs.travis-ci.com/user/languages/ruby/#Dependency-Management
|
- vendor/bundle # gems are installed here, https://docs.travis-ci.com/user/languages/ruby/#Dependency-Management
|
||||||
- node_modules
|
- node_modules
|
||||||
- $HOME/.atom
|
- $HOME/.atom
|
||||||
- $HOME/.stack
|
- $HOME/.opam
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
# Install Homebrew on Linux
|
# linux: Install Nix, Nix packages, upgrade pip, and install python packages
|
||||||
|
# osx: Update Homebrew, remove conflicting cask, brew bundle, symlink elm-format,
|
||||||
|
# upgrade pip, and install python packages
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||||
git clone --depth=1 https://github.com/Linuxbrew/brew.git ~/.linuxbrew || true;
|
curl https://nixos.org/nix/install | sh &&
|
||||||
|
. ~/.nix-profile/etc/profile.d/nix.sh &&
|
||||||
|
nix-env -i uncrustify R elm-format terraform atom atom-beta opam &&
|
||||||
|
pip install --upgrade pip &&
|
||||||
|
pip install --user -r requirements.txt;
|
||||||
|
elif [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||||
|
brew update && brew cask zap oclint && brew bundle &&
|
||||||
|
ln -s /usr/local/bin/elm-format-0.17 /usr/local/bin/elm-format &&
|
||||||
|
pip2 install --upgrade pip &&
|
||||||
|
pip2 install -r requirements.txt;
|
||||||
|
else
|
||||||
|
echo Error:TRAVIS_OS_NAME && exit 1;
|
||||||
fi
|
fi
|
||||||
# Update Homebrew
|
|
||||||
- brew update
|
|
||||||
- brew tap homebrew/dupes
|
|
||||||
- brew tap homebrew/versions
|
|
||||||
# Ruby language support
|
# Ruby language support
|
||||||
# - gem install ruby-beautify --verbose
|
- bundle install
|
||||||
# - gem install rubocop
|
|
||||||
- gem install htmlbeautifier
|
|
||||||
- gem install puppet-lint
|
|
||||||
# Sass language support
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
gem install sass;
|
|
||||||
else
|
|
||||||
docker pull unibeautify/sass-convert;
|
|
||||||
fi
|
|
||||||
# Python language support
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
|
||||||
sudo chmod 777 -R /opt/python;
|
|
||||||
pip install --upgrade pip;
|
|
||||||
pip install --user --upgrade autopep8;
|
|
||||||
pip install --user --upgrade isort;
|
|
||||||
else
|
|
||||||
pip install --upgrade pip;
|
|
||||||
pip install --upgrade autopep8;
|
|
||||||
pip install --upgrade isort;
|
|
||||||
fi
|
|
||||||
# SQL language support
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
|
||||||
pip install --user --upgrade sqlparse;
|
|
||||||
else
|
|
||||||
pip install --upgrade sqlparse;
|
|
||||||
fi
|
|
||||||
# Java, C, C++, C#, Objective-C, D, Pawn, Vala
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
brew install uncrustify;
|
|
||||||
else
|
|
||||||
docker pull unibeautify/uncrustify;
|
|
||||||
fi
|
|
||||||
# R
|
# R
|
||||||
- brew tap homebrew/science
|
- Rscript --version
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
brew install r;
|
|
||||||
rscript --version;
|
|
||||||
else
|
|
||||||
docker pull unibeautify/rscript;
|
|
||||||
fi
|
|
||||||
# PHP
|
# PHP
|
||||||
- brew tap homebrew/homebrew-php
|
- composer install
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
brew install php56 || true;
|
|
||||||
brew gist-logs php56 || true;
|
|
||||||
echo -e "\n[Phar]\nphar.readonly = Off\n" >> /usr/local/etc/php/5.6/php.ini;
|
|
||||||
brew install php-cs-fixer || true;
|
|
||||||
brew gist-logs php-cs-fixer || true;
|
|
||||||
fi
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
|
||||||
wget http://get.sensiolabs.org/php-cs-fixer.phar -O php-cs-fixer;
|
|
||||||
chmod a+x php-cs-fixer;
|
|
||||||
mv php-cs-fixer $HOME/.linuxbrew/bin/php-cs-fixer;
|
|
||||||
fi
|
|
||||||
# CoffeeScript
|
# CoffeeScript
|
||||||
- npm install coffee-formatter
|
- npm install coffee-formatter
|
||||||
# Haskell
|
|
||||||
# - brew install haskell-stack
|
|
||||||
# - stack setup
|
|
||||||
# - stack install stylish-haskell
|
|
||||||
# Elm
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
curl -L -o /tmp/elm-format.tgz
|
|
||||||
https://github.com/avh4/elm-format/releases/download/0.7.0-exp/elm-format-0.17-0.7.0-exp-mac-x64.tgz;
|
|
||||||
tar xvzf /tmp/elm-format.tgz -C /usr/local/bin;
|
|
||||||
fi
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
|
||||||
curl -L -o /tmp/elm-format.tgz https://github.com/avh4/elm-format/releases/download/0.7.0-exp/elm-format-0.17-0.7.0-exp-linux-x64.tgz;
|
|
||||||
tar xvzf /tmp/elm-format.tgz -C $HOME/.linuxbrew/bin;
|
|
||||||
fi
|
|
||||||
# OCaml
|
# OCaml
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
brew install ocaml;
|
|
||||||
brew install opam;
|
|
||||||
fi
|
|
||||||
- opam init --auto-setup
|
- opam init --auto-setup
|
||||||
# Init environment variables for opam
|
# Init environment variables for opam
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||||
eval `opam config env`;
|
eval `opam config env`;
|
||||||
fi
|
fi
|
||||||
- opam install --yes ocp-indent
|
- opam install --yes ocp-indent
|
||||||
# Crystal
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install crystal-lang; fi
|
|
||||||
# Bash
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
|
||||||
pip install --user beautysh;
|
|
||||||
else
|
|
||||||
pip install beautysh;
|
|
||||||
fi
|
|
||||||
# terraform
|
|
||||||
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
|
||||||
brew install terraform;
|
|
||||||
else
|
|
||||||
docker pull hashicorp/terraform;
|
|
||||||
fi
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
tap 'homebrew/science'
|
||||||
|
tap 'homebrew/php'
|
||||||
|
tap 'caskroom/versions'
|
||||||
|
brew 'uncrustify'
|
||||||
|
brew 'r'
|
||||||
|
brew 'composer'
|
||||||
|
brew 'opam'
|
||||||
|
brew 'crystal-lang'
|
||||||
|
brew 'terraform'
|
||||||
|
brew 'elm-format'
|
||||||
|
cask 'atom'
|
||||||
|
cask 'atom-beta'
|
|
@ -0,0 +1,6 @@
|
||||||
|
source "https://rubygems.org"
|
||||||
|
|
||||||
|
gem "rubocop"
|
||||||
|
gem "htmlbeautifier"
|
||||||
|
gem "puppet-lint"
|
||||||
|
gem "sass"
|
|
@ -1,10 +1,16 @@
|
||||||
# :lipstick: [{{package.name}}](https://github.com/Glavin001/atom-beautify)
|
# :lipstick: [{{package.name}}](https://github.com/Glavin001/atom-beautify)
|
||||||
|
[![apm](https://img.shields.io/apm/dm/atom-beautify.svg)](https://atom.io/packages/atom-beautify)
|
||||||
[![Greenkeeper badge](https://badges.greenkeeper.io/Glavin001/atom-beautify.svg)](https://greenkeeper.io/)
|
[![Greenkeeper badge](https://badges.greenkeeper.io/Glavin001/atom-beautify.svg)](https://greenkeeper.io/)
|
||||||
[![GitHub issues](https://img.shields.io/github/issues/Glavin001/atom-beautify.svg?style=flat-square)](https://github.com/Glavin001/atom-beautify/issues)
|
[![GitHub issues](https://img.shields.io/github/issues/Glavin001/atom-beautify.svg?style=flat-square)](https://github.com/Glavin001/atom-beautify/issues)
|
||||||
[![GitHub stars](https://img.shields.io/github/stars/Glavin001/atom-beautify.svg?style=flat-square)](https://github.com/Glavin001/atom-beautify/stargazers)
|
[![GitHub stars](https://img.shields.io/github/stars/Glavin001/atom-beautify.svg?style=flat-square)](https://github.com/Glavin001/atom-beautify/stargazers)
|
||||||
[![Gitter](https://img.shields.io/gitter/room/Glavin001/atom-beautify.svg?style=flat-square)](https://gitter.im/Glavin001/atom-beautify)
|
[![Gitter](https://img.shields.io/gitter/room/Glavin001/atom-beautify.svg?style=flat-square)](https://gitter.im/Glavin001/atom-beautify)
|
||||||
[![Bountysource](https://img.shields.io/bountysource/team/atom-beautify/activity.svg?style=flat-square)](https://www.bountysource.com/teams/atom-beautify)
|
[![Bountysource](https://img.shields.io/bountysource/team/atom-beautify/activity.svg?style=flat-square)](https://www.bountysource.com/teams/atom-beautify)
|
||||||
[![Paypal Donations](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=X2RK5DKN6YXPJ&lc=CA&item_name=Atom%2dBeautify&item_number=atom%2dbeautify¤cy_code=CAD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted)
|
[![Paypal Donations](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=X2RK5DKN6YXPJ&lc=CA&item_name=Atom%2dBeautify&item_number=atom%2dbeautify¤cy_code=CAD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted)
|
||||||
|
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/unibeautify)
|
||||||
|
|
||||||
|
**Sign up for Unibeautify CI: [https://goo.gl/jmM4QN](https://goo.gl/jmM4QN)**
|
||||||
|
|
||||||
|
**Help improve Atom-Beautify by completing the quick questionnaire: [https://goo.gl/iEHBNr](https://goo.gl/iEHBNr)**
|
||||||
|
|
||||||
| Mac OS <img src="https://cloud.githubusercontent.com/assets/1885333/17059766/2530c9d8-4ffd-11e6-9529-3fa47dbff616.png" width="50px"> and <img src="https://cloud.githubusercontent.com/assets/1885333/17059750/11c4474e-4ffd-11e6-89e1-2486ca5b3234.png" width="100px"> | <img src="https://cloud.githubusercontent.com/assets/1885333/17059763/206a7d4a-4ffd-11e6-859e-7856902fb300.png" width="100px"> |
|
| Mac OS <img src="https://cloud.githubusercontent.com/assets/1885333/17059766/2530c9d8-4ffd-11e6-9529-3fa47dbff616.png" width="50px"> and <img src="https://cloud.githubusercontent.com/assets/1885333/17059750/11c4474e-4ffd-11e6-89e1-2486ca5b3234.png" width="100px"> | <img src="https://cloud.githubusercontent.com/assets/1885333/17059763/206a7d4a-4ffd-11e6-859e-7856902fb300.png" width="100px"> |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
|
@ -64,6 +70,18 @@ Thank you.
|
||||||
Atom-Beautify is going to be completely rewritten with [Unibeautify](https://github.com/Unibeautify/unibeautify) at its core!
|
Atom-Beautify is going to be completely rewritten with [Unibeautify](https://github.com/Unibeautify/unibeautify) at its core!
|
||||||
See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Issue #1174](https://github.com/Glavin001/atom-beautify/issues/1174).
|
See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Issue #1174](https://github.com/Glavin001/atom-beautify/issues/1174).
|
||||||
|
|
||||||
|
### Poll: Improving installation of third-party beautifiers
|
||||||
|
|
||||||
|
Many users are experiencing issues when installing third party beautifiers (e.g. Uncrustify, PHP-CS-Fixer, and many more).
|
||||||
|
A possible solution is a "cloud" service which provides remote access to these beautifiers. Atom-Beautify would then communicate with these services, allowing for zero-installation beautification.
|
||||||
|
|
||||||
|
Please let us know what you think!
|
||||||
|
|
||||||
|
[![](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/Yes%2C%20cloud%20solution%20would%20be%20great!)](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/Yes%2C%20cloud%20solution%20would%20be%20great!/vote)
|
||||||
|
[![](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20enjoy%20manually%20installing%20beautifiers)](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20enjoy%20manually%20installing%20beautifiers/vote)
|
||||||
|
[![](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20am%20happy%20using%20Docker)](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20am%20happy%20using%20Docker/vote)
|
||||||
|
[![](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20do%20not%20want%20to%20send%20me%20code%20over%20the%20Internet)](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20do%20not%20want%20to%20send%20me%20code%20over%20the%20Internet/vote)
|
||||||
|
|
||||||
## Beautifiers
|
## Beautifiers
|
||||||
|
|
||||||
Some of the supported beautifiers are developed for Node.js and are automatically installed when Atom-Beautify is installed. However, other beautifiers are command-line interface (CLI) applications and require you to manually install them.
|
Some of the supported beautifiers are developed for Node.js and are automatically installed when Atom-Beautify is installed. However, other beautifiers are command-line interface (CLI) applications and require you to manually install them.
|
||||||
|
@ -203,6 +221,8 @@ See [`docs/troubleshooting.md`](docs/troubleshooting.md).
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
See [`CONTRIBUTING.md`](CONTRIBUTING.md).
|
||||||
|
|
||||||
[See all contributors on GitHub](../../graphs/contributors).
|
[See all contributors on GitHub](../../graphs/contributors).
|
||||||
|
|
||||||
Please update the [CHANGELOG.md](CHANGELOG.md),
|
Please update the [CHANGELOG.md](CHANGELOG.md),
|
||||||
|
|
24
README.md
24
README.md
|
@ -1,10 +1,16 @@
|
||||||
# :lipstick: [atom-beautify](https://github.com/Glavin001/atom-beautify)
|
# :lipstick: [atom-beautify](https://github.com/Glavin001/atom-beautify)
|
||||||
|
[![apm](https://img.shields.io/apm/dm/atom-beautify.svg)](https://atom.io/packages/atom-beautify)
|
||||||
[![Greenkeeper badge](https://badges.greenkeeper.io/Glavin001/atom-beautify.svg)](https://greenkeeper.io/)
|
[![Greenkeeper badge](https://badges.greenkeeper.io/Glavin001/atom-beautify.svg)](https://greenkeeper.io/)
|
||||||
[![GitHub issues](https://img.shields.io/github/issues/Glavin001/atom-beautify.svg?style=flat-square)](https://github.com/Glavin001/atom-beautify/issues)
|
[![GitHub issues](https://img.shields.io/github/issues/Glavin001/atom-beautify.svg?style=flat-square)](https://github.com/Glavin001/atom-beautify/issues)
|
||||||
[![GitHub stars](https://img.shields.io/github/stars/Glavin001/atom-beautify.svg?style=flat-square)](https://github.com/Glavin001/atom-beautify/stargazers)
|
[![GitHub stars](https://img.shields.io/github/stars/Glavin001/atom-beautify.svg?style=flat-square)](https://github.com/Glavin001/atom-beautify/stargazers)
|
||||||
[![Gitter](https://img.shields.io/gitter/room/Glavin001/atom-beautify.svg?style=flat-square)](https://gitter.im/Glavin001/atom-beautify)
|
[![Gitter](https://img.shields.io/gitter/room/Glavin001/atom-beautify.svg?style=flat-square)](https://gitter.im/Glavin001/atom-beautify)
|
||||||
[![Bountysource](https://img.shields.io/bountysource/team/atom-beautify/activity.svg?style=flat-square)](https://www.bountysource.com/teams/atom-beautify)
|
[![Bountysource](https://img.shields.io/bountysource/team/atom-beautify/activity.svg?style=flat-square)](https://www.bountysource.com/teams/atom-beautify)
|
||||||
[![Paypal Donations](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=X2RK5DKN6YXPJ&lc=CA&item_name=Atom%2dBeautify&item_number=atom%2dbeautify¤cy_code=CAD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted)
|
[![Paypal Donations](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=X2RK5DKN6YXPJ&lc=CA&item_name=Atom%2dBeautify&item_number=atom%2dbeautify¤cy_code=CAD&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted)
|
||||||
|
[![Twitter URL](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](https://twitter.com/unibeautify)
|
||||||
|
|
||||||
|
**Sign up for Unibeautify CI: [https://goo.gl/jmM4QN](https://goo.gl/jmM4QN)**
|
||||||
|
|
||||||
|
**Help improve Atom-Beautify by completing the quick questionnaire: [https://goo.gl/iEHBNr](https://goo.gl/iEHBNr)**
|
||||||
|
|
||||||
| Mac OS <img src="https://cloud.githubusercontent.com/assets/1885333/17059766/2530c9d8-4ffd-11e6-9529-3fa47dbff616.png" width="50px"> and <img src="https://cloud.githubusercontent.com/assets/1885333/17059750/11c4474e-4ffd-11e6-89e1-2486ca5b3234.png" width="100px"> | <img src="https://cloud.githubusercontent.com/assets/1885333/17059763/206a7d4a-4ffd-11e6-859e-7856902fb300.png" width="100px"> |
|
| Mac OS <img src="https://cloud.githubusercontent.com/assets/1885333/17059766/2530c9d8-4ffd-11e6-9529-3fa47dbff616.png" width="50px"> and <img src="https://cloud.githubusercontent.com/assets/1885333/17059750/11c4474e-4ffd-11e6-89e1-2486ca5b3234.png" width="100px"> | <img src="https://cloud.githubusercontent.com/assets/1885333/17059763/206a7d4a-4ffd-11e6-859e-7856902fb300.png" width="100px"> |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
|
@ -64,6 +70,18 @@ Thank you.
|
||||||
Atom-Beautify is going to be completely rewritten with [Unibeautify](https://github.com/Unibeautify/unibeautify) at its core!
|
Atom-Beautify is going to be completely rewritten with [Unibeautify](https://github.com/Unibeautify/unibeautify) at its core!
|
||||||
See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Issue #1174](https://github.com/Glavin001/atom-beautify/issues/1174).
|
See [`unibeautify` branch](../../tree/unibeautify) for work in progress and [Issue #1174](https://github.com/Glavin001/atom-beautify/issues/1174).
|
||||||
|
|
||||||
|
### Poll: Improving installation of third-party beautifiers
|
||||||
|
|
||||||
|
Many users are experiencing issues when installing third party beautifiers (e.g. Uncrustify, PHP-CS-Fixer, and many more).
|
||||||
|
A possible solution is a "cloud" service which provides remote access to these beautifiers. Atom-Beautify would then communicate with these services, allowing for zero-installation beautification.
|
||||||
|
|
||||||
|
Please let us know what you think!
|
||||||
|
|
||||||
|
[![](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/Yes%2C%20cloud%20solution%20would%20be%20great!)](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/Yes%2C%20cloud%20solution%20would%20be%20great!/vote)
|
||||||
|
[![](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20enjoy%20manually%20installing%20beautifiers)](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20enjoy%20manually%20installing%20beautifiers/vote)
|
||||||
|
[![](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20am%20happy%20using%20Docker)](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20am%20happy%20using%20Docker/vote)
|
||||||
|
[![](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20do%20not%20want%20to%20send%20me%20code%20over%20the%20Internet)](https://m131jyck4m.execute-api.us-west-2.amazonaws.com/prod/poll/01BY57P9ACSDQASVT7KYZKZESK/No%2C%20I%20do%20not%20want%20to%20send%20me%20code%20over%20the%20Internet/vote)
|
||||||
|
|
||||||
## Beautifiers
|
## Beautifiers
|
||||||
|
|
||||||
Some of the supported beautifiers are developed for Node.js and are automatically installed when Atom-Beautify is installed. However, other beautifiers are command-line interface (CLI) applications and require you to manually install them.
|
Some of the supported beautifiers are developed for Node.js and are automatically installed when Atom-Beautify is installed. However, other beautifiers are command-line interface (CLI) applications and require you to manually install them.
|
||||||
|
@ -96,13 +114,13 @@ Some of the supported beautifiers are developed for Node.js and are automaticall
|
||||||
| Lua beautifier | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
| Lua beautifier | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
||||||
| Marko Beautifier | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
| Marko Beautifier | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
||||||
| Nginx Beautify | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
| Nginx Beautify | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
||||||
| ocp-indent | :warning: Manual installation | :construction: Not an executable | :page_facing_up: Go to https://www.typerex.org/ocp-indent.html and follow the instructions. |
|
| ocp-indent | :warning: 1 executable | :white_check_mark: :100:% of executables | :whale: With [Docker](https://www.docker.com/):<br/>1. Install [ocp-indent (`ocp-indent`)](https://www.typerex.org/ocp-indent.html) with `docker pull unibeautify/ocp-indent`<br/><br/>:bookmark_tabs: Manually:<br/>1. Install [ocp-indent (`ocp-indent`)](https://www.typerex.org/ocp-indent.html) by following https://www.typerex.org/ocp-indent.html#installation<br/> |
|
||||||
| Perltidy | :warning: Manual installation | :construction: Not an executable | :page_facing_up: Go to http://perltidy.sourceforge.net/ and follow the instructions. |
|
| Perltidy | :warning: Manual installation | :construction: Not an executable | :page_facing_up: Go to http://perltidy.sourceforge.net/ and follow the instructions. |
|
||||||
| PHP-CS-Fixer | :warning: 2 executables | :warning: Only 1 of 2 executables | :whale: With [Docker](https://www.docker.com/):<br/>1. Install [PHP-CS-Fixer (`php-cs-fixer`)](https://github.com/FriendsOfPHP/PHP-CS-Fixer) with `docker pull unibeautify/php-cs-fixer`<br/><br/>:bookmark_tabs: Manually:<br/>1. Install [PHP (`php`)](http://php.net/) by following http://php.net/manual/en/install.php<br/>2. Install [PHP-CS-Fixer (`php-cs-fixer`)](https://github.com/FriendsOfPHP/PHP-CS-Fixer) by following https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation<br/> |
|
| PHP-CS-Fixer | :warning: 2 executables | :warning: Only 1 of 2 executables | :whale: With [Docker](https://www.docker.com/):<br/>1. Install [PHP-CS-Fixer (`php-cs-fixer`)](https://github.com/FriendsOfPHP/PHP-CS-Fixer) with `docker pull unibeautify/php-cs-fixer`<br/><br/>:bookmark_tabs: Manually:<br/>1. Install [PHP (`php`)](http://php.net/) by following http://php.net/manual/en/install.php<br/>2. Install [PHP-CS-Fixer (`php-cs-fixer`)](https://github.com/FriendsOfPHP/PHP-CS-Fixer) by following https://github.com/FriendsOfPHP/PHP-CS-Fixer#installation<br/> |
|
||||||
| PHPCBF | :warning: 2 executables | :warning: Only 1 of 2 executables | :whale: With [Docker](https://www.docker.com/):<br/>1. Install [PHPCBF (`phpcbf`)](https://github.com/squizlabs/PHP_CodeSniffer) with `docker pull unibeautify/phpcbf`<br/><br/>:bookmark_tabs: Manually:<br/>1. Install [PHP (`php`)](http://php.net/) by following http://php.net/manual/en/install.php<br/>2. Install [PHPCBF (`phpcbf`)](https://github.com/squizlabs/PHP_CodeSniffer) by following https://github.com/squizlabs/PHP_CodeSniffer#installation<br/> |
|
| PHPCBF | :warning: 2 executables | :warning: Only 1 of 2 executables | :whale: With [Docker](https://www.docker.com/):<br/>1. Install [PHPCBF (`phpcbf`)](https://github.com/squizlabs/PHP_CodeSniffer) with `docker pull unibeautify/phpcbf`<br/><br/>:bookmark_tabs: Manually:<br/>1. Install [PHP (`php`)](http://php.net/) by following http://php.net/manual/en/install.php<br/>2. Install [PHPCBF (`phpcbf`)](https://github.com/squizlabs/PHP_CodeSniffer) by following https://github.com/squizlabs/PHP_CodeSniffer#installation<br/> |
|
||||||
| Pretty Diff | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
| Pretty Diff | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
||||||
| Pug Beautify | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
| Pug Beautify | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
||||||
| puppet-lint | :warning: Manual installation | :construction: Not an executable | :page_facing_up: Go to http://puppet-lint.com/ and follow the instructions. |
|
| puppet-lint | :warning: 1 executable | :white_check_mark: :100:% of executables | :whale: With [Docker](https://www.docker.com/):<br/>1. Install [puppet-lint (`puppet-lint`)](http://puppet-lint.com/) with `docker pull unibeautify/puppet-lint`<br/><br/>:bookmark_tabs: Manually:<br/>1. Install [puppet-lint (`puppet-lint`)](http://puppet-lint.com/) by following http://puppet-lint.com/<br/> |
|
||||||
| pybeautifier | :warning: Manual installation | :construction: Not an executable | :page_facing_up: Go to https://github.com/guyskk/pybeautifier and follow the instructions. |
|
| pybeautifier | :warning: Manual installation | :construction: Not an executable | :page_facing_up: Go to https://github.com/guyskk/pybeautifier and follow the instructions. |
|
||||||
| Remark | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
| Remark | :white_check_mark: | :ok_hand: Not necessary | :smiley: Nothing! |
|
||||||
| Rubocop | :warning: Manual installation | :construction: Not an executable | :page_facing_up: Go to https://github.com/bbatsov/rubocop and follow the instructions. |
|
| Rubocop | :warning: Manual installation | :construction: Not an executable | :page_facing_up: Go to https://github.com/bbatsov/rubocop and follow the instructions. |
|
||||||
|
@ -318,6 +336,8 @@ See [`docs/troubleshooting.md`](docs/troubleshooting.md).
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
|
See [`CONTRIBUTING.md`](CONTRIBUTING.md).
|
||||||
|
|
||||||
[See all contributors on GitHub](../../graphs/contributors).
|
[See all contributors on GitHub](../../graphs/contributors).
|
||||||
|
|
||||||
Please update the [CHANGELOG.md](CHANGELOG.md),
|
Please update the [CHANGELOG.md](CHANGELOG.md),
|
||||||
|
|
121
appveyor.yml
121
appveyor.yml
|
@ -10,136 +10,35 @@ environment:
|
||||||
# /E:ON and /V:ON options are not enabled in the batch script intepreter
|
# /E:ON and /V:ON options are not enabled in the batch script intepreter
|
||||||
# See: http://stackoverflow.com/a/13751649/163740
|
# See: http://stackoverflow.com/a/13751649/163740
|
||||||
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_env.cmd"
|
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_env.cmd"
|
||||||
|
PATH: C:\Ruby23\bin;C:\Ruby23-x64\DevKit\mingw\bin;C:\Python27;C:\Python27\Scripts;%PATH%
|
||||||
matrix:
|
|
||||||
- PYTHON: "C:\\Python27"
|
|
||||||
PYTHON_VERSION: "2.7.8"
|
|
||||||
PYTHON_ARCH: "32"
|
|
||||||
RUBY_VERSION: 23
|
|
||||||
|
|
||||||
# - 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:
|
||||||
|
- cinst packages.config -y
|
||||||
- ECHO "Filesystem root:"
|
- refreshenv
|
||||||
- ps: "ls \"C:/\""
|
|
||||||
|
|
||||||
- cinst atom -y
|
|
||||||
- cd %APPVEYOR_BUILD_FOLDER%
|
|
||||||
# Add Atom's bin (apm, etc) to PATH
|
|
||||||
- SET PATH=%LOCALAPPDATA%\atom\bin;%PATH%
|
|
||||||
- apm install
|
- apm install
|
||||||
|
|
||||||
# Install CLI beautifiers
|
# https://packaging.python.org/guides/supporting-windows-using-appveyor/
|
||||||
|
- pip install -r requirements.txt
|
||||||
|
|
||||||
# Install Python (from the official .msi of http://python.org) and pip when
|
# Gemfile Install
|
||||||
# not already installed.
|
- bundle install
|
||||||
- "powershell ./appveyor/install.ps1"
|
|
||||||
|
|
||||||
# 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"
|
|
||||||
- where autopep8
|
|
||||||
|
|
||||||
- "%CMD_IN_ENV% pip install --upgrade isort"
|
|
||||||
- where isort
|
|
||||||
|
|
||||||
- "%CMD_IN_ENV% pip install --upgrade sqlparse"
|
|
||||||
|
|
||||||
# Ruby & Gem
|
|
||||||
- SET PATH=C:\Ruby%RUBY_VERSION%\bin;C:\Ruby23-x64\DevKit\mingw\bin;%PATH%
|
|
||||||
# Rubocop
|
|
||||||
- gem install rubocop
|
|
||||||
- where rubocop
|
|
||||||
# HTMLBeautifier
|
|
||||||
- gem install htmlbeautifier
|
|
||||||
- where htmlbeautifier
|
|
||||||
# Puppet-Lint
|
|
||||||
- gem install puppet-lint
|
|
||||||
- where puppet-lint
|
|
||||||
# Sass
|
|
||||||
- gem install sass
|
|
||||||
- where sass-convert
|
|
||||||
|
|
||||||
# emacs
|
|
||||||
- cinst emacs -y
|
|
||||||
- where emacs
|
|
||||||
|
|
||||||
# terraform
|
|
||||||
- cinst terraform -y
|
|
||||||
- where terraform
|
|
||||||
|
|
||||||
# FIXME: Enable allowEmptyChecksums, until someone fixes the checksum issue of php
|
|
||||||
- choco feature enable -n allowEmptyChecksums
|
|
||||||
# PHP
|
# PHP
|
||||||
- ps: Set-Service wuauserv -StartupType Manual
|
- ps: Set-Service wuauserv -StartupType Manual
|
||||||
- cinst php -y
|
|
||||||
- ps: "ls \"C:\\tools\\php71\""
|
|
||||||
- "SET PATH=C:\\tools\\php71;%PATH%"
|
|
||||||
- where php
|
|
||||||
# PHP-CS-Fixer
|
# PHP-CS-Fixer
|
||||||
- cinst curl -y # Use cURL to download file from URL
|
- composer install
|
||||||
- curl http://get.sensiolabs.org/php-cs-fixer.phar -o php-cs-fixer
|
|
||||||
- "SET PATH=%cd%;%PATH%" # Add current working directory to PATH
|
|
||||||
- where php-cs-fixer
|
|
||||||
|
|
||||||
# Uncrustify
|
|
||||||
- curl -k -L https://sourceforge.net/projects/uncrustify/files/uncrustify/uncrustify-0.65/uncrustify-0.65-win32.zip/download -o uncrustify.zip
|
|
||||||
- cinst 7zip.commandline -y
|
|
||||||
- 7za e uncrustify.zip -ouncrustify-d
|
|
||||||
- "SET PATH=%cd%\\uncrustify-d;%PATH%"
|
|
||||||
- where uncrustify
|
|
||||||
|
|
||||||
# elm-format
|
# elm-format
|
||||||
- curl -k -L https://github.com/avh4/elm-format/releases/download/0.7.0-exp/elm-format-0.18-0.7.0-exp-win-i386.zip -o elm-format.zip
|
- npm install -g elm-format@exp
|
||||||
- 7za e elm-format.zip -oelm-format-d
|
|
||||||
- "SET PATH=%cd%\\elm-format-d;%PATH%"
|
|
||||||
- where elm-format
|
|
||||||
|
|
||||||
# Beautysh
|
|
||||||
- pip install beautysh
|
|
||||||
- where beautysh
|
|
||||||
|
|
||||||
build_script:
|
build_script:
|
||||||
|
|
||||||
- cd %APPVEYOR_BUILD_FOLDER%
|
|
||||||
# Install languages to Atom
|
# Install languages to Atom
|
||||||
- apm install language-marko language-html-swig language-svg language-elm language-d mavensmate-atom language-lua language-puppet fuse
|
- apm install --packages-file atom-packages.txt
|
||||||
# Show current PATH
|
|
||||||
- echo %PATH%
|
|
||||||
# Run tests on package
|
# Run tests on package
|
||||||
#- "%LOCALAPPDATA%\\atom\\bin\\atom.cmd --test spec"
|
#- "%LOCALAPPDATA%\\atom\\bin\\atom.cmd --test spec"
|
||||||
- apm test --path %LOCALAPPDATA%/atom/bin/atom.cmd
|
- apm test --path %LOCALAPPDATA%/atom/bin/atom.cmd
|
||||||
|
|
|
@ -1,180 +0,0 @@
|
||||||
# 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
|
|
|
@ -1,47 +0,0 @@
|
||||||
:: 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
|
|
||||||
)
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
language-marko
|
||||||
|
language-html-swig
|
||||||
|
language-svg
|
||||||
|
language-d
|
||||||
|
mavensmate-atom
|
||||||
|
language-lua
|
||||||
|
language-elm
|
||||||
|
language-puppet
|
||||||
|
fuse
|
|
@ -1,63 +1,21 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
echo "Downloading latest Atom release..."
|
if [ "$TRAVIS_OS_NAME" != "osx" ]; then
|
||||||
ATOM_CHANNEL="${ATOM_CHANNEL:=stable}"
|
|
||||||
|
|
||||||
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
||||||
curl -s -L "https://atom.io/download/mac?channel=$ATOM_CHANNEL" \
|
|
||||||
-H 'Accept: application/octet-stream' \
|
|
||||||
-o "atom.zip"
|
|
||||||
mkdir atom
|
|
||||||
unzip -q atom.zip -d atom
|
|
||||||
if [ "$ATOM_CHANNEL" = "stable" ]; then
|
|
||||||
export ATOM_APP_NAME="Atom.app"
|
|
||||||
export ATOM_SCRIPT_NAME="atom.sh"
|
|
||||||
export ATOM_SCRIPT_PATH="./atom/${ATOM_APP_NAME}/Contents/Resources/app/atom.sh"
|
|
||||||
else
|
|
||||||
export ATOM_APP_NAME="Atom ${ATOM_CHANNEL}.app"
|
|
||||||
export ATOM_SCRIPT_NAME="atom-${ATOM_CHANNEL}"
|
|
||||||
export ATOM_SCRIPT_PATH="./atom-${ATOM_CHANNEL}"
|
|
||||||
ln -s "./atom/${ATOM_APP_NAME}/Contents/Resources/app/atom.sh" "${ATOM_SCRIPT_PATH}"
|
|
||||||
fi
|
|
||||||
export PATH="$PWD/atom/${ATOM_APP_NAME}/Contents/Resources/app/apm/bin:$PATH"
|
|
||||||
export ATOM_PATH="./atom"
|
|
||||||
export APM_SCRIPT_PATH="./atom/${ATOM_APP_NAME}/Contents/Resources/app/apm/node_modules/.bin/apm"
|
|
||||||
else
|
|
||||||
curl -s -L "https://atom.io/download/deb?channel=$ATOM_CHANNEL" \
|
|
||||||
-H 'Accept: application/octet-stream' \
|
|
||||||
-o "atom.deb"
|
|
||||||
/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16
|
/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16
|
||||||
export DISPLAY=":99"
|
export DISPLAY=":99"
|
||||||
dpkg-deb -x atom.deb "$HOME/atom"
|
|
||||||
if [ "$ATOM_CHANNEL" = "stable" ]; then
|
|
||||||
export ATOM_SCRIPT_NAME="atom"
|
|
||||||
export APM_SCRIPT_NAME="apm"
|
|
||||||
else
|
|
||||||
export ATOM_SCRIPT_NAME="atom-$ATOM_CHANNEL"
|
|
||||||
export APM_SCRIPT_NAME="apm-$ATOM_CHANNEL"
|
|
||||||
fi
|
fi
|
||||||
export ATOM_SCRIPT_PATH="$HOME/atom/usr/bin/$ATOM_SCRIPT_NAME"
|
|
||||||
export APM_SCRIPT_PATH="$HOME/atom/usr/bin/$APM_SCRIPT_NAME"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
echo "Using Atom version:"
|
echo "Using Atom version:"
|
||||||
"$ATOM_SCRIPT_PATH" -v
|
"$ATOM_SCRIPT_NAME" -v
|
||||||
echo "Using APM version:"
|
echo "Using APM version:"
|
||||||
"$APM_SCRIPT_PATH" -v
|
"$APM_SCRIPT_NAME" -v
|
||||||
|
|
||||||
echo "Downloading package dependencies..."
|
echo "Downloading package dependencies..."
|
||||||
"$APM_SCRIPT_PATH" clean
|
"$APM_SCRIPT_NAME" clean
|
||||||
"$APM_SCRIPT_PATH" install
|
"$APM_SCRIPT_NAME" install
|
||||||
|
|
||||||
TEST_PACKAGES="${APM_TEST_PACKAGES:=none}"
|
|
||||||
|
|
||||||
if [ "$TEST_PACKAGES" != "none" ]; then
|
|
||||||
echo "Installing atom package dependencies..."
|
echo "Installing atom package dependencies..."
|
||||||
for pack in $TEST_PACKAGES ; do
|
"$APM_SCRIPT_NAME" install --packages-file atom-packages.txt
|
||||||
"$APM_SCRIPT_PATH" install $pack
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -f ./node_modules/.bin/coffeelint ]; then
|
if [ -f ./node_modules/.bin/coffeelint ]; then
|
||||||
if [ -d ./src ]; then
|
if [ -d ./src ]; then
|
||||||
|
@ -100,7 +58,7 @@ fi
|
||||||
|
|
||||||
if [ -d ./spec ]; then
|
if [ -d ./spec ]; then
|
||||||
echo "Running specs..."
|
echo "Running specs..."
|
||||||
"$ATOM_SCRIPT_PATH" --test spec
|
"$ATOM_SCRIPT_NAME" --test spec
|
||||||
else
|
else
|
||||||
echo "Missing spec folder! Please consider adding a test suite in `./spec`"
|
echo "Missing spec folder! Please consider adding a test suite in `./spec`"
|
||||||
exit 1
|
exit 1
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"require": {
|
||||||
|
"friendsofphp/php-cs-fixer": ">0"
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,3 +16,9 @@ The debugging results will be copied to your clipboard.
|
||||||
3. Create a file in your new Gist called `debug.md`.
|
3. Create a file in your new Gist called `debug.md`.
|
||||||
4. Paste your debugging results from Atom beautify into `debug.md` file in your Gist.
|
4. Paste your debugging results from Atom beautify into `debug.md` file in your Gist.
|
||||||
5. Add a link to your Gist in your new Issue.
|
5. Add a link to your Gist in your new Issue.
|
||||||
|
|
||||||
|
## Common Issues
|
||||||
|
|
||||||
|
> I receive an error when I try to install or update Atom Beautify
|
||||||
|
|
||||||
|
Run `apm clean` from your terminal, then retry
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="atom" />
|
||||||
|
<package id="emacs" />
|
||||||
|
<package id="terraform" />
|
||||||
|
<package id="composer" />
|
||||||
|
<!--package id="uncrustify" /-->
|
||||||
|
</packages>
|
||||||
|
</xml>
|
|
@ -0,0 +1,4 @@
|
||||||
|
autopep8
|
||||||
|
isort
|
||||||
|
sqlparse
|
||||||
|
beautysh
|
|
@ -8,7 +8,24 @@ Beautifier = require('./beautifier')
|
||||||
module.exports = class OCPIndent extends Beautifier
|
module.exports = class OCPIndent extends Beautifier
|
||||||
name: "ocp-indent"
|
name: "ocp-indent"
|
||||||
link: "https://www.typerex.org/ocp-indent.html"
|
link: "https://www.typerex.org/ocp-indent.html"
|
||||||
isPreInstalled: false
|
executables: [
|
||||||
|
{
|
||||||
|
name: "ocp-indent"
|
||||||
|
cmd: "ocp-indent"
|
||||||
|
homepage: "https://www.typerex.org/ocp-indent.html"
|
||||||
|
installation: "https://www.typerex.org/ocp-indent.html#installation"
|
||||||
|
version: {
|
||||||
|
parse: (text) ->
|
||||||
|
try
|
||||||
|
text.match(/(\d+\.\d+\.\d+)/)[1]
|
||||||
|
catch
|
||||||
|
text.match(/(\d+\.\d+)/)[1] + ".0"
|
||||||
|
}
|
||||||
|
docker: {
|
||||||
|
image: "unibeautify/ocp-indent"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
options: {
|
options: {
|
||||||
OCaml: true
|
OCaml: true
|
||||||
|
|
|
@ -8,21 +8,28 @@ module.exports = class PuppetFix extends Beautifier
|
||||||
# this is what displays as your Default Beautifier in Language Config
|
# this is what displays as your Default Beautifier in Language Config
|
||||||
name: "puppet-lint"
|
name: "puppet-lint"
|
||||||
link: "http://puppet-lint.com/"
|
link: "http://puppet-lint.com/"
|
||||||
isPreInstalled: false
|
|
||||||
|
|
||||||
options: {
|
options: {
|
||||||
Puppet: true
|
Puppet: true
|
||||||
}
|
}
|
||||||
|
|
||||||
cli: (options) ->
|
executables: [
|
||||||
if not options.puppet_path?
|
{
|
||||||
return new Error("'puppet-lint' path is not set!" +
|
name: "puppet-lint"
|
||||||
" Please set this in the Atom Beautify package settings.")
|
cmd: "puppet-lint"
|
||||||
else
|
homepage: "http://puppet-lint.com/"
|
||||||
return options.puppet_path
|
installation: "http://puppet-lint.com/"
|
||||||
|
version: {
|
||||||
|
parse: (text) -> text.match(/puppet-lint (\d+\.\d+\.\d+)/)[1]
|
||||||
|
}
|
||||||
|
docker: {
|
||||||
|
image: "unibeautify/puppet-lint"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
beautify: (text, language, options) ->
|
beautify: (text, language, options) ->
|
||||||
@run("puppet-lint", [
|
@exe("puppet-lint").run([
|
||||||
'--fix'
|
'--fix'
|
||||||
tempFile = @tempFile("input", text)
|
tempFile = @tempFile("input", text)
|
||||||
], {
|
], {
|
||||||
|
|
|
@ -96,9 +96,10 @@ beautify = ({ editor, onSave, language }) ->
|
||||||
if not text?
|
if not text?
|
||||||
# Do nothing, is undefined
|
# Do nothing, is undefined
|
||||||
# console.log 'beautifyCompleted'
|
# console.log 'beautifyCompleted'
|
||||||
|
return resolve(text)
|
||||||
else if text instanceof Error
|
else if text instanceof Error
|
||||||
showError(text)
|
showError(text)
|
||||||
return reject(text)
|
return resolve(text)
|
||||||
else if typeof text is "string"
|
else if typeof text is "string"
|
||||||
if oldText isnt text
|
if oldText isnt text
|
||||||
|
|
||||||
|
@ -127,15 +128,18 @@ beautify = ({ editor, onSave, language }) ->
|
||||||
# otherwise setScrollTop is not working, probably because the cursor
|
# otherwise setScrollTop is not working, probably because the cursor
|
||||||
# addition happens asynchronously
|
# addition happens asynchronously
|
||||||
setTimeout ( ->
|
setTimeout ( ->
|
||||||
|
|
||||||
# console.log "setScrollTop"
|
# console.log "setScrollTop"
|
||||||
setScrollTop editor, origScrollTop
|
setScrollTop editor, origScrollTop
|
||||||
return resolve(text)
|
return resolve(text)
|
||||||
), 0
|
), 0
|
||||||
|
else
|
||||||
|
return setTimeout(() ->
|
||||||
|
resolve(text)
|
||||||
|
, 0)
|
||||||
else
|
else
|
||||||
error = new Error("Unsupported beautification result '#{text}'.")
|
error = new Error("Unsupported beautification result '#{text}'.")
|
||||||
showError(error)
|
showError(error)
|
||||||
return reject(error)
|
return resolve(text)
|
||||||
|
|
||||||
# else
|
# else
|
||||||
# console.log "Already Beautiful!"
|
# console.log "Already Beautiful!"
|
||||||
|
@ -506,20 +510,17 @@ debug = () ->
|
||||||
|
|
||||||
handleSaveEvent = ->
|
handleSaveEvent = ->
|
||||||
atom.workspace.observeTextEditors (editor) ->
|
atom.workspace.observeTextEditors (editor) ->
|
||||||
pendingPaths = {}
|
|
||||||
beautifyOnSaveHandler = ({path: filePath}) ->
|
beautifyOnSaveHandler = ({path: filePath}) ->
|
||||||
logger.verbose('Should beautify on this save?')
|
|
||||||
if pendingPaths[filePath]
|
|
||||||
logger.verbose("Editor with file path #{filePath} already beautified!")
|
|
||||||
return
|
|
||||||
buffer = editor.getBuffer()
|
|
||||||
path ?= require('path')
|
path ?= require('path')
|
||||||
# Get Grammar
|
|
||||||
grammar = editor.getGrammar().name
|
|
||||||
# Get file extension
|
# Get file extension
|
||||||
fileExtension = path.extname(filePath)
|
fileExtension = path.extname(filePath)
|
||||||
# Remove prefix "." (period) in fileExtension
|
# Remove prefix "." (period) in fileExtension
|
||||||
fileExtension = fileExtension.substr(1)
|
fileExtension = fileExtension.substr(1)
|
||||||
|
# Set path of buffer for unsaved files
|
||||||
|
if editor.getPath() is undefined
|
||||||
|
editor.getBuffer().setPath(filePath)
|
||||||
|
# Get Grammar from the editor
|
||||||
|
grammar = editor.getGrammar().name
|
||||||
# Get language
|
# Get language
|
||||||
languages = beautifier.languages.getLanguages({grammar, extension: fileExtension})
|
languages = beautifier.languages.getLanguages({grammar, extension: fileExtension})
|
||||||
if languages.length < 1
|
if languages.length < 1
|
||||||
|
@ -535,23 +536,11 @@ handleSaveEvent = ->
|
||||||
beautify({editor, onSave: true})
|
beautify({editor, onSave: true})
|
||||||
.then(() ->
|
.then(() ->
|
||||||
logger.verbose('Done beautifying file', filePath)
|
logger.verbose('Done beautifying file', filePath)
|
||||||
if editor.isAlive() is true
|
|
||||||
logger.verbose('Saving TextEditor...')
|
|
||||||
# Store the filePath to prevent infinite looping
|
|
||||||
# When Whitespace package has option "Ensure Single Trailing Newline" enabled
|
|
||||||
# It will add a newline and keep the file from converging on a beautified form
|
|
||||||
# and saving without emitting onDidSave event, because there were no changes.
|
|
||||||
pendingPaths[filePath] = true
|
|
||||||
Promise.resolve(editor.save()).then(() ->
|
|
||||||
delete pendingPaths[filePath]
|
|
||||||
logger.verbose('Saved TextEditor.')
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
.catch((error) ->
|
.catch((error) ->
|
||||||
return showError(error)
|
return showError(error)
|
||||||
)
|
)
|
||||||
disposable = editor.onDidSave(({path : filePath}) ->
|
disposable = editor.getBuffer().onWillSave(({path: filePath}) ->
|
||||||
# TODO: Implement debouncing
|
|
||||||
beautifyOnSaveHandler({path: filePath})
|
beautifyOnSaveHandler({path: filePath})
|
||||||
)
|
)
|
||||||
plugin.subscriptions.add disposable
|
plugin.subscriptions.add disposable
|
||||||
|
|
Loading…
Reference in New Issue