mirror of
https://github.com/atom/atom.git
synced 2026-04-28 03:01:47 -04:00
Merge commit '677bbb7f0b8754787ff9e7bfab4602ba82e13b0b' into dw-windows-separate-channels
This commit is contained in:
4
.eslintignore
Normal file
4
.eslintignore
Normal file
@@ -0,0 +1,4 @@
|
||||
spec/fixtures/**/*.js
|
||||
node_modules
|
||||
/vendor/
|
||||
/out/
|
||||
44
.eslintrc.json
Normal file
44
.eslintrc.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"extends": [
|
||||
"./script/node_modules/eslint-config-standard/eslintrc.json",
|
||||
"./script/node_modules/eslint-config-prettier/index.js",
|
||||
"./script/node_modules/eslint-config-prettier/standard.js"
|
||||
],
|
||||
"plugins": [
|
||||
"prettier"
|
||||
],
|
||||
"env": {
|
||||
"browser": true,
|
||||
"node": true
|
||||
},
|
||||
"parser": "babel-eslint",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 8,
|
||||
"ecmaFeatures": {
|
||||
"jsx": true
|
||||
}
|
||||
},
|
||||
"globals": {
|
||||
"atom": true,
|
||||
"snapshotResult": true
|
||||
},
|
||||
"rules": {
|
||||
"standard/no-callback-literal": ["off"],
|
||||
"node/no-deprecated-api": ["off"],
|
||||
"prettier/prettier": ["off"] // disable prettier rules for now.
|
||||
},
|
||||
"overrides": [
|
||||
{
|
||||
"files": ["spec/**", "**-spec.js", "**.test.js"],
|
||||
"env": {
|
||||
"jasmine": true
|
||||
},
|
||||
"globals": {
|
||||
"advanceClock": true,
|
||||
"fakeClearInterval": true,
|
||||
"fakeSetInterval": true,
|
||||
"waitsForPromise": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
59
.github/PULL_REQUEST_TEMPLATE/bug_fix.md
vendored
Normal file
59
.github/PULL_REQUEST_TEMPLATE/bug_fix.md
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
### Requirements for Contributing a Bug Fix
|
||||
|
||||
* Fill out the template below. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
|
||||
* The pull request must only fix an existing bug. To contribute other changes, you must use a different template. You can see all templates at https://github.com/atom/atom/tree/master/.github/PULL_REQUEST_TEMPLATE.
|
||||
* The pull request must update the test suite to demonstrate the changed functionality. For guidance, please see https://flight-manual.atom.io/hacking-atom/sections/writing-specs/.
|
||||
* After you create the pull request, all status checks must be pass before a maintainer reviews your contribution. For more details, please see https://github.com/atom/atom/tree/master/CONTRIBUTING.md#pull-requests.
|
||||
|
||||
### Identify the Bug
|
||||
|
||||
<!--
|
||||
|
||||
Link to the issue describing the bug that you're fixing.
|
||||
|
||||
If there is not yet an issue for your bug, please open a new issue and then link to that issue in your pull request.
|
||||
Note: In some cases, one person's "bug" is another person's "feature." If the pull request does not address an existing issue with the "bug" label, the maintainers have the final say on whether the current behavior is a bug.
|
||||
|
||||
-->
|
||||
|
||||
### Description of the Change
|
||||
|
||||
<!--
|
||||
|
||||
We must be able to understand the design of your change from this description. If we can't get a good idea of what the code will be doing from the description here, the pull request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the code here recently, so please walk us through the concepts.
|
||||
|
||||
-->
|
||||
|
||||
### Alternate Designs
|
||||
|
||||
<!-- Explain what other alternates were considered and why the proposed version was selected -->
|
||||
|
||||
### Possible Drawbacks
|
||||
|
||||
<!-- What are the possible side-effects or negative impacts of the code change? -->
|
||||
|
||||
### Verification Process
|
||||
|
||||
<!--
|
||||
|
||||
What process did you follow to verify that the change has not introduced any regressions? Describe the actions you performed (including buttons you clicked, text you typed, commands you ran, etc.), and describe the results you observed.
|
||||
|
||||
-->
|
||||
|
||||
### Release Notes
|
||||
|
||||
<!--
|
||||
|
||||
Please describe the changes in a single line that explains this improvement in
|
||||
terms that a user can understand. This text will be used in Atom's release notes.
|
||||
|
||||
If this change is not user-facing or notable enough to be included in release notes
|
||||
you may use the strings "Not applicable" or "N/A" here.
|
||||
|
||||
Examples:
|
||||
|
||||
- The GitHub package now allows you to add co-authors to commits.
|
||||
- Fixed an issue where multiple cursors did not work in a file with a single line.
|
||||
- Increased the performance of searching and replacing across a whole project.
|
||||
|
||||
-->
|
||||
30
.github/PULL_REQUEST_TEMPLATE/documentation.md
vendored
Normal file
30
.github/PULL_REQUEST_TEMPLATE/documentation.md
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
### Requirements for Contributing Documentation
|
||||
|
||||
* Fill out the template below. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
|
||||
* The pull request must only contribute documentation (for example, markdown files or API docs). To contribute other changes, you must use a different template. You can see all templates at https://github.com/atom/atom/tree/master/.github/PULL_REQUEST_TEMPLATE.
|
||||
|
||||
### Description of the Change
|
||||
|
||||
<!--
|
||||
|
||||
We must be able to understand the purpose of your change from this description. If we can't get a good idea of the benefits of the change from the description here, the pull request may be closed at the maintainers' discretion.
|
||||
|
||||
-->
|
||||
|
||||
### Release Notes
|
||||
|
||||
<!--
|
||||
|
||||
Please describe the changes in a single line that explains this improvement in
|
||||
terms that a user can understand. This text will be used in Atom's release notes.
|
||||
|
||||
If this change is not user-facing or notable enough to be included in release notes
|
||||
you may use the strings "Not applicable" or "N/A" here.
|
||||
|
||||
Examples:
|
||||
|
||||
- The GitHub package now allows you to add co-authors to commits.
|
||||
- Fixed an issue where multiple cursors did not work in a file with a single line.
|
||||
- Increased the performance of searching and replacing across a whole project.
|
||||
|
||||
-->
|
||||
70
.github/PULL_REQUEST_TEMPLATE/feature_change.md
vendored
Normal file
70
.github/PULL_REQUEST_TEMPLATE/feature_change.md
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
### Requirements for Adding, Changing, or Removing a Feature
|
||||
|
||||
* Fill out the template below. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
|
||||
* The pull request must contribute a change that has been endorsed by the maintainer team. See details in the template below.
|
||||
* The pull request must update the test suite to exercise the updated functionality. For guidance, please see https://flight-manual.atom.io/hacking-atom/sections/writing-specs/.
|
||||
* After you create the pull request, all status checks must be pass before a maintainer reviews your contribution. For more details, please see https://github.com/atom/atom/tree/master/CONTRIBUTING.md#pull-requests.
|
||||
|
||||
### Issue or RFC Endorsed by Atom's Maintainers
|
||||
|
||||
<!--
|
||||
|
||||
Link to the issue or RFC that your change relates to. This must be one of the following:
|
||||
|
||||
* An open issue with the `help-wanted` label
|
||||
* An open issue with the `triaged` label
|
||||
* An RFC with "accepted" status
|
||||
|
||||
To contribute an enhancement that isn't covered by one of the items above, please follow our guide for suggesting an enhancement: https://github.com/atom/atom/blob/master/CONTRIBUTING.md#suggesting-enhancements
|
||||
|
||||
To contribute other changes, you must use a different template. You can see all templates at https://github.com/atom/atom/tree/master/.github/PULL_REQUEST_TEMPLATE.
|
||||
|
||||
-->
|
||||
|
||||
### Description of the Change
|
||||
|
||||
<!--
|
||||
|
||||
We must be able to understand the design of your change from this description. If we can't get a good idea of what the code will be doing from the description here, the pull request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the code here recently, so please walk us through the concepts.
|
||||
|
||||
-->
|
||||
|
||||
### Alternate Designs
|
||||
|
||||
<!-- Explain what other alternates were considered and why the proposed version was selected -->
|
||||
|
||||
### Possible Drawbacks
|
||||
|
||||
<!-- What are the possible side-effects or negative impacts of the code change? -->
|
||||
|
||||
### Verification Process
|
||||
|
||||
<!--
|
||||
|
||||
What process did you follow to verify that your change has the desired effects?
|
||||
|
||||
- How did you verify that all new functionality works as expected?
|
||||
- How did you verify that all changed functionality works as expected?
|
||||
- How did you verify that the change has not introduced any regressions?
|
||||
|
||||
Describe the actions you performed (including buttons you clicked, text you typed, commands you ran, etc.), and describe the results you observed.
|
||||
|
||||
-->
|
||||
|
||||
### Release Notes
|
||||
|
||||
<!--
|
||||
|
||||
Please describe the changes in a single line that explains this improvement in
|
||||
terms that a user can understand. This text will be used in Atom's release notes.
|
||||
|
||||
If this change is not user-facing or notable enough to be included in release notes
|
||||
you may use the strings "Not applicable" or "N/A" here.
|
||||
|
||||
Examples:
|
||||
|
||||
- The GitHub package now allows you to add co-authors to commits.
|
||||
- Fixed an issue where multiple cursors did not work in a file with a single line.
|
||||
- Increased the performance of searching and replacing across a whole project.
|
||||
|
||||
-->
|
||||
55
.github/PULL_REQUEST_TEMPLATE/performance_improvement.md
vendored
Normal file
55
.github/PULL_REQUEST_TEMPLATE/performance_improvement.md
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
### Requirements for Contributing a Performance Improvement
|
||||
|
||||
* Fill out the template below. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
|
||||
* The pull request must only affect performance of existing functionality. To contribute other changes, you must use a different template. You can see all templates at https://github.com/atom/atom/tree/master/.github/PULL_REQUEST_TEMPLATE.
|
||||
* After you create the pull request, all status checks must be pass before a maintainer reviews your contribution. For more details, please see https://github.com/atom/atom/tree/master/CONTRIBUTING.md#pull-requests.
|
||||
|
||||
### Description of the Change
|
||||
|
||||
<!--
|
||||
|
||||
We must be able to understand the design of your change from this description. If we can't get a good idea of what the code will be doing from the description here, the pull request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the code here recently, so please walk us through the concepts.
|
||||
|
||||
-->
|
||||
|
||||
### Quantitative Performance Benefits
|
||||
|
||||
<!--
|
||||
|
||||
Describe the exact performance improvement observed (for example, reduced time to complete an operation, reduced memory use, etc.). Describe how you measured this change. Bonus points for including graphs that demonstrate the improvement or attached dumps from the built-in profiling tools.
|
||||
|
||||
-->
|
||||
|
||||
### Possible Drawbacks
|
||||
|
||||
<!-- What are the possible side-effects or negative impacts of the code change? -->
|
||||
|
||||
### Verification Process
|
||||
|
||||
<!--
|
||||
|
||||
What process did you follow to verify that the change has not introduced any regressions? Describe the actions you performed (including buttons you clicked, text you typed, commands you ran, etc.), and describe the results you observed.
|
||||
|
||||
-->
|
||||
|
||||
### Applicable Issues
|
||||
|
||||
<!-- Enter any applicable Issues here -->
|
||||
|
||||
### Release Notes
|
||||
|
||||
<!--
|
||||
|
||||
Please describe the changes in a single line that explains this improvement in
|
||||
terms that a user can understand. This text will be used in Atom's release notes.
|
||||
|
||||
If this change is not user-facing or notable enough to be included in release notes
|
||||
you may use the strings "Not applicable" or "N/A" here.
|
||||
|
||||
Examples:
|
||||
|
||||
- The GitHub package now allows you to add co-authors to commits.
|
||||
- Fixed an issue where multiple cursors did not work in a file with a single line.
|
||||
- Increased the performance of searching and replacing across a whole project.
|
||||
|
||||
-->
|
||||
15
.github/no-response.yml
vendored
Normal file
15
.github/no-response.yml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
# Configuration for probot-no-response - https://github.com/probot/no-response
|
||||
|
||||
# Number of days of inactivity before an issue is closed for lack of response
|
||||
daysUntilClose: 28
|
||||
|
||||
# Label requiring a response
|
||||
responseRequiredLabel: more-information-needed
|
||||
|
||||
# Comment to post when closing an issue for lack of response. Set to `false` to disable.
|
||||
closeComment: >
|
||||
This issue has been automatically closed because there has been no response
|
||||
to our request for more information from the original author. With only the
|
||||
information that is currently in the issue, we don't have enough information
|
||||
to take action. Please reach out if you have or find the answers we need so
|
||||
that we can investigate further.
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,6 +1,7 @@
|
||||
*.swp
|
||||
*~
|
||||
.DS_Store
|
||||
.eslintcache
|
||||
Thumbs.db
|
||||
.project
|
||||
.svn
|
||||
|
||||
4
.prettierrc
Normal file
4
.prettierrc
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"semi": false,
|
||||
"singleQuote": true
|
||||
}
|
||||
14
.travis.yml
14
.travis.yml
@@ -10,14 +10,13 @@ branches:
|
||||
only:
|
||||
- master
|
||||
- /^[0-9.]+-releases$/
|
||||
- /.*-test-travis$/
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
dist: trusty
|
||||
env: NODE_VERSION=8.9.3 DISPLAY=:99.0 CC=clang CXX=clang++ npm_config_clang=1
|
||||
|
||||
sudo: required
|
||||
env: NODE_VERSION=8.9.3 DISPLAY=:99.0 CC=clang CXX=clang++ npm_config_clang=1 ATOM_JASMINE_REPORTER=list
|
||||
|
||||
before_install:
|
||||
- "/sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16"
|
||||
@@ -28,11 +27,12 @@ install:
|
||||
- nvm install $NODE_VERSION
|
||||
- nvm use --delete-prefix $NODE_VERSION
|
||||
- npm install --global npm@6.2.0
|
||||
- script/build --create-debian-package --create-rpm-package --compress-artifacts
|
||||
- script/bootstrap
|
||||
|
||||
script:
|
||||
- script/lint
|
||||
- script/test
|
||||
script: >
|
||||
script/lint &&
|
||||
script/build --no-bootstrap --create-debian-package --create-rpm-package --compress-artifacts &&
|
||||
script/test
|
||||
|
||||
cache:
|
||||
directories:
|
||||
|
||||
@@ -206,21 +206,20 @@ Atom Core and all packages can be developed locally. For instructions on how to
|
||||
|
||||
### Pull Requests
|
||||
|
||||
* Fill in [the required template](PULL_REQUEST_TEMPLATE.md)
|
||||
* Do not include issue numbers in the PR title
|
||||
* Include screenshots and animated GIFs in your pull request whenever possible.
|
||||
* Follow the [JavaScript](#javascript-styleguide) and [CoffeeScript](#coffeescript-styleguide) styleguides.
|
||||
* Include thoughtfully-worded, well-structured [Jasmine](https://jasmine.github.io/) specs in the `./spec` folder. Run them using `atom --test spec`. See the [Specs Styleguide](#specs-styleguide) below.
|
||||
* Document new code based on the [Documentation Styleguide](#documentation-styleguide)
|
||||
* End all files with a newline
|
||||
* [Avoid platform-dependent code](https://flight-manual.atom.io/hacking-atom/sections/cross-platform-compatibility/)
|
||||
* Place requires in the following order:
|
||||
* Built in Node Modules (such as `path`)
|
||||
* Built in Atom and Electron Modules (such as `atom`, `remote`)
|
||||
* Local Modules (using relative paths)
|
||||
* Place class properties in the following order:
|
||||
* Class methods and properties (methods starting with a `@` in CoffeeScript or `static` in JavaScript)
|
||||
* Instance methods and properties
|
||||
The process described here has several goals:
|
||||
|
||||
- Maintain Atom's quality
|
||||
- Fix problems that are important to users
|
||||
- Engage the community in working toward the best possible Atom
|
||||
- Enable a sustainable system for Atom's maintainers to review contributions
|
||||
|
||||
Please follow these steps to have your contribution considered by the maintainers:
|
||||
|
||||
1. Follow all instructions in [the template](PULL_REQUEST_TEMPLATE.md)
|
||||
2. Follow the [styleguides](#styleguides)
|
||||
3. After you submit your pull request, verify that all [status checks](https://help.github.com/articles/about-status-checks/) are passing <details><summary>What if the status checks are failing?</summary>If a status check is failing, and you believe that the failure is unrelated to your change, please leave a comment on the pull request explaining why you believe the failure is unrelated. A maintainer will re-run the status check for you. If we conclude that the failure was a false positive, then we will open an issue to track that problem with our status check suite.</details>
|
||||
|
||||
While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
|
||||
|
||||
## Styleguides
|
||||
|
||||
@@ -266,6 +265,14 @@ All JavaScript must adhere to [JavaScript Standard Style](https://standardjs.com
|
||||
}
|
||||
export default ClassName
|
||||
```
|
||||
* Place requires in the following order:
|
||||
* Built in Node Modules (such as `path`)
|
||||
* Built in Atom and Electron Modules (such as `atom`, `remote`)
|
||||
* Local Modules (using relative paths)
|
||||
* Place class properties in the following order:
|
||||
* Class methods and properties (methods starting with `static`)
|
||||
* Instance methods and properties
|
||||
* [Avoid platform-dependent code](https://flight-manual.atom.io/hacking-atom/sections/cross-platform-compatibility/)
|
||||
|
||||
### CoffeeScript Styleguide
|
||||
|
||||
@@ -289,6 +296,14 @@ All JavaScript must adhere to [JavaScript Standard Style](https://standardjs.com
|
||||
you don't want it to return a collected array.
|
||||
* Use `this` instead of a standalone `@`
|
||||
* `return this` instead of `return @`
|
||||
* Place requires in the following order:
|
||||
* Built in Node Modules (such as `path`)
|
||||
* Built in Atom and Electron Modules (such as `atom`, `remote`)
|
||||
* Local Modules (using relative paths)
|
||||
* Place class properties in the following order:
|
||||
* Class methods and properties (methods starting with a `@`)
|
||||
* Instance methods and properties
|
||||
* [Avoid platform-dependent code](https://flight-manual.atom.io/hacking-atom/sections/cross-platform-compatibility/)
|
||||
|
||||
### Specs Styleguide
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Copyright (c) 2011-2018 GitHub Inc.
|
||||
Copyright (c) 2011-2019 GitHub Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
||||
@@ -1,46 +1,10 @@
|
||||
### Requirements
|
||||
⚛👋 Hello there! Welcome. Please follow the steps below to tell us about your contribution.
|
||||
|
||||
* Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
|
||||
* All new code requires tests to ensure against regressions
|
||||
|
||||
### Description of the Change
|
||||
|
||||
<!--
|
||||
|
||||
We must be able to understand the design of your change from this description. If we can't get a good idea of what the code will be doing from the description here, the pull request may be closed at the maintainers' discretion. Keep in mind that the maintainer reviewing this PR may not be familiar with or have worked with the code here recently, so please walk us through the concepts.
|
||||
|
||||
-->
|
||||
|
||||
### Alternate Designs
|
||||
|
||||
<!-- Explain what other alternates were considered and why the proposed version was selected -->
|
||||
|
||||
### Why Should This Be In Core?
|
||||
|
||||
<!-- Explain why this functionality should be in atom/atom as opposed to a package -->
|
||||
|
||||
### Benefits
|
||||
|
||||
<!-- What benefits will be realized by the code change? -->
|
||||
|
||||
### Possible Drawbacks
|
||||
|
||||
<!-- What are the possible side-effects or negative impacts of the code change? -->
|
||||
|
||||
### Verification Process
|
||||
|
||||
<!--
|
||||
|
||||
What process did you follow to verify that your change has the desired effects?
|
||||
|
||||
- How did you verify that all new functionality works as expected?
|
||||
- How did you verify that all changed functionality works as expected?
|
||||
- How did you verify that the change has not introduced any regressions?
|
||||
|
||||
Describe the actions you performed (e.g., buttons you clicked, text you typed, commands you ran, etc.), and describe the results you observed.
|
||||
|
||||
-->
|
||||
|
||||
### Applicable Issues
|
||||
|
||||
<!-- Enter any applicable Issues here -->
|
||||
1. Copy the correct template for your contribution
|
||||
- 🐛 Are you fixing a bug? Copy the template from https://bit.ly/atom-bugfix
|
||||
- 📈 Are you improving performance? Copy the template from https://bit.ly/atom-perf
|
||||
- 📝 Are you updating documentation? Copy the template from https://bit.ly/atom-docs
|
||||
- 💻 Are you changing functionality? Copy the template from https://bit.ly/atom-behavior
|
||||
2. Replace this text with the contents of the template
|
||||
3. Fill in all sections of the template
|
||||
4. Click "Create pull request"
|
||||
|
||||
12
README.md
12
README.md
@@ -1,10 +1,14 @@
|
||||

|
||||
# Atom
|
||||
|
||||
[](https://github.visualstudio.com/Atom/_build/latest?definitionId=32&branchName=master) [](https://travis-ci.org/atom/atom) [](https://ci.appveyor.com/project/Atom/atom)
|
||||
[](https://dev.azure.com/github/Atom/_build/latest?definitionId=32&branchName=master) [](https://travis-ci.org/atom/atom) [](https://ci.appveyor.com/project/Atom/atom)
|
||||
[](https://david-dm.org/atom/atom)
|
||||
[](https://atom-slack.herokuapp.com)
|
||||
|
||||
Atom is a hackable text editor for the 21st century, built on [Electron](https://github.com/atom/electron), and based on everything we love about our favorite editors. We designed it to be deeply customizable, but still approachable using the default configuration.
|
||||
Atom is a hackable text editor for the 21st century, built on [Electron](https://github.com/electron/electron), and based on everything we love about our favorite editors. We designed it to be deeply customizable, but still approachable using the default configuration.
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
Visit [atom.io](https://atom.io) to learn more or visit the [Atom forum](https://discuss.atom.io).
|
||||
|
||||
@@ -48,7 +52,7 @@ Atom is only available for 64-bit Linux systems.
|
||||
|
||||
Configure your distribution's package manager to install and update Atom by following the [Linux installation instructions](https://flight-manual.atom.io/getting-started/sections/installing-atom/#platform-linux) in the Flight Manual. You will also find instructions on how to install Atom's official Linux packages without using a package repository, though you will not get automatic updates after installing Atom this way.
|
||||
|
||||
### Archive extraction
|
||||
#### Archive extraction
|
||||
|
||||
An archive is available for people who don't want to install `atom` as root.
|
||||
|
||||
|
||||
443
apm/package-lock.json
generated
443
apm/package-lock.json
generated
@@ -4,10 +4,11 @@
|
||||
"lockfileVersion": 1,
|
||||
"dependencies": {
|
||||
"atom-package-manager": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/atom-package-manager/-/atom-package-manager-2.1.2.tgz",
|
||||
"integrity": "sha512-+TcekCI90GjWLX30AfO3rC0hyYxRReAoZ3EHGB+A9gOTTMYjDvDL5/RLMrC8eqXp6WRRNbfOZpV14lQWVWaUUQ==",
|
||||
"version": "2.2.4",
|
||||
"resolved": "https://registry.npmjs.org/atom-package-manager/-/atom-package-manager-2.2.4.tgz",
|
||||
"integrity": "sha512-Iyfs8FNPH+fDLm2DlzE+71TGGZt0fAO2fchJKUHbMLqxFPBPjOgigViQZxDhb2eBRYi2jLKkbalCa4m21Q8CRA==",
|
||||
"requires": {
|
||||
"@atom/plist": "0.4.4",
|
||||
"asar-require": "0.3.0",
|
||||
"async": "~0.2.8",
|
||||
"colors": "~0.6.1",
|
||||
@@ -18,10 +19,8 @@
|
||||
"keytar": "^4.0",
|
||||
"mv": "2.0.0",
|
||||
"ncp": "~0.5.1",
|
||||
"node-gyp": "3.4.0",
|
||||
"npm": "6.2.0",
|
||||
"open": "0.0.5",
|
||||
"plist": "git+https://github.com/nathansobo/node-plist.git#bd3a93387f1d4b2cff819b200870d35465796e77",
|
||||
"q": "~0.9.7",
|
||||
"read": "~1.0.5",
|
||||
"request": "^2.87.0",
|
||||
@@ -36,20 +35,29 @@
|
||||
"yargs": "^3.23.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@atom/plist": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "https://registry.npmjs.org/@atom/plist/-/plist-0.4.4.tgz",
|
||||
"integrity": "sha512-EYwsXOY+Jp9vQ2yNWHuWaJufI58vbQWg235OkvGBWnITFVUOdow49OBj7ET9HCksZz560yXbSa1ywzqDIrFPZw==",
|
||||
"requires": {
|
||||
"xmlbuilder": "0.4.x",
|
||||
"xmldom": "0.1.x"
|
||||
}
|
||||
},
|
||||
"abbrev": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
||||
},
|
||||
"ajv": {
|
||||
"version": "5.5.2",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
|
||||
"integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
|
||||
"version": "6.10.0",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
|
||||
"integrity": "sha512-nffhOpkymDECQyR0mnsUtoCE8RlX38G0rYP+wgLWFyZuUyuuojSSvi/+euOiQBIn63whYwYVIIH1TvE3tu4OEg==",
|
||||
"requires": {
|
||||
"co": "^4.6.0",
|
||||
"fast-deep-equal": "^1.0.0",
|
||||
"fast-deep-equal": "^2.0.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.3.0"
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"ansi-regex": {
|
||||
@@ -100,34 +108,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"array-index": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/array-index/-/array-index-1.0.0.tgz",
|
||||
"integrity": "sha1-7FanSe4QPk4Ix5C5w1PfFgVbl/k=",
|
||||
"requires": {
|
||||
"debug": "^2.2.0",
|
||||
"es6-symbol": "^3.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"d": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||
"requires": {
|
||||
"es5-ext": "^0.10.9"
|
||||
}
|
||||
},
|
||||
"es6-symbol": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
|
||||
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"asar": {
|
||||
"version": "0.12.1",
|
||||
"resolved": "https://registry.npmjs.org/asar/-/asar-0.12.1.tgz",
|
||||
@@ -193,7 +173,6 @@
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
|
||||
"integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"tweetnacl": "^0.14.3"
|
||||
}
|
||||
@@ -305,9 +284,9 @@
|
||||
}
|
||||
},
|
||||
"chownr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz",
|
||||
"integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE="
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
|
||||
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g=="
|
||||
},
|
||||
"chromium-pickle-js": {
|
||||
"version": "0.1.0",
|
||||
@@ -324,11 +303,6 @@
|
||||
"wrap-ansi": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"co": {
|
||||
"version": "4.6.0",
|
||||
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
||||
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
|
||||
},
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
||||
@@ -345,17 +319,17 @@
|
||||
"integrity": "sha1-JCP+ZnisDF2uiFLl0OW+CMmXq8w="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
||||
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.18.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.18.0.tgz",
|
||||
"integrity": "sha512-6CYPa+JP2ftfRU2qkDK+UTVeQYosOg/2GbcjIcKPHfinyOLPVGXu/ovN86RP49Re5ndJK1N0kuiidFFuepc4ZQ=="
|
||||
"version": "2.20.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
|
||||
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
@@ -401,14 +375,6 @@
|
||||
"assert-plus": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"decamelize": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
|
||||
@@ -423,9 +389,9 @@
|
||||
}
|
||||
},
|
||||
"decompress-zip": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.0.tgz",
|
||||
"integrity": "sha1-rjvLfjTGWHmt/nfhnDD4ZgK0vbA=",
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/decompress-zip/-/decompress-zip-0.3.2.tgz",
|
||||
"integrity": "sha512-Ab1QY4LrWMrUuo53lLnmGOby7v8ryqxJ+bKibKSiPisx+25mhut1dScVBXAYx14i/PqSrFZvR2FRRazhLbvL+g==",
|
||||
"requires": {
|
||||
"binary": "^0.3.0",
|
||||
"graceful-fs": "^4.1.3",
|
||||
@@ -467,7 +433,6 @@
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
|
||||
"integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"jsbn": "~0.1.0",
|
||||
"safer-buffer": "^2.1.0"
|
||||
@@ -493,13 +458,13 @@
|
||||
}
|
||||
},
|
||||
"es5-ext": {
|
||||
"version": "0.10.46",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.46.tgz",
|
||||
"integrity": "sha512-24XxRvJXNFwEMpJb3nOkiRJKRoupmjYmOPVlI65Qy2SrtxwOTB+g6ODjBKOtwEHbYrhWRty9xxOWLNdClT2djw==",
|
||||
"version": "0.10.50",
|
||||
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
|
||||
"integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
|
||||
"requires": {
|
||||
"es6-iterator": "~2.0.3",
|
||||
"es6-symbol": "~3.1.1",
|
||||
"next-tick": "1"
|
||||
"next-tick": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"d": {
|
||||
@@ -570,9 +535,9 @@
|
||||
}
|
||||
},
|
||||
"expand-template": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.1.tgz",
|
||||
"integrity": "sha512-cebqLtV8KOZfw0UI8TEFWxtczxxC1jvyUvx6H4fyp1K1FN7A4Q+uggVUlOsI1K8AGU0rwOGqP8nCapdrw8CYQg=="
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
||||
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
@@ -585,9 +550,9 @@
|
||||
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
|
||||
},
|
||||
"fast-deep-equal": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
|
||||
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ="
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
|
||||
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
|
||||
},
|
||||
"fast-json-stable-stringify": {
|
||||
"version": "2.0.0",
|
||||
@@ -626,12 +591,12 @@
|
||||
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
||||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
@@ -676,9 +641,9 @@
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
||||
},
|
||||
"fstream": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz",
|
||||
"integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=",
|
||||
"version": "1.0.12",
|
||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
|
||||
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"inherits": "~2.0.0",
|
||||
@@ -736,9 +701,9 @@
|
||||
}
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.1.11",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
|
||||
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
|
||||
"version": "4.1.15",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
|
||||
"integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
|
||||
},
|
||||
"grim": {
|
||||
"version": "1.5.0",
|
||||
@@ -754,19 +719,14 @@
|
||||
"integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
|
||||
},
|
||||
"har-validator": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz",
|
||||
"integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==",
|
||||
"version": "5.1.3",
|
||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
||||
"requires": {
|
||||
"ajv": "^5.3.0",
|
||||
"ajv": "^6.5.5",
|
||||
"har-schema": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"has-color": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
|
||||
"integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8="
|
||||
},
|
||||
"has-unicode": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
||||
@@ -829,11 +789,6 @@
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
|
||||
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
|
||||
},
|
||||
"isexe": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
|
||||
},
|
||||
"isstream": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
|
||||
@@ -842,8 +797,7 @@
|
||||
"jsbn": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
|
||||
"optional": true
|
||||
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
|
||||
},
|
||||
"json-schema": {
|
||||
"version": "0.2.3",
|
||||
@@ -851,9 +805,9 @@
|
||||
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
|
||||
},
|
||||
"json-schema-traverse": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
|
||||
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
|
||||
},
|
||||
"json-stringify-safe": {
|
||||
"version": "5.0.1",
|
||||
@@ -880,18 +834,18 @@
|
||||
}
|
||||
},
|
||||
"keytar": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/keytar/-/keytar-4.2.1.tgz",
|
||||
"integrity": "sha1-igamV3/fY3PgqmsRInfmPex3/RI=",
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/keytar/-/keytar-4.7.0.tgz",
|
||||
"integrity": "sha512-0hLlRRkhdR0068fVQo21hnIndGvacsh9PtAHGAPMPzxFjJwP8idAkVAcbdb1P5B+gterCBa3+4hxL0NPMDlZtw==",
|
||||
"requires": {
|
||||
"nan": "2.8.0",
|
||||
"prebuild-install": "^2.4.1"
|
||||
"nan": "2.13.2",
|
||||
"prebuild-install": "5.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"nan": {
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.8.0.tgz",
|
||||
"integrity": "sha1-7XFfP+neArV6XmJS2QqWZ14fCFo="
|
||||
"version": "2.13.2",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.13.2.tgz",
|
||||
"integrity": "sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw=="
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -912,16 +866,16 @@
|
||||
}
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.36.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz",
|
||||
"integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw=="
|
||||
"version": "1.40.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
||||
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.20",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz",
|
||||
"integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==",
|
||||
"version": "2.1.24",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
|
||||
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
|
||||
"requires": {
|
||||
"mime-db": "~1.36.0"
|
||||
"mime-db": "1.40.0"
|
||||
}
|
||||
},
|
||||
"mimic-response": {
|
||||
@@ -949,7 +903,7 @@
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
|
||||
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
@@ -961,24 +915,19 @@
|
||||
"integrity": "sha1-dVSm+Nhxg0zJe1RisSLEwSTW3pE="
|
||||
},
|
||||
"mksnapshot": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.1.tgz",
|
||||
"integrity": "sha1-JQHAVldDbXQs6Vik/5LHfkDdN+Y=",
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/mksnapshot/-/mksnapshot-0.3.5.tgz",
|
||||
"integrity": "sha512-PSBoZaj9h9myC3uRRW62RxmX8mrN3XbOkMEyURUD7v5CeJgtYTar50XU738t7Q0LtG1pBPtp5n5QwDGggRnEvw==",
|
||||
"requires": {
|
||||
"decompress-zip": "0.3.0",
|
||||
"decompress-zip": "0.3.x",
|
||||
"fs-extra": "0.26.7",
|
||||
"request": "^2.79.0"
|
||||
"request": "2.x"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
|
||||
},
|
||||
"mute-stream": {
|
||||
"version": "0.0.7",
|
||||
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
|
||||
"integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s="
|
||||
"version": "0.0.8",
|
||||
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
|
||||
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
|
||||
},
|
||||
"mv": {
|
||||
"version": "2.0.0",
|
||||
@@ -992,7 +941,7 @@
|
||||
"dependencies": {
|
||||
"mkdirp": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.5.tgz",
|
||||
"integrity": "sha1-3j5fiWHIjHh+4TaN+EmsRBPsqNc="
|
||||
},
|
||||
"ncp": {
|
||||
@@ -1002,15 +951,20 @@
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.2.8",
|
||||
"resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
|
||||
"integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="
|
||||
}
|
||||
}
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.11.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz",
|
||||
"integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw=="
|
||||
"version": "2.14.0",
|
||||
"resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz",
|
||||
"integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
|
||||
},
|
||||
"napi-build-utils": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.1.tgz",
|
||||
"integrity": "sha512-boQj1WFgQH3v4clhu3mTNfP+vOBxorDlE8EKiMjUlLG3C4qAESnn9AxIOkFgTR2c9LtzNjPrjS60cT27ZKBhaA=="
|
||||
},
|
||||
"ncp": {
|
||||
"version": "0.5.1",
|
||||
@@ -1023,76 +977,13 @@
|
||||
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
||||
},
|
||||
"node-abi": {
|
||||
"version": "2.4.3",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.4.3.tgz",
|
||||
"integrity": "sha512-b656V5C0628gOOA2kwcpNA/bxdlqYF9FvxJ+qqVX0ctdXNVZpS8J6xEUYir3WAKc7U0BH/NRlSpNbGsy+azjeg==",
|
||||
"version": "2.8.0",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.8.0.tgz",
|
||||
"integrity": "sha512-1/aa2clS0pue0HjckL62CsbhWWU35HARvBDXcJtYKbYR7LnIutmpxmXbuDMV9kEviD2lP/wACOgWmmwljghHyQ==",
|
||||
"requires": {
|
||||
"semver": "^5.4.1"
|
||||
}
|
||||
},
|
||||
"node-gyp": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.4.0.tgz",
|
||||
"integrity": "sha1-3aVYOTs+y74kyea4cDxxGUxj+jY=",
|
||||
"requires": {
|
||||
"fstream": "^1.0.0",
|
||||
"glob": "^7.0.3",
|
||||
"graceful-fs": "^4.1.2",
|
||||
"minimatch": "^3.0.2",
|
||||
"mkdirp": "^0.5.0",
|
||||
"nopt": "2 || 3",
|
||||
"npmlog": "0 || 1 || 2 || 3",
|
||||
"osenv": "0",
|
||||
"path-array": "^1.0.0",
|
||||
"request": "2",
|
||||
"rimraf": "2",
|
||||
"semver": "2.x || 3.x || 4 || 5",
|
||||
"tar": "^2.0.0",
|
||||
"which": "1"
|
||||
},
|
||||
"dependencies": {
|
||||
"gauge": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.6.0.tgz",
|
||||
"integrity": "sha1-01MBrRjpaQK0dR3LvkD0IYuUKkY=",
|
||||
"requires": {
|
||||
"aproba": "^1.0.3",
|
||||
"console-control-strings": "^1.0.0",
|
||||
"has-color": "^0.1.7",
|
||||
"has-unicode": "^2.0.0",
|
||||
"object-assign": "^4.1.0",
|
||||
"signal-exit": "^3.0.0",
|
||||
"string-width": "^1.0.1",
|
||||
"strip-ansi": "^3.0.1",
|
||||
"wide-align": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
||||
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
"inherits": "2",
|
||||
"minimatch": "^3.0.4",
|
||||
"once": "^1.3.0",
|
||||
"path-is-absolute": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"npmlog": {
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-3.1.2.tgz",
|
||||
"integrity": "sha1-LUb6h0M3r5SYovErtD2NC+SjaHM=",
|
||||
"requires": {
|
||||
"are-we-there-yet": "~1.1.2",
|
||||
"console-control-strings": "~1.1.0",
|
||||
"gauge": "~2.6.0",
|
||||
"set-blocking": "~2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"noop-logger": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
||||
@@ -3930,23 +3821,6 @@
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||
},
|
||||
"osenv": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
|
||||
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
|
||||
"requires": {
|
||||
"os-homedir": "^1.0.0",
|
||||
"os-tmpdir": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"path-array": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-array/-/path-array-1.0.1.tgz",
|
||||
"integrity": "sha1-fi8PNfB6IBUSK4aLfqwOssT+wnE=",
|
||||
"requires": {
|
||||
"array-index": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
@@ -3957,30 +3831,23 @@
|
||||
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
|
||||
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
|
||||
},
|
||||
"plist": {
|
||||
"version": "git+https://github.com/nathansobo/node-plist.git#bd3a93387f1d4b2cff819b200870d35465796e77",
|
||||
"from": "git+https://github.com/nathansobo/node-plist.git",
|
||||
"requires": {
|
||||
"xmlbuilder": "0.4.x",
|
||||
"xmldom": "0.1.x"
|
||||
}
|
||||
},
|
||||
"prebuild-install": {
|
||||
"version": "2.5.3",
|
||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.5.3.tgz",
|
||||
"integrity": "sha512-/rI36cN2g7vDQnKWN8Uzupi++KjyqS9iS+/fpwG4Ea8d0Pip0PQ5bshUNzVwt+/D2MRfhVAplYMMvWLqWrCF/g==",
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.0.tgz",
|
||||
"integrity": "sha512-aaLVANlj4HgZweKttFNUVNRxDukytuIuxeK2boIMHjagNJCiVKWFsKF4tCE3ql3GbrD2tExPQ7/pwtEJcHNZeg==",
|
||||
"requires": {
|
||||
"detect-libc": "^1.0.3",
|
||||
"expand-template": "^1.0.2",
|
||||
"expand-template": "^2.0.3",
|
||||
"github-from-package": "0.0.0",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"node-abi": "^2.2.0",
|
||||
"napi-build-utils": "^1.0.1",
|
||||
"node-abi": "^2.7.0",
|
||||
"noop-logger": "^0.1.1",
|
||||
"npmlog": "^4.0.1",
|
||||
"os-homedir": "^1.0.1",
|
||||
"pump": "^2.0.1",
|
||||
"rc": "^1.1.6",
|
||||
"rc": "^1.2.7",
|
||||
"simple-get": "^2.7.0",
|
||||
"tar-fs": "^1.13.0",
|
||||
"tunnel-agent": "^0.6.0",
|
||||
@@ -4009,9 +3876,9 @@
|
||||
}
|
||||
},
|
||||
"psl": {
|
||||
"version": "1.1.29",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz",
|
||||
"integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ=="
|
||||
"version": "1.1.31",
|
||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
|
||||
"integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
|
||||
},
|
||||
"pump": {
|
||||
"version": "2.0.1",
|
||||
@@ -4023,9 +3890,9 @@
|
||||
}
|
||||
},
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
|
||||
"integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
|
||||
},
|
||||
"q": {
|
||||
"version": "0.9.7",
|
||||
@@ -4102,17 +3969,17 @@
|
||||
}
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
||||
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
|
||||
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
|
||||
"requires": {
|
||||
"glob": "^7.0.5"
|
||||
"glob": "^7.1.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"glob": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
|
||||
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
|
||||
"version": "7.1.4",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
|
||||
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
|
||||
"requires": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
@@ -4163,9 +4030,9 @@
|
||||
}
|
||||
},
|
||||
"fs-plus": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.0.2.tgz",
|
||||
"integrity": "sha1-a19Sp3EolMTd6f2PgfqMYN8EHz0=",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fs-plus/-/fs-plus-3.1.1.tgz",
|
||||
"integrity": "sha512-Se2PJdOWXqos1qVTkvqqjb0CSnfBnwwD+pq+z4ksT+e97mEShod/hrNg0TRCCsXPbJzcIq+NuzQhigunMWMJUA==",
|
||||
"requires": {
|
||||
"async": "^1.5.2",
|
||||
"mkdirp": "^0.5.1",
|
||||
@@ -4176,9 +4043,9 @@
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.5.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz",
|
||||
"integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw=="
|
||||
"version": "5.7.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
|
||||
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="
|
||||
},
|
||||
"set-blocking": {
|
||||
"version": "2.0.0",
|
||||
@@ -4206,9 +4073,9 @@
|
||||
}
|
||||
},
|
||||
"sshpk": {
|
||||
"version": "1.14.2",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz",
|
||||
"integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=",
|
||||
"version": "1.16.1",
|
||||
"resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
|
||||
"integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
|
||||
"requires": {
|
||||
"asn1": "~0.2.3",
|
||||
"assert-plus": "^1.0.0",
|
||||
@@ -4250,12 +4117,12 @@
|
||||
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
|
||||
},
|
||||
"tar": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
|
||||
"integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
|
||||
"requires": {
|
||||
"block-stream": "*",
|
||||
"fstream": "^1.0.2",
|
||||
"fstream": "^1.0.12",
|
||||
"inherits": "2"
|
||||
}
|
||||
},
|
||||
@@ -4282,16 +4149,16 @@
|
||||
}
|
||||
},
|
||||
"tar-stream": {
|
||||
"version": "1.6.1",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.1.tgz",
|
||||
"integrity": "sha512-IFLM5wp3QrJODQFPm6/to3LJZrONdBY/otxcvDIQzu217zKye6yVR3hhi9lAjrC2Z+m/j5oDxMPb1qcd8cIvpA==",
|
||||
"version": "1.6.2",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz",
|
||||
"integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==",
|
||||
"requires": {
|
||||
"bl": "^1.0.0",
|
||||
"buffer-alloc": "^1.1.0",
|
||||
"buffer-alloc": "^1.2.0",
|
||||
"end-of-stream": "^1.0.0",
|
||||
"fs-constants": "^1.0.0",
|
||||
"readable-stream": "^2.3.0",
|
||||
"to-buffer": "^1.1.0",
|
||||
"to-buffer": "^1.1.1",
|
||||
"xtend": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -4335,7 +4202,7 @@
|
||||
"dependencies": {
|
||||
"rimraf": {
|
||||
"version": "2.2.8",
|
||||
"resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz",
|
||||
"integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI="
|
||||
}
|
||||
}
|
||||
@@ -4378,6 +4245,13 @@
|
||||
"requires": {
|
||||
"psl": "^1.1.24",
|
||||
"punycode": "^1.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"punycode": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"traverse": {
|
||||
@@ -4396,20 +4270,27 @@
|
||||
"tweetnacl": {
|
||||
"version": "0.14.5",
|
||||
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
|
||||
"optional": true
|
||||
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.8.3",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz",
|
||||
"integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI="
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
|
||||
"integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
|
||||
},
|
||||
"underscore-plus": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.6.8.tgz",
|
||||
"integrity": "sha512-88PrCeMKeAAC1L4xjSiiZ3Fg6kZOYrLpLGVPPeqKq/662DfQe/KTSKdSR/Q/tucKNnfW2MNAUGSCkDf8HmXC5Q==",
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore-plus/-/underscore-plus-1.7.0.tgz",
|
||||
"integrity": "sha512-A3BEzkeicFLnr+U/Q3EyWwJAQPbA19mtZZ4h+lLq3ttm9kn8WC4R3YpuJZEXmWdLjYP47Zc8aLZm9kwdv+zzvA==",
|
||||
"requires": {
|
||||
"underscore": "~1.8.3"
|
||||
"underscore": "^1.9.1"
|
||||
}
|
||||
},
|
||||
"uri-js": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
|
||||
"integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||
"requires": {
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"util-deprecate": {
|
||||
@@ -4432,14 +4313,6 @@
|
||||
"extsprintf": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"which": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||
"requires": {
|
||||
"isexe": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"which-pm-runs": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
|
||||
|
||||
@@ -6,6 +6,6 @@
|
||||
"url": "https://github.com/atom/atom.git"
|
||||
},
|
||||
"dependencies": {
|
||||
"atom-package-manager": "2.1.2"
|
||||
"atom-package-manager": "2.2.4"
|
||||
}
|
||||
}
|
||||
|
||||
19
appveyor.yml
19
appveyor.yml
@@ -19,7 +19,8 @@ platform:
|
||||
environment:
|
||||
global:
|
||||
ATOM_DEV_RESOURCE_PATH: c:\projects\atom
|
||||
TEST_JUNIT_XML_ROOT: c:\projects\junit-test-results
|
||||
ATOM_JASMINE_REPORTER: list
|
||||
CI: true
|
||||
NODE_VERSION: 8.9.3
|
||||
|
||||
matrix:
|
||||
@@ -33,7 +34,6 @@ matrix:
|
||||
TASK: test
|
||||
|
||||
install:
|
||||
- IF NOT EXIST %TEST_JUNIT_XML_ROOT% MKDIR %TEST_JUNIT_XML_ROOT%
|
||||
- SET PATH=C:\Program Files\Atom\resources\cli;%PATH%
|
||||
- ps: Install-Product node $env:NODE_VERSION $env:PLATFORM
|
||||
- npm install --global npm@6.2.0
|
||||
@@ -42,9 +42,9 @@ build_script:
|
||||
- CD %APPVEYOR_BUILD_FOLDER%
|
||||
- IF NOT EXIST C:\tmp MKDIR C:\tmp
|
||||
- SET SQUIRREL_TEMP=C:\tmp
|
||||
- IF [%APPVEYOR_REPO_BRANCH:~-9%]==[-releases] SET IS_RELEASE_BRANCH=true
|
||||
- IF [%APPVEYOR_REPO_BRANCH:~-9%]==[-releases] IF NOT DEFINED APPVEYOR_PULL_REQUEST_NUMBER SET IS_RELEASE_BRANCH=true
|
||||
- IF [%APPVEYOR_REPO_BRANCH%]==[master] IF NOT DEFINED APPVEYOR_PULL_REQUEST_NUMBER SET IS_SIGNED_ZIP_BRANCH=true
|
||||
- IF [%APPVEYOR_REPO_BRANCH:~0,9%]==[electron-] SET IS_SIGNED_ZIP_BRANCH=true
|
||||
- IF [%APPVEYOR_REPO_BRANCH:~0,9%]==[electron-] IF NOT DEFINED APPVEYOR_PULL_REQUEST_NUMBER SET IS_SIGNED_ZIP_BRANCH=true
|
||||
- IF [%TASK%]==[installer] (
|
||||
IF [%IS_RELEASE_BRANCH%]==[true] (
|
||||
ECHO Building on release branch - Creating production artifacts &&
|
||||
@@ -93,14 +93,3 @@ cache:
|
||||
- '%APPVEYOR_BUILD_FOLDER%\electron'
|
||||
- '%USERPROFILE%\.atom\.apm'
|
||||
- '%USERPROFILE%\.atom\compile-cache'
|
||||
|
||||
on_finish:
|
||||
- ps: |
|
||||
$wc = New-Object 'System.Net.WebClient'
|
||||
$endpoint = "https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)"
|
||||
Write-Output "Searching for JUnit XML output beneath $($env:TEST_JUNIT_XML_ROOT)"
|
||||
Get-ChildItem -Path $env:TEST_JUNIT_XML_ROOT -Recurse -File -Name -Include "*.xml" | ForEach-Object {
|
||||
$full = "$($env:TEST_JUNIT_XML_ROOT)\$($_)"
|
||||
Write-Output "Uploading JUnit XML file $($full)"
|
||||
$wc.UploadFile($endpoint, $full)
|
||||
}
|
||||
|
||||
43
atom.sh
43
atom.sh
@@ -24,12 +24,26 @@ case $(basename $0) in
|
||||
;;
|
||||
esac
|
||||
|
||||
export ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true
|
||||
# Only set the ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT env var if it hasn't been set.
|
||||
if [ -z "$ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT" ]
|
||||
then
|
||||
export ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true
|
||||
fi
|
||||
|
||||
while getopts ":wtfvh-:" opt; do
|
||||
ATOM_ADD=false
|
||||
ATOM_NEW_WINDOW=false
|
||||
EXIT_CODE_OVERRIDE=
|
||||
|
||||
while getopts ":anwtfvh-:" opt; do
|
||||
case "$opt" in
|
||||
-)
|
||||
case "${OPTARG}" in
|
||||
add)
|
||||
ATOM_ADD=true
|
||||
;;
|
||||
new-window)
|
||||
ATOM_NEW_WINDOW=true
|
||||
;;
|
||||
wait)
|
||||
WAIT=1
|
||||
;;
|
||||
@@ -45,6 +59,12 @@ while getopts ":wtfvh-:" opt; do
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
a)
|
||||
ATOM_ADD=true
|
||||
;;
|
||||
n)
|
||||
ATOM_NEW_WINDOW=true
|
||||
;;
|
||||
w)
|
||||
WAIT=1
|
||||
;;
|
||||
@@ -58,6 +78,11 @@ while getopts ":wtfvh-:" opt; do
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "${ATOM_ADD}" = "true" ] && [ "${ATOM_NEW_WINDOW}" = "true" ]; then
|
||||
EXPECT_OUTPUT=1
|
||||
EXIT_CODE_OVERRIDE=1
|
||||
fi
|
||||
|
||||
if [ $REDIRECT_STDERR ]; then
|
||||
exec 2> /dev/null
|
||||
fi
|
||||
@@ -115,7 +140,12 @@ if [ $OS == 'Mac' ]; then
|
||||
|
||||
if [ $EXPECT_OUTPUT ]; then
|
||||
"$ATOM_PATH/$ATOM_APP_NAME/Contents/MacOS/$ATOM_EXECUTABLE_NAME" --executed-from="$(pwd)" --pid=$$ "$@"
|
||||
exit $?
|
||||
ATOM_EXIT=$?
|
||||
if [ ${ATOM_EXIT} -eq 0 ] && [ -n "${EXIT_CODE_OVERRIDE}" ]; then
|
||||
exit "${EXIT_CODE_OVERRIDE}"
|
||||
else
|
||||
exit ${ATOM_EXIT}
|
||||
fi
|
||||
else
|
||||
open -a "$ATOM_PATH/$ATOM_APP_NAME" -n --args --executed-from="$(pwd)" --pid=$$ --path-environment="$PATH" "$@"
|
||||
fi
|
||||
@@ -144,7 +174,12 @@ elif [ $OS == 'Linux' ]; then
|
||||
|
||||
if [ $EXPECT_OUTPUT ]; then
|
||||
"$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@"
|
||||
exit $?
|
||||
ATOM_EXIT=$?
|
||||
if [ ${ATOM_EXIT} -eq 0 ] && [ -n "${EXIT_CODE_OVERRIDE}" ]; then
|
||||
exit "${EXIT_CODE_OVERRIDE}"
|
||||
else
|
||||
exit ${ATOM_EXIT}
|
||||
fi
|
||||
else
|
||||
(
|
||||
nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1
|
||||
|
||||
@@ -38,7 +38,8 @@ module.exports = async ({test, benchmarkPaths}) => {
|
||||
if (data.points.length > 1) {
|
||||
const canvas = document.createElement('canvas')
|
||||
benchmarkContainer.appendChild(canvas)
|
||||
const chart = new Chart(canvas, {
|
||||
// eslint-disable-next-line no-new
|
||||
new Chart(canvas, {
|
||||
type: 'line',
|
||||
data: {
|
||||
datasets: [{label: key, fill: false, data: data.points}]
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
# Near-term plans
|
||||
|
||||
Want to know what the Atom team is working on and what has our focus over the next few months? You've come to the right place. 🎯
|
||||
|
||||
|
||||
This roadmap is a [living document](https://en.wikipedia.org/wiki/Living_document): it represents our current plans, but we expect these plans to change from time to time. Follow [this link](https://github.com/atom/atom/blob/4fbad81a7cd2f2e3925d7e920086bc1ebf2fe210/docs/focus/README.md) to see the previous major version of this roadmap.
|
||||
|
||||
You can find our bi-weekly iteration plans by searching for issues with the [`iteration-plan`](https://github.com/atom/atom/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc+label%3Aiteration-plan) label.
|
||||
|
||||
---
|
||||
|
||||
### Core package development is streamlined
|
||||
Everything in Atom is a package. While this adds to its hackability, it is not always the best path forward. Consolidating packages as well as thinking about other ways to decrease friction for contributors will help pay down some of our tech debt in this area. More information regarding planning was provided in [this RFC](https://github.com/atom/atom/blob/master/docs/rfcs/003-consolidate-core-packages.md)
|
||||
|
||||
- [ ] Merge at least 22 packages in to atom/atom
|
||||
|
||||
|
||||
### Improve Communication and Process
|
||||
|
||||
- [ ] Refine process for triaging issues and PRs across Atom org repositories
|
||||
- [ ] Publish a document that outlines merge requirements for community PRs
|
||||
- [ ] Reactive tickets are incorporated in to 80% of all sprints
|
||||
- [ ] Automate some aspects of Atom issue and PR triage with Probot, especially around ensuring PRs follow our contribution guidelines
|
||||
|
||||
### Establish and Measure
|
||||
|
||||
- [ ] Implement Atom metrics dashboard that can be used to drive future decisions
|
||||
- [ ] Determine what may be helpful to measure in the future building upon work [already in progress](http://blog.atom.io/2018/06/20/atom-metrics.html)
|
||||
44
docs/rfcs/004-decoration-ordering.md
Normal file
44
docs/rfcs/004-decoration-ordering.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# Decoration ordering
|
||||
|
||||
## Status
|
||||
|
||||
Accepted
|
||||
|
||||
## Summary
|
||||
|
||||
Order block decoration items in the DOM in a deterministic and controllable way.
|
||||
|
||||
## Motivation
|
||||
|
||||
When multiple block decorations are created at the same screen line, they are inserted into the DOM in an order determined by the sequence of their creation; from oldest to newest when `position` is set to `"before"`, from newest to oldest when `position` is set to `"after"`. While this is deterministic, it is limited: it isn't possible to insert decorations within a sequence of existing ones, and it's difficult to control the order of decorations when creating and destroying and moving markers around an editor.
|
||||
|
||||
We hit the need for this in [atom/github#1913](https://github.com/atom/github/pull/1913) when we have a block decoration for multiple consecutive collapsed file patches.
|
||||
|
||||
## Explanation
|
||||
|
||||
[TextEditor::decorateMarker()](https://atom.io/docs/api/v1.34.0/TextEditor#instance-decorateMarker) accepts an additional `order` parameter in its `decorationParams` argument when `type` is "block". When multiple block or overlay decorations occur at the same screen line, they are ordered within the DOM in increasing "order" value.
|
||||
|
||||
Block decorations with the same `order` property are rendered in the order they were created, oldest to newest. Block decorations with no `order` property are rendered after those with one, in the order in which they were created, oldest to newest.
|
||||
|
||||
## Drawbacks
|
||||
|
||||
This is a breaking change for co-located block decorations created with an "after" position - they'll now appear in the reverse order.
|
||||
|
||||
When multiple packages create block decorations at the same screen line, they'll need to coordinate their `order` values to have expected behavior. There may not even be a clear, universal answer about how block decorations from distinct packages _should_ be ordered.
|
||||
|
||||
This adds another situational parameter to `TextEditor::decorationMarker()`, which already has complicated arguments.
|
||||
|
||||
## Rationale and alternatives
|
||||
|
||||
Originally I wanted to address the package coordination problem with a similar approach to [the way context menu items are ordered](https://github.com/atom/atom/pull/16661), by allowing individual decorations to specify constraints: "before this block," "after this block," "next to this block" and so forth. I ultimately chose to write up the simpler proposal because:
|
||||
|
||||
* Block decoration collisions among packages seem much less likely than context menu collisions.
|
||||
* Constraint satisfaction problems are complex. There would be a relatively high chance of introducing bugs and performance regressions.
|
||||
* The order number approach is similar to the APIs already offered to order status bar tiles and custom gutters.
|
||||
|
||||
The alternative to having an explicit API for this is at all is to create and destroy decorations to achieve the desired order. That's possible, but requires a great deal of bookkeeping on the package's side to accomplish, especially as decorations are added and removed and text is edited.
|
||||
|
||||
## Unresolved questions
|
||||
|
||||
- Should overlay decorations respect an `order` parameter in a similar fashion?
|
||||
- Should screen column effect decoration ordering at all?
|
||||
1
dot-atom/.gitignore
vendored
1
dot-atom/.gitignore
vendored
@@ -5,3 +5,4 @@ storage
|
||||
.apm
|
||||
.node-gyp
|
||||
.npm
|
||||
.atom-socket-secret-*
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
'atom-text-editor:not([mini])':
|
||||
# Atom Specific
|
||||
'ctrl-shift-c': 'editor:copy-path'
|
||||
'alt-up': 'editor:select-larger-syntax-node'
|
||||
'alt-down': 'editor:select-smaller-syntax-node'
|
||||
|
||||
# Sublime Parity
|
||||
'tab': 'editor:indent'
|
||||
|
||||
@@ -133,8 +133,6 @@
|
||||
'cmd-ctrl-left': 'editor:move-selection-left'
|
||||
'cmd-ctrl-right': 'editor:move-selection-right'
|
||||
'cmd-shift-V': 'editor:paste-without-reformatting'
|
||||
'alt-up': 'editor:select-larger-syntax-node'
|
||||
'alt-down': 'editor:select-smaller-syntax-node'
|
||||
|
||||
# Emacs
|
||||
'alt-f': 'editor:move-to-end-of-word'
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
{ label: 'Hide Others', command: 'application:hide-other-applications' }
|
||||
{ label: 'Show All', command: 'application:unhide-all-applications' }
|
||||
{ type: 'separator' }
|
||||
{ label: 'Quit', command: 'application:quit' }
|
||||
{ label: 'Quit Atom', command: 'application:quit' }
|
||||
]
|
||||
}
|
||||
{
|
||||
|
||||
3594
package-lock.json
generated
3594
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
271
package.json
271
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "atom",
|
||||
"productName": "Atom",
|
||||
"version": "1.32.0-dev",
|
||||
"version": "1.39.0-dev",
|
||||
"description": "A hackable text editor for the 21st Century.",
|
||||
"main": "./src/main-process/main.js",
|
||||
"repository": {
|
||||
@@ -12,129 +12,127 @@
|
||||
"url": "https://github.com/atom/atom/issues"
|
||||
},
|
||||
"license": "MIT",
|
||||
"electronVersion": "2.0.9",
|
||||
"electronVersion": "3.1.10",
|
||||
"dependencies": {
|
||||
"@atom/nsfw": "^1.0.19",
|
||||
"@atom/nsfw": "1.0.23",
|
||||
"@atom/source-map-support": "^0.3.4",
|
||||
"@atom/watcher": "1.0.8",
|
||||
"@atom/watcher": "1.3.1",
|
||||
"about": "file:packages/about",
|
||||
"archive-view": "https://www.atom.io/api/packages/archive-view/versions/0.65.1/tarball",
|
||||
"async": "0.2.6",
|
||||
"atom-dark-syntax": "https://www.atom.io/api/packages/atom-dark-syntax/versions/0.29.1/tarball",
|
||||
"atom-dark-ui": "https://www.atom.io/api/packages/atom-dark-ui/versions/0.53.3/tarball",
|
||||
"atom-keymap": "8.2.11",
|
||||
"atom-light-syntax": "https://www.atom.io/api/packages/atom-light-syntax/versions/0.29.1/tarball",
|
||||
"atom-light-ui": "https://www.atom.io/api/packages/atom-light-ui/versions/0.46.3/tarball",
|
||||
"atom-dark-syntax": "file:packages/atom-dark-syntax",
|
||||
"atom-dark-ui": "file:packages/atom-dark-ui",
|
||||
"atom-keymap": "8.2.14",
|
||||
"atom-light-syntax": "file:packages/atom-light-syntax",
|
||||
"atom-light-ui": "file:packages/atom-light-ui",
|
||||
"atom-select-list": "^0.7.2",
|
||||
"atom-ui": "0.4.1",
|
||||
"autocomplete-atom-api": "https://www.atom.io/api/packages/autocomplete-atom-api/versions/0.10.7/tarball",
|
||||
"autocomplete-css": "https://www.atom.io/api/packages/autocomplete-css/versions/0.17.5/tarball",
|
||||
"autocomplete-html": "https://www.atom.io/api/packages/autocomplete-html/versions/0.8.6/tarball",
|
||||
"autocomplete-plus": "https://www.atom.io/api/packages/autocomplete-plus/versions/2.41.0/tarball",
|
||||
"autocomplete-snippets": "https://www.atom.io/api/packages/autocomplete-snippets/versions/1.12.0/tarball",
|
||||
"autocomplete-html": "https://www.atom.io/api/packages/autocomplete-html/versions/0.8.8/tarball",
|
||||
"autocomplete-plus": "https://www.atom.io/api/packages/autocomplete-plus/versions/2.42.0/tarball",
|
||||
"autocomplete-snippets": "https://www.atom.io/api/packages/autocomplete-snippets/versions/1.12.1/tarball",
|
||||
"autoflow": "file:packages/autoflow",
|
||||
"autosave": "https://www.atom.io/api/packages/autosave/versions/0.24.6/tarball",
|
||||
"babel-core": "5.8.38",
|
||||
"background-tips": "https://www.atom.io/api/packages/background-tips/versions/0.28.0/tarball",
|
||||
"base16-tomorrow-dark-theme": "https://www.atom.io/api/packages/base16-tomorrow-dark-theme/versions/1.6.0/tarball",
|
||||
"base16-tomorrow-light-theme": "https://www.atom.io/api/packages/base16-tomorrow-light-theme/versions/1.6.0/tarball",
|
||||
"bookmarks": "https://www.atom.io/api/packages/bookmarks/versions/0.45.1/tarball",
|
||||
"bracket-matcher": "https://www.atom.io/api/packages/bracket-matcher/versions/0.89.3/tarball",
|
||||
"cached-run-in-this-context": "0.5.0",
|
||||
"base16-tomorrow-dark-theme": "file:packages/base16-tomorrow-dark-theme",
|
||||
"base16-tomorrow-light-theme": "file:packages/base16-tomorrow-light-theme",
|
||||
"bookmarks": "https://www.atom.io/api/packages/bookmarks/versions/0.46.0/tarball",
|
||||
"bracket-matcher": "https://www.atom.io/api/packages/bracket-matcher/versions/0.91.0/tarball",
|
||||
"chai": "3.5.0",
|
||||
"chart.js": "^2.3.0",
|
||||
"clear-cut": "^2.0.2",
|
||||
"coffee-script": "1.12.7",
|
||||
"color": "^0.7.3",
|
||||
"command-palette": "https://www.atom.io/api/packages/command-palette/versions/0.43.5/tarball",
|
||||
"dalek": "https://www.atom.io/api/packages/dalek/versions/0.2.2/tarball",
|
||||
"dalek": "file:packages/dalek",
|
||||
"dedent": "^0.7.0",
|
||||
"deprecation-cop": "https://www.atom.io/api/packages/deprecation-cop/versions/0.56.9/tarball",
|
||||
"dev-live-reload": "https://www.atom.io/api/packages/dev-live-reload/versions/0.48.1/tarball",
|
||||
"deprecation-cop": "file:packages/deprecation-cop",
|
||||
"dev-live-reload": "file:packages/dev-live-reload",
|
||||
"devtron": "1.3.0",
|
||||
"encoding-selector": "https://www.atom.io/api/packages/encoding-selector/versions/0.23.9/tarball",
|
||||
"etch": "^0.12.6",
|
||||
"event-kit": "^2.5.1",
|
||||
"exception-reporting": "https://www.atom.io/api/packages/exception-reporting/versions/0.43.1/tarball",
|
||||
"find-and-replace": "https://www.atom.io/api/packages/find-and-replace/versions/0.215.14/tarball",
|
||||
"event-kit": "^2.5.3",
|
||||
"exception-reporting": "file:packages/exception-reporting",
|
||||
"find-and-replace": "https://www.atom.io/api/packages/find-and-replace/versions/0.218.11/tarball",
|
||||
"find-parent-dir": "^0.3.0",
|
||||
"first-mate": "7.1.1",
|
||||
"first-mate": "7.3.0",
|
||||
"focus-trap": "2.4.5",
|
||||
"fs-admin": "^0.1.7",
|
||||
"fs-plus": "^3.0.1",
|
||||
"fs-plus": "^3.1.1",
|
||||
"fstream": "0.1.24",
|
||||
"fuzzaldrin": "^2.1",
|
||||
"fuzzy-finder": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.8.2/tarball",
|
||||
"fuzzy-finder": "https://www.atom.io/api/packages/fuzzy-finder/versions/1.13.5/tarball",
|
||||
"git-diff": "file:packages/git-diff",
|
||||
"git-utils": "5.2.1",
|
||||
"github": "https://www.atom.io/api/packages/github/versions/0.19.0/tarball",
|
||||
"git-utils": "5.5.0",
|
||||
"github": "https://www.atom.io/api/packages/github/versions/0.29.0/tarball",
|
||||
"glob": "^7.1.1",
|
||||
"go-to-line": "https://www.atom.io/api/packages/go-to-line/versions/0.33.0/tarball",
|
||||
"grammar-selector": "https://www.atom.io/api/packages/grammar-selector/versions/0.50.1/tarball",
|
||||
"go-to-line": "file:packages/go-to-line",
|
||||
"grammar-selector": "file:packages/grammar-selector",
|
||||
"grim": "1.5.0",
|
||||
"image-view": "https://www.atom.io/api/packages/image-view/versions/0.63.1/tarball",
|
||||
"incompatible-packages": "https://www.atom.io/api/packages/incompatible-packages/versions/0.27.3/tarball",
|
||||
"image-view": "https://www.atom.io/api/packages/image-view/versions/0.64.0/tarball",
|
||||
"incompatible-packages": "file:packages/incompatible-packages",
|
||||
"jasmine-json": "~0.0",
|
||||
"jasmine-reporters": "1.1.0",
|
||||
"jasmine-tagged": "^1.1.4",
|
||||
"key-path-helpers": "^0.4.0",
|
||||
"keybinding-resolver": "https://www.atom.io/api/packages/keybinding-resolver/versions/0.38.4/tarball",
|
||||
"language-c": "https://www.atom.io/api/packages/language-c/versions/0.60.5/tarball",
|
||||
"language-clojure": "https://www.atom.io/api/packages/language-clojure/versions/0.22.7/tarball",
|
||||
"language-coffee-script": "https://www.atom.io/api/packages/language-coffee-script/versions/0.49.3/tarball",
|
||||
"keybinding-resolver": "https://www.atom.io/api/packages/keybinding-resolver/versions/0.39.0/tarball",
|
||||
"language-c": "https://www.atom.io/api/packages/language-c/versions/0.60.17/tarball",
|
||||
"language-clojure": "https://www.atom.io/api/packages/language-clojure/versions/0.22.8/tarball",
|
||||
"language-coffee-script": "https://www.atom.io/api/packages/language-coffee-script/versions/0.50.0/tarball",
|
||||
"language-csharp": "https://www.atom.io/api/packages/language-csharp/versions/1.1.0/tarball",
|
||||
"language-css": "https://www.atom.io/api/packages/language-css/versions/0.42.11/tarball",
|
||||
"language-gfm": "https://www.atom.io/api/packages/language-gfm/versions/0.90.5/tarball",
|
||||
"language-css": "https://www.atom.io/api/packages/language-css/versions/0.44.0/tarball",
|
||||
"language-gfm": "https://www.atom.io/api/packages/language-gfm/versions/0.90.6/tarball",
|
||||
"language-git": "https://www.atom.io/api/packages/language-git/versions/0.19.1/tarball",
|
||||
"language-go": "https://www.atom.io/api/packages/language-go/versions/0.46.3/tarball",
|
||||
"language-html": "https://www.atom.io/api/packages/language-html/versions/0.51.5/tarball",
|
||||
"language-hyperlink": "https://www.atom.io/api/packages/language-hyperlink/versions/0.16.3/tarball",
|
||||
"language-java": "https://www.atom.io/api/packages/language-java/versions/0.30.0/tarball",
|
||||
"language-javascript": "https://www.atom.io/api/packages/language-javascript/versions/0.129.9/tarball",
|
||||
"language-json": "https://www.atom.io/api/packages/language-json/versions/0.19.2/tarball",
|
||||
"language-less": "https://www.atom.io/api/packages/language-less/versions/0.34.2/tarball",
|
||||
"language-make": "https://www.atom.io/api/packages/language-make/versions/0.22.3/tarball",
|
||||
"language-go": "https://www.atom.io/api/packages/language-go/versions/0.47.0/tarball",
|
||||
"language-html": "https://www.atom.io/api/packages/language-html/versions/0.52.1/tarball",
|
||||
"language-hyperlink": "https://www.atom.io/api/packages/language-hyperlink/versions/0.17.1/tarball",
|
||||
"language-java": "https://www.atom.io/api/packages/language-java/versions/0.31.3/tarball",
|
||||
"language-javascript": "https://www.atom.io/api/packages/language-javascript/versions/0.130.0/tarball",
|
||||
"language-json": "https://www.atom.io/api/packages/language-json/versions/1.0.2/tarball",
|
||||
"language-less": "https://www.atom.io/api/packages/language-less/versions/0.34.3/tarball",
|
||||
"language-make": "https://www.atom.io/api/packages/language-make/versions/0.23.0/tarball",
|
||||
"language-mustache": "https://www.atom.io/api/packages/language-mustache/versions/0.14.5/tarball",
|
||||
"language-objective-c": "https://www.atom.io/api/packages/language-objective-c/versions/0.15.1/tarball",
|
||||
"language-objective-c": "https://www.atom.io/api/packages/language-objective-c/versions/0.16.0/tarball",
|
||||
"language-perl": "https://www.atom.io/api/packages/language-perl/versions/0.38.1/tarball",
|
||||
"language-php": "https://www.atom.io/api/packages/language-php/versions/0.44.0/tarball",
|
||||
"language-php": "https://www.atom.io/api/packages/language-php/versions/0.44.1/tarball",
|
||||
"language-property-list": "https://www.atom.io/api/packages/language-property-list/versions/0.9.1/tarball",
|
||||
"language-python": "https://www.atom.io/api/packages/language-python/versions/0.51.5/tarball",
|
||||
"language-ruby": "https://www.atom.io/api/packages/language-ruby/versions/0.72.9/tarball",
|
||||
"language-python": "https://www.atom.io/api/packages/language-python/versions/0.53.2/tarball",
|
||||
"language-ruby": "https://www.atom.io/api/packages/language-ruby/versions/0.72.16/tarball",
|
||||
"language-ruby-on-rails": "https://www.atom.io/api/packages/language-ruby-on-rails/versions/0.25.3/tarball",
|
||||
"language-rust-bundled": "file:packages/language-rust-bundled",
|
||||
"language-sass": "https://www.atom.io/api/packages/language-sass/versions/0.62.0/tarball",
|
||||
"language-shellscript": "https://www.atom.io/api/packages/language-shellscript/versions/0.27.5/tarball",
|
||||
"language-shellscript": "https://www.atom.io/api/packages/language-shellscript/versions/0.27.11/tarball",
|
||||
"language-source": "https://www.atom.io/api/packages/language-source/versions/0.9.0/tarball",
|
||||
"language-sql": "https://www.atom.io/api/packages/language-sql/versions/0.25.10/tarball",
|
||||
"language-text": "https://www.atom.io/api/packages/language-text/versions/0.7.4/tarball",
|
||||
"language-todo": "https://www.atom.io/api/packages/language-todo/versions/0.29.4/tarball",
|
||||
"language-toml": "https://www.atom.io/api/packages/language-toml/versions/0.18.2/tarball",
|
||||
"language-typescript": "https://www.atom.io/api/packages/language-typescript/versions/0.4.6/tarball",
|
||||
"language-xml": "https://www.atom.io/api/packages/language-xml/versions/0.35.2/tarball",
|
||||
"language-toml": "https://www.atom.io/api/packages/language-toml/versions/0.20.0/tarball",
|
||||
"language-typescript": "https://www.atom.io/api/packages/language-typescript/versions/0.5.0/tarball",
|
||||
"language-xml": "https://www.atom.io/api/packages/language-xml/versions/0.35.3/tarball",
|
||||
"language-yaml": "https://www.atom.io/api/packages/language-yaml/versions/0.32.0/tarball",
|
||||
"less-cache": "1.1.0",
|
||||
"line-ending-selector": "https://www.atom.io/api/packages/line-ending-selector/versions/0.7.7/tarball",
|
||||
"line-ending-selector": "file:packages/line-ending-selector",
|
||||
"line-top-index": "0.3.1",
|
||||
"link": "https://www.atom.io/api/packages/link/versions/0.31.6/tarball",
|
||||
"markdown-preview": "https://www.atom.io/api/packages/markdown-preview/versions/0.159.25/tarball",
|
||||
"link": "file:packages/link",
|
||||
"markdown-preview": "https://www.atom.io/api/packages/markdown-preview/versions/0.160.0/tarball",
|
||||
"marked": "^0.3.12",
|
||||
"metrics": "https://www.atom.io/api/packages/metrics/versions/1.6.2/tarball",
|
||||
"metrics": "https://www.atom.io/api/packages/metrics/versions/1.7.5/tarball",
|
||||
"minimatch": "^3.0.3",
|
||||
"mocha": "2.5.1",
|
||||
"mocha-junit-reporter": "^1.13.0",
|
||||
"mocha-multi-reporters": "^1.1.4",
|
||||
"mock-spawn": "^0.2.6",
|
||||
"normalize-package-data": "^2.0.0",
|
||||
"notifications": "https://www.atom.io/api/packages/notifications/versions/0.70.5/tarball",
|
||||
"notifications": "https://www.atom.io/api/packages/notifications/versions/0.70.6/tarball",
|
||||
"nslog": "^3",
|
||||
"one-dark-syntax": "file:packages/one-dark-syntax",
|
||||
"one-dark-ui": "file:packages/one-dark-ui",
|
||||
"one-light-syntax": "file:packages/one-light-syntax",
|
||||
"one-light-ui": "file:packages/one-light-ui",
|
||||
"oniguruma": "6.2.1",
|
||||
"open-on-github": "https://www.atom.io/api/packages/open-on-github/versions/1.3.1/tarball",
|
||||
"package-generator": "https://www.atom.io/api/packages/package-generator/versions/1.3.0/tarball",
|
||||
"pathwatcher": "8.0.1",
|
||||
"pathwatcher": "8.0.2",
|
||||
"postcss": "5.2.4",
|
||||
"postcss-selector-parser": "2.2.1",
|
||||
"property-accessors": "^1.1.3",
|
||||
@@ -146,122 +144,124 @@
|
||||
"season": "^6.0.2",
|
||||
"semver": "^4.3.3",
|
||||
"service-hub": "^0.7.4",
|
||||
"settings-view": "https://www.atom.io/api/packages/settings-view/versions/0.256.1/tarball",
|
||||
"settings-view": "https://www.atom.io/api/packages/settings-view/versions/0.261.3/tarball",
|
||||
"sinon": "1.17.4",
|
||||
"snippets": "https://www.atom.io/api/packages/snippets/versions/1.3.5/tarball",
|
||||
"solarized-dark-syntax": "https://www.atom.io/api/packages/solarized-dark-syntax/versions/1.2.0/tarball",
|
||||
"solarized-light-syntax": "https://www.atom.io/api/packages/solarized-light-syntax/versions/1.2.0/tarball",
|
||||
"spell-check": "https://www.atom.io/api/packages/spell-check/versions/0.74.1/tarball",
|
||||
"status-bar": "https://www.atom.io/api/packages/status-bar/versions/1.8.15/tarball",
|
||||
"snippets": "https://www.atom.io/api/packages/snippets/versions/1.5.0/tarball",
|
||||
"solarized-dark-syntax": "file:packages/solarized-dark-syntax",
|
||||
"solarized-light-syntax": "file:packages/solarized-light-syntax",
|
||||
"spell-check": "https://www.atom.io/api/packages/spell-check/versions/0.74.5/tarball",
|
||||
"status-bar": "https://www.atom.io/api/packages/status-bar/versions/1.8.17/tarball",
|
||||
"styleguide": "https://www.atom.io/api/packages/styleguide/versions/0.49.12/tarball",
|
||||
"symbols-view": "https://www.atom.io/api/packages/symbols-view/versions/0.118.2/tarball",
|
||||
"tabs": "https://www.atom.io/api/packages/tabs/versions/0.109.2/tarball",
|
||||
"temp": "^0.8.3",
|
||||
"text-buffer": "13.14.9",
|
||||
"tabs": "https://www.atom.io/api/packages/tabs/versions/0.110.0/tarball",
|
||||
"temp": "^0.9.0",
|
||||
"text-buffer": "13.16.0",
|
||||
"timecop": "https://www.atom.io/api/packages/timecop/versions/0.36.2/tarball",
|
||||
"tree-sitter": "0.13.13",
|
||||
"tree-view": "https://www.atom.io/api/packages/tree-view/versions/0.224.2/tarball",
|
||||
"tree-sitter": "0.15.0",
|
||||
"tree-sitter-css": "^0.13.7",
|
||||
"tree-view": "https://www.atom.io/api/packages/tree-view/versions/0.228.0/tarball",
|
||||
"typescript-simple": "1.0.0",
|
||||
"underscore-plus": "^1.6.8",
|
||||
"update-package-dependencies": "https://www.atom.io/api/packages/update-package-dependencies/versions/0.13.1/tarball",
|
||||
"welcome": "https://www.atom.io/api/packages/welcome/versions/0.36.7/tarball",
|
||||
"vscode-ripgrep": "^1.2.5",
|
||||
"welcome": "https://www.atom.io/api/packages/welcome/versions/0.36.9/tarball",
|
||||
"whitespace": "https://www.atom.io/api/packages/whitespace/versions/0.37.7/tarball",
|
||||
"winreg": "^1.2.1",
|
||||
"wrap-guide": "https://www.atom.io/api/packages/wrap-guide/versions/0.40.3/tarball",
|
||||
"wrap-guide": "https://www.atom.io/api/packages/wrap-guide/versions/0.41.0/tarball",
|
||||
"yargs": "^3.23.0"
|
||||
},
|
||||
"packageDependencies": {
|
||||
"atom-dark-syntax": "0.29.1",
|
||||
"atom-dark-ui": "0.53.3",
|
||||
"atom-light-syntax": "0.29.1",
|
||||
"atom-light-ui": "0.46.3",
|
||||
"base16-tomorrow-dark-theme": "1.6.0",
|
||||
"base16-tomorrow-light-theme": "1.6.0",
|
||||
"atom-dark-syntax": "file:./packages/atom-dark-syntax",
|
||||
"atom-dark-ui": "file:./packages/atom-dark-ui",
|
||||
"atom-light-syntax": "file:./packages/atom-light-syntax",
|
||||
"atom-light-ui": "file:./packages/atom-light-ui",
|
||||
"base16-tomorrow-dark-theme": "file:./packages/base16-tomorrow-dark-theme",
|
||||
"base16-tomorrow-light-theme": "file:./packages/base16-tomorrow-light-theme",
|
||||
"one-dark-ui": "file:./packages/one-dark-ui",
|
||||
"one-light-ui": "file:./packages/one-light-ui",
|
||||
"one-dark-syntax": "file:./packages/one-dark-syntax",
|
||||
"one-light-syntax": "file:./packages/one-light-syntax",
|
||||
"solarized-dark-syntax": "1.2.0",
|
||||
"solarized-light-syntax": "1.2.0",
|
||||
"solarized-dark-syntax": "file:./packages/solarized-dark-syntax",
|
||||
"solarized-light-syntax": "file:./packages/solarized-light-syntax",
|
||||
"about": "file:./packages/about",
|
||||
"archive-view": "0.65.1",
|
||||
"autocomplete-atom-api": "0.10.7",
|
||||
"autocomplete-css": "0.17.5",
|
||||
"autocomplete-html": "0.8.6",
|
||||
"autocomplete-plus": "2.41.0",
|
||||
"autocomplete-snippets": "1.12.0",
|
||||
"autocomplete-html": "0.8.8",
|
||||
"autocomplete-plus": "2.42.0",
|
||||
"autocomplete-snippets": "1.12.1",
|
||||
"autoflow": "file:./packages/autoflow",
|
||||
"autosave": "0.24.6",
|
||||
"background-tips": "0.28.0",
|
||||
"bookmarks": "0.45.1",
|
||||
"bracket-matcher": "0.89.3",
|
||||
"bookmarks": "0.46.0",
|
||||
"bracket-matcher": "0.91.0",
|
||||
"command-palette": "0.43.5",
|
||||
"dalek": "0.2.2",
|
||||
"deprecation-cop": "0.56.9",
|
||||
"dev-live-reload": "0.48.1",
|
||||
"dalek": "file:./packages/dalek",
|
||||
"deprecation-cop": "file:./packages/deprecation-cop",
|
||||
"dev-live-reload": "file:./packages/dev-live-reload",
|
||||
"encoding-selector": "0.23.9",
|
||||
"exception-reporting": "0.43.1",
|
||||
"find-and-replace": "0.215.14",
|
||||
"fuzzy-finder": "1.8.2",
|
||||
"github": "0.19.0",
|
||||
"exception-reporting": "file:./packages/exception-reporting",
|
||||
"find-and-replace": "0.218.11",
|
||||
"fuzzy-finder": "1.13.5",
|
||||
"github": "0.29.0",
|
||||
"git-diff": "file:./packages/git-diff",
|
||||
"go-to-line": "0.33.0",
|
||||
"grammar-selector": "0.50.1",
|
||||
"image-view": "0.63.1",
|
||||
"incompatible-packages": "0.27.3",
|
||||
"keybinding-resolver": "0.38.4",
|
||||
"line-ending-selector": "0.7.7",
|
||||
"link": "0.31.6",
|
||||
"markdown-preview": "0.159.25",
|
||||
"metrics": "1.6.2",
|
||||
"notifications": "0.70.5",
|
||||
"go-to-line": "file:./packages/go-to-line",
|
||||
"grammar-selector": "file:./packages/grammar-selector",
|
||||
"image-view": "0.64.0",
|
||||
"incompatible-packages": "file:./packages/incompatible-packages",
|
||||
"keybinding-resolver": "0.39.0",
|
||||
"line-ending-selector": "file:./packages/line-ending-selector",
|
||||
"link": "file:./packages/link",
|
||||
"markdown-preview": "0.160.0",
|
||||
"metrics": "1.7.5",
|
||||
"notifications": "0.70.6",
|
||||
"open-on-github": "1.3.1",
|
||||
"package-generator": "1.3.0",
|
||||
"settings-view": "0.256.1",
|
||||
"snippets": "1.3.5",
|
||||
"spell-check": "0.74.1",
|
||||
"status-bar": "1.8.15",
|
||||
"settings-view": "0.261.3",
|
||||
"snippets": "1.5.0",
|
||||
"spell-check": "0.74.5",
|
||||
"status-bar": "1.8.17",
|
||||
"styleguide": "0.49.12",
|
||||
"symbols-view": "0.118.2",
|
||||
"tabs": "0.109.2",
|
||||
"tabs": "0.110.0",
|
||||
"timecop": "0.36.2",
|
||||
"tree-view": "0.224.2",
|
||||
"tree-view": "0.228.0",
|
||||
"update-package-dependencies": "0.13.1",
|
||||
"welcome": "0.36.7",
|
||||
"welcome": "0.36.9",
|
||||
"whitespace": "0.37.7",
|
||||
"wrap-guide": "0.40.3",
|
||||
"language-c": "0.60.5",
|
||||
"language-clojure": "0.22.7",
|
||||
"language-coffee-script": "0.49.3",
|
||||
"wrap-guide": "0.41.0",
|
||||
"language-c": "0.60.17",
|
||||
"language-clojure": "0.22.8",
|
||||
"language-coffee-script": "0.50.0",
|
||||
"language-csharp": "1.1.0",
|
||||
"language-css": "0.42.11",
|
||||
"language-gfm": "0.90.5",
|
||||
"language-css": "0.44.0",
|
||||
"language-gfm": "0.90.6",
|
||||
"language-git": "0.19.1",
|
||||
"language-go": "0.46.3",
|
||||
"language-html": "0.51.5",
|
||||
"language-hyperlink": "0.16.3",
|
||||
"language-java": "0.30.0",
|
||||
"language-javascript": "0.129.9",
|
||||
"language-json": "0.19.2",
|
||||
"language-less": "0.34.2",
|
||||
"language-make": "0.22.3",
|
||||
"language-go": "0.47.0",
|
||||
"language-html": "0.52.1",
|
||||
"language-hyperlink": "0.17.1",
|
||||
"language-java": "0.31.3",
|
||||
"language-javascript": "0.130.0",
|
||||
"language-json": "1.0.2",
|
||||
"language-less": "0.34.3",
|
||||
"language-make": "0.23.0",
|
||||
"language-mustache": "0.14.5",
|
||||
"language-objective-c": "0.15.1",
|
||||
"language-objective-c": "0.16.0",
|
||||
"language-perl": "0.38.1",
|
||||
"language-php": "0.44.0",
|
||||
"language-php": "0.44.1",
|
||||
"language-property-list": "0.9.1",
|
||||
"language-python": "0.51.5",
|
||||
"language-ruby": "0.72.9",
|
||||
"language-python": "0.53.2",
|
||||
"language-ruby": "0.72.16",
|
||||
"language-ruby-on-rails": "0.25.3",
|
||||
"language-rust-bundled": "file:./packages/language-rust-bundled",
|
||||
"language-sass": "0.62.0",
|
||||
"language-shellscript": "0.27.5",
|
||||
"language-shellscript": "0.27.11",
|
||||
"language-source": "0.9.0",
|
||||
"language-sql": "0.25.10",
|
||||
"language-text": "0.7.4",
|
||||
"language-todo": "0.29.4",
|
||||
"language-toml": "0.18.2",
|
||||
"language-typescript": "0.4.6",
|
||||
"language-xml": "0.35.2",
|
||||
"language-toml": "0.20.0",
|
||||
"language-typescript": "0.5.0",
|
||||
"language-xml": "0.35.3",
|
||||
"language-yaml": "0.32.0"
|
||||
},
|
||||
"private": true,
|
||||
@@ -269,6 +269,7 @@
|
||||
"preinstall": "node -e 'process.exit(0)'",
|
||||
"test": "node script/test"
|
||||
},
|
||||
"standard-engine": "./script/node_modules/standard",
|
||||
"standard": {
|
||||
"env": {
|
||||
"atomtest": true,
|
||||
|
||||
@@ -8,38 +8,38 @@ See [RFC 003](https://github.com/atom/atom/blob/master/docs/rfcs/003-consolidate
|
||||
|
||||
| Package | Where to find it | Migration issue |
|
||||
|---------|------------------|-----------------|
|
||||
| **about** | [`./packages/about`](./about) | [#17832](https://github.com/atom/atom/issues/17832) |
|
||||
| **atom-dark-syntax** | [`atom/atom-dark-syntax`][atom-dark-syntax] | [#17849](https://github.com/atom/atom/issues/17849) |
|
||||
| **atom-dark-ui** | [`atom/atom-dark-ui`][atom-dark-ui] | [#17850](https://github.com/atom/atom/issues/17850) |
|
||||
| **atom-light-syntax** | [`atom/atom-light-syntax`][atom-light-syntax] | [#17851](https://github.com/atom/atom/issues/17851) |
|
||||
| **atom-light-ui** | [`atom/atom-light-ui`][atom-light-ui] | [#17852](https://github.com/atom/atom/issues/17852) |
|
||||
| **about** | [`./about`](./about) | [#17832](https://github.com/atom/atom/issues/17832) |
|
||||
| **atom-dark-syntax** | [`./atom-dark-syntax`](./atom-dark-syntax) | [#17849](https://github.com/atom/atom/issues/17849) |
|
||||
| **atom-dark-ui** | [`./atom-dark-ui`](./atom-dark-ui) | [#17850](https://github.com/atom/atom/issues/17850) |
|
||||
| **atom-light-syntax** | [`./atom-light-syntax`](./atom-light-syntax) | [#17851](https://github.com/atom/atom/issues/17851) |
|
||||
| **atom-light-ui** | [`./atom-light-ui`](./atom-light-ui) | [#17852](https://github.com/atom/atom/issues/17852) |
|
||||
| **autocomplete-atom-api** | [`atom/autocomplete-atom-api`][autocomplete-atom-api] | |
|
||||
| **autocomplete-css** | [`atom/autocomplete-css`][autocomplete-css] | |
|
||||
| **autocomplete-html** | [`atom/autocomplete-html`][autocomplete-html] | |
|
||||
| **autocomplete-plus** | [`atom/autocomplete-plus`][autocomplete-plus] | |
|
||||
| **autocomplete-snippets** | [`atom/autocomplete-snippets`][autocomplete-snippets] | |
|
||||
| **autoflow** | [`atom/autoflow`][./autoflow] | [#17833](https://github.com/atom/atom/issues/17833) |
|
||||
| **autoflow** | [`./autoflow`](./autoflow) | [#17833](https://github.com/atom/atom/issues/17833) |
|
||||
| **autosave** | [`atom/autosave`][autosave] | [#17834](https://github.com/atom/atom/issues/17834) |
|
||||
| **background-tips** | [`atom/background-tips`][background-tips] | [#17835](https://github.com/atom/atom/issues/17835) |
|
||||
| **base16-tomorrow-dark-theme** | [`atom/base16-tomorrow-dark-theme`][base16-tomorrow-dark-theme] | [#17836](https://github.com/atom/atom/issues/17836) |
|
||||
| **base16-tomorrow-light-theme** | [`atom/base16-tomorrow-light-theme`][base16-tomorrow-light-theme] | [#17837](https://github.com/atom/atom/issues/17837) |
|
||||
| **bookmarks** | [`atom/bookmarks`][bookmarks] | |
|
||||
| **base16-tomorrow-dark-theme** | [`./base16-tomorrow-dark-theme`](./base16-tomorrow-dark-theme) | [#17836](https://github.com/atom/atom/issues/17836) |
|
||||
| **base16-tomorrow-light-theme** | [`./base16-tomorrow-light-theme`](./base16-tomorrow-light-theme) | [#17837](https://github.com/atom/atom/issues/17837) |
|
||||
| **bookmarks** | [`atom/bookmarks`][bookmarks] | [#18273](https://github.com/atom/atom/issues/18273) |
|
||||
| **bracket-matcher** | [`atom/bracket-matcher`][bracket-matcher] | |
|
||||
| **command-palette** | [`atom/command-palette`][command-palette] | |
|
||||
| **dalek** | [`atom/dalek`][dalek] | [#17838](https://github.com/atom/atom/issues/17838) |
|
||||
| **deprecation-cop** | [`atom/deprecation-cop`][deprecation-cop] | [#17839](https://github.com/atom/atom/issues/17839) |
|
||||
| **dev-live-reload** | [`atom/dev-live-reload`][dev-live-reload] | [#17840](https://github.com/atom/atom/issues/17840) |
|
||||
| **dalek** | [`./dalek`](./dalek) | [#17838](https://github.com/atom/atom/issues/17838) |
|
||||
| **deprecation-cop** | [`./deprecation-cop`](./deprecation-cop) | [#17839](https://github.com/atom/atom/issues/17839) |
|
||||
| **dev-live-reload** | [`./dev-live-reload`](dev-live-reload) | [#17840](https://github.com/atom/atom/issues/17840) |
|
||||
| **encoding-selector** | [`atom/encoding-selector`][encoding-selector] | [#17841](https://github.com/atom/atom/issues/17841) |
|
||||
| **exception-reporting** | [`atom/exception-reporting`][exception-reporting] | [#17842](https://github.com/atom/atom/issues/17842) |
|
||||
| **exception-reporting** | [`./exception-reporting`](./exception-reporting) | [#17842](https://github.com/atom/atom/issues/17842) |
|
||||
| **find-and-replace** | [`atom/find-and-replace`][find-and-replace] | |
|
||||
| **fuzzy-finder** | [`atom/fuzzy-finder`][fuzzy-finder] | |
|
||||
| **github** | [`atom/github`][github] | |
|
||||
| **git-diff** | [`./packages/git-diff`](./git-diff) | [#17843](https://github.com/atom/atom/issues/17843) |
|
||||
| **go-to-line** | [`atom/go-to-line`][go-to-line] | [#17844](https://github.com/atom/atom/issues/17844) |
|
||||
| **grammar-selector** | [`atom/grammar-selector`][grammar-selector] | [#17845](https://github.com/atom/atom/issues/17845) |
|
||||
| **image-view** | [`atom/image-view`][image-view] | |
|
||||
| **incompatible-packages** | [`atom/incompatible-packages`][incompatible-packages] | [#17846](https://github.com/atom/atom/issues/17846) |
|
||||
| **keybinding-resolver** | [`atom/keybinding-resolver`][keybinding-resolver] | |
|
||||
| **git-diff** | [`./git-diff`](./git-diff) | [#17843](https://github.com/atom/atom/issues/17843) |
|
||||
| **go-to-line** | [`./go-to-line`](./go-to-line) | [#17844](https://github.com/atom/atom/issues/17844) |
|
||||
| **grammar-selector** | [`./grammar-selector`](./grammar-selector) | [#17845](https://github.com/atom/atom/issues/17845) |
|
||||
| **image-view** | [`atom/image-view`][image-view] | [#18274](https://github.com/atom/atom/issues/18274) |
|
||||
| **incompatible-packages** | [`./incompatible-packages`](./incompatible-packages) | [#17846](https://github.com/atom/atom/issues/17846) |
|
||||
| **keybinding-resolver** | [`atom/keybinding-resolver`][keybinding-resolver] | [#18275](https://github.com/atom/atom/issues/18275) |
|
||||
| **language-c** | [`atom/language-c`][language-c] | |
|
||||
| **language-clojure** | [`atom/language-clojure`][language-clojure] | |
|
||||
| **language-coffee-script** | [`atom/language-coffee-script`][language-coffee-script] | |
|
||||
@@ -63,6 +63,7 @@ See [RFC 003](https://github.com/atom/atom/blob/master/docs/rfcs/003-consolidate
|
||||
| **language-python** | [`atom/language-python`][language-python] | |
|
||||
| **language-ruby** | [`atom/language-ruby`][language-ruby] | |
|
||||
| **language-ruby-on-rails** | [`atom/language-ruby-on-rails`][language-ruby-on-rails] | |
|
||||
| **language-rust-bundled** | [`./language-rust-bundled`](./language-rust-bundled) | |
|
||||
| **language-sass** | [`atom/language-sass`][language-sass] | |
|
||||
| **language-shellscript** | [`atom/language-shellscript`][language-shellscript] | |
|
||||
| **language-source** | [`atom/language-source`][language-source] | |
|
||||
@@ -73,38 +74,34 @@ See [RFC 003](https://github.com/atom/atom/blob/master/docs/rfcs/003-consolidate
|
||||
| **language-typescript** | [`atom/language-typescript`][language-typescript] | |
|
||||
| **language-xml** | [`atom/language-xml`][language-xml] | |
|
||||
| **language-yaml** | [`atom/language-yaml`][language-yaml] | |
|
||||
| **line-ending-selector** | [`atom/line-ending-selector`][line-ending-selector] | [#17847](https://github.com/atom/atom/issues/17847) |
|
||||
| **link** | [`atom/link`][link] | [#17848](https://github.com/atom/atom/issues/17848) |
|
||||
| **line-ending-selector** | [`./packages/line-ending-selector`](./line-ending-selector) | [#17847](https://github.com/atom/atom/issues/17847) |
|
||||
| **link** | [`./link`](./link) | [#17848](https://github.com/atom/atom/issues/17848) |
|
||||
| **markdown-preview** | [`atom/markdown-preview`][markdown-preview] | |
|
||||
| **metrics** | [`atom/metrics`][metrics] | |
|
||||
| **notifications** | [`atom/notifications`][notifications] | |
|
||||
| **one-dark-syntax** | [`./packages/one-dark-syntax`](./one-dark-syntax) | [#17853](https://github.com/atom/atom/issues/17853) |
|
||||
| **one-dark-ui** | [`./packages/one-dark-ui`](./one-dark-ui) | [#17854](https://github.com/atom/atom/issues/17854) |
|
||||
| **one-light-syntax** | [`./packages/one-light-syntax`](./one-light-syntax) | [#17855](https://github.com/atom/atom/issues/17855) |
|
||||
| **one-light-ui** | [`./packages/one-light-ui`](./one-light-ui) | [#17856](https://github.com/atom/atom/issues/17856) |
|
||||
| **open-on-github** | [`atom/open-on-github`][open-on-github] | |
|
||||
| **package-generator** | [`atom/package-generator`][package-generator] | |
|
||||
| **metrics** | [`atom/metrics`][metrics] | [#18276](https://github.com/atom/atom/issues/18276) |
|
||||
| **notifications** | [`atom/notifications`][notifications] | [#18277](https://github.com/atom/atom/issues/18277) |
|
||||
| **one-dark-syntax** | [`./one-dark-syntax`](./one-dark-syntax) | [#17853](https://github.com/atom/atom/issues/17853) |
|
||||
| **one-dark-ui** | [`./one-dark-ui`](./one-dark-ui) | [#17854](https://github.com/atom/atom/issues/17854) |
|
||||
| **one-light-syntax** | [`./one-light-syntax`](./one-light-syntax) | [#17855](https://github.com/atom/atom/issues/17855) |
|
||||
| **one-light-ui** | [`./one-light-ui`](./one-light-ui) | [#17856](https://github.com/atom/atom/issues/17856) |
|
||||
| **open-on-github** | [`atom/open-on-github`][open-on-github] | [#18278](https://github.com/atom/atom/issues/18278) |
|
||||
| **package-generator** | [`atom/package-generator`][package-generator] | [#18279](https://github.com/atom/atom/issues/18279) |
|
||||
| **settings-view** | [`atom/settings-view`][settings-view] | |
|
||||
| **snippets** | [`atom/snippets`][snippets] | |
|
||||
| **solarized-dark-syntax** | [`atom/solarized-dark-syntax`][solarized-dark-syntax] | |
|
||||
| **solarized-light-syntax** | [`atom/solarized-light-syntax`][solarized-light-syntax] | |
|
||||
| **solarized-dark-syntax** | [`./solarized-dark-syntax`](./solarized-dark-syntax) | [#18280](https://github.com/atom/atom/issues/18280) |
|
||||
| **solarized-light-syntax** | [`./solarized-light-syntax`](./solarized-light-syntax) | [#18281](https://github.com/atom/atom/issues/18281) |
|
||||
| **spell-check** | [`atom/spell-check`][spell-check] | |
|
||||
| **status-bar** | [`atom/status-bar`][status-bar] | |
|
||||
| **styleguide** | [`atom/styleguide`][styleguide] | |
|
||||
| **status-bar** | [`atom/status-bar`][status-bar] | [#18282](https://github.com/atom/atom/issues/18282) |
|
||||
| **styleguide** | [`atom/styleguide`][styleguide] | [#18283](https://github.com/atom/atom/issues/18283) |
|
||||
| **symbols-view** | [`atom/symbols-view`][symbols-view] | |
|
||||
| **tabs** | [`atom/tabs`][tabs] | |
|
||||
| **timecop** | [`atom/timecop`][timecop] | |
|
||||
| **timecop** | [`atom/timecop`][timecop] | [#18272](https://github.com/atom/atom/issues/18272) |
|
||||
| **tree-view** | [`atom/tree-view`][tree-view] | |
|
||||
| **update-package-dependencies** | [`atom/update-package-dependencies`][update-package-dependencies] | |
|
||||
| **welcome** | [`atom/welcome`][welcome] | |
|
||||
| **update-package-dependencies** | [`atom/update-package-dependencies`][update-package-dependencies] | [#18284](https://github.com/atom/atom/issues/18284) |
|
||||
| **welcome** | [`atom/welcome`][welcome] | [#18285](https://github.com/atom/atom/issues/18285) |
|
||||
| **whitespace** | [`atom/whitespace`][whitespace] | |
|
||||
| **wrap-guide** | [`atom/wrap-guide`][wrap-guide] | |
|
||||
| **wrap-guide** | [`atom/wrap-guide`][wrap-guide] | [#18286](https://github.com/atom/atom/issues/18286) |
|
||||
|
||||
[archive-view]: https://github.com/atom/archive-view
|
||||
[atom-dark-syntax]: https://github.com/atom/atom-dark-syntax
|
||||
[atom-dark-ui]: https://github.com/atom/atom-dark-ui
|
||||
[atom-light-syntax]: https://github.com/atom/atom-light-syntax
|
||||
[atom-light-ui]: https://github.com/atom/atom-light-ui
|
||||
[autocomplete-atom-api]: https://github.com/atom/autocomplete-atom-api
|
||||
[autocomplete-css]: https://github.com/atom/autocomplete-css
|
||||
[autocomplete-html]: https://github.com/atom/autocomplete-html
|
||||
@@ -112,23 +109,14 @@ See [RFC 003](https://github.com/atom/atom/blob/master/docs/rfcs/003-consolidate
|
||||
[autocomplete-snippets]: https://github.com/atom/autocomplete-snippets
|
||||
[autosave]: https://github.com/atom/autosave
|
||||
[background-tips]: https://github.com/atom/background-tips
|
||||
[base16-tomorrow-dark-theme]: https://github.com/atom/base16-tomorrow-dark-theme
|
||||
[base16-tomorrow-light-theme]: https://github.com/atom/base16-tomorrow-light-theme
|
||||
[bookmarks]: https://github.com/atom/bookmarks
|
||||
[bracket-matcher]: https://github.com/atom/bracket-matcher
|
||||
[command-palette]: https://github.com/atom/command-palette
|
||||
[dalek]: https://github.com/atom/dalek
|
||||
[deprecation-cop]: https://github.com/atom/deprecation-cop
|
||||
[dev-live-reload]: https://github.com/atom/dev-live-reload
|
||||
[encoding-selector]: https://github.com/atom/encoding-selector
|
||||
[exception-reporting]: https://github.com/atom/exception-reporting
|
||||
[find-and-replace]: https://github.com/atom/find-and-replace
|
||||
[fuzzy-finder]: https://github.com/atom/fuzzy-finder
|
||||
[github]: https://github.com/atom/github
|
||||
[go-to-line]: https://github.com/atom/go-to-line
|
||||
[grammar-selector]: https://github.com/atom/grammar-selector
|
||||
[image-view]: https://github.com/atom/image-view
|
||||
[incompatible-packages]: https://github.com/atom/incompatible-packages
|
||||
[keybinding-resolver]: https://github.com/atom/keybinding-resolver
|
||||
[language-c]: https://github.com/atom/language-c
|
||||
[language-clojure]: https://github.com/atom/language-clojure
|
||||
@@ -163,8 +151,6 @@ See [RFC 003](https://github.com/atom/atom/blob/master/docs/rfcs/003-consolidate
|
||||
[language-typescript]: https://github.com/atom/language-typescript
|
||||
[language-xml]: https://github.com/atom/language-xml
|
||||
[language-yaml]: https://github.com/atom/language-yaml
|
||||
[line-ending-selector]: https://github.com/atom/line-ending-selector
|
||||
[link]: https://github.com/atom/link
|
||||
[markdown-preview]: https://github.com/atom/markdown-preview
|
||||
[metrics]: https://github.com/atom/metrics
|
||||
[notifications]: https://github.com/atom/notifications
|
||||
@@ -172,8 +158,6 @@ See [RFC 003](https://github.com/atom/atom/blob/master/docs/rfcs/003-consolidate
|
||||
[package-generator]: https://github.com/atom/package-generator
|
||||
[settings-view]: https://github.com/atom/settings-view
|
||||
[snippets]: https://github.com/atom/snippets
|
||||
[solarized-dark-syntax]: https://github.com/atom/solarized-dark-syntax
|
||||
[solarized-light-syntax]: https://github.com/atom/solarized-light-syntax
|
||||
[spell-check]: https://github.com/atom/spell-check
|
||||
[status-bar]: https://github.com/atom/status-bar
|
||||
[styleguide]: https://github.com/atom/styleguide
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {CompositeDisposable, Emitter} = require('atom')
|
||||
const { CompositeDisposable, Emitter } = require('atom')
|
||||
const AboutView = require('./components/about-view')
|
||||
|
||||
// Deferred requires
|
||||
@@ -14,16 +14,22 @@ module.exports = class About {
|
||||
aboutView: null
|
||||
}
|
||||
|
||||
this.subscriptions.add(atom.workspace.addOpener((uriToOpen) => {
|
||||
if (uriToOpen === this.state.uri) {
|
||||
return this.deserialize()
|
||||
}
|
||||
}))
|
||||
this.subscriptions.add(
|
||||
atom.workspace.addOpener(uriToOpen => {
|
||||
if (uriToOpen === this.state.uri) {
|
||||
return this.deserialize()
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
this.subscriptions.add(atom.commands.add('atom-workspace', 'about:view-release-notes', () => {
|
||||
shell = shell || require('electron').shell
|
||||
shell.openExternal(this.state.updateManager.getReleaseNotesURLForCurrentVersion())
|
||||
}))
|
||||
this.subscriptions.add(
|
||||
atom.commands.add('atom-workspace', 'about:view-release-notes', () => {
|
||||
shell = shell || require('electron').shell
|
||||
shell.openExternal(
|
||||
this.state.updateManager.getReleaseNotesURLForCurrentVersion()
|
||||
)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
destroy () {
|
||||
@@ -31,14 +37,14 @@ module.exports = class About {
|
||||
this.views.aboutView = null
|
||||
|
||||
if (this.state.updateManager) this.state.updateManager.dispose()
|
||||
this.setState({updateManager: null})
|
||||
this.setState({ updateManager: null })
|
||||
|
||||
this.subscriptions.dispose()
|
||||
}
|
||||
|
||||
setState (newState) {
|
||||
if (newState && typeof newState === 'object') {
|
||||
let {state} = this
|
||||
let { state } = this
|
||||
this.state = Object.assign({}, state, newState)
|
||||
|
||||
this.didChange()
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
const {CompositeDisposable} = require('atom')
|
||||
const { CompositeDisposable } = require('atom')
|
||||
const etch = require('etch')
|
||||
const EtchComponent = require('../etch-component')
|
||||
|
||||
const $ = etch.dom
|
||||
|
||||
module.exports =
|
||||
class AboutStatusBar extends EtchComponent {
|
||||
module.exports = class AboutStatusBar extends EtchComponent {
|
||||
constructor () {
|
||||
super()
|
||||
this.subscriptions = new CompositeDisposable()
|
||||
|
||||
this.subscriptions.add(atom.tooltips.add(this.element, {title: 'An update will be installed the next time Atom is relaunched.<br/><br/>Click the squirrel icon for more information.'}))
|
||||
this.subscriptions.add(
|
||||
atom.tooltips.add(this.element, {
|
||||
title:
|
||||
'An update will be installed the next time Atom is relaunched.<br/><br/>Click the squirrel icon for more information.'
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
handleClick () {
|
||||
@@ -18,8 +22,12 @@ class AboutStatusBar extends EtchComponent {
|
||||
}
|
||||
|
||||
render () {
|
||||
return $.div({className: 'about-release-notes inline-block', onclick: this.handleClick.bind(this)},
|
||||
$.span({type: 'button', className: 'icon icon-squirrel'})
|
||||
return $.div(
|
||||
{
|
||||
className: 'about-release-notes inline-block',
|
||||
onclick: this.handleClick.bind(this)
|
||||
},
|
||||
$.span({ type: 'button', className: 'icon icon-squirrel' })
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {Disposable} = require('atom')
|
||||
const { Disposable } = require('atom')
|
||||
const etch = require('etch')
|
||||
const shell = require('shell')
|
||||
const AtomLogo = require('./atom-logo')
|
||||
@@ -7,8 +7,7 @@ const UpdateView = require('./update-view')
|
||||
|
||||
const $ = etch.dom
|
||||
|
||||
module.exports =
|
||||
class AboutView extends EtchComponent {
|
||||
module.exports = class AboutView extends EtchComponent {
|
||||
handleAtomVersionClick (e) {
|
||||
e.preventDefault()
|
||||
atom.clipboard.write(this.props.currentAtomVersion)
|
||||
@@ -31,12 +30,17 @@ class AboutView extends EtchComponent {
|
||||
|
||||
handleReleaseNotesClick (e) {
|
||||
e.preventDefault()
|
||||
shell.openExternal(this.props.updateManager.getReleaseNotesURLForAvailableVersion())
|
||||
shell.openExternal(
|
||||
this.props.updateManager.getReleaseNotesURLForAvailableVersion()
|
||||
)
|
||||
}
|
||||
|
||||
handleLicenseClick (e) {
|
||||
e.preventDefault()
|
||||
atom.commands.dispatch(atom.views.getView(atom.workspace), 'application:open-license')
|
||||
atom.commands.dispatch(
|
||||
atom.views.getView(atom.workspace),
|
||||
'application:open-license'
|
||||
)
|
||||
}
|
||||
|
||||
handleTermsOfUseClick (e) {
|
||||
@@ -46,7 +50,9 @@ class AboutView extends EtchComponent {
|
||||
|
||||
handleHowToUpdateClick (e) {
|
||||
e.preventDefault()
|
||||
shell.openExternal('https://flight-manual.atom.io/getting-started/sections/installing-atom/')
|
||||
shell.openExternal(
|
||||
'https://flight-manual.atom.io/getting-started/sections/installing-atom/'
|
||||
)
|
||||
}
|
||||
|
||||
handleShowMoreClick (e) {
|
||||
@@ -66,39 +72,87 @@ class AboutView extends EtchComponent {
|
||||
}
|
||||
|
||||
render () {
|
||||
return $.div({className: 'pane-item native-key-bindings about'},
|
||||
$.div({className: 'about-container'},
|
||||
$.header({className: 'about-header'},
|
||||
$.a({className: 'about-atom-io', href: 'https://atom.io'},
|
||||
return $.div(
|
||||
{ className: 'pane-item native-key-bindings about' },
|
||||
$.div(
|
||||
{ className: 'about-container' },
|
||||
$.header(
|
||||
{ className: 'about-header' },
|
||||
$.a(
|
||||
{ className: 'about-atom-io', href: 'https://atom.io' },
|
||||
$(AtomLogo)
|
||||
),
|
||||
$.div({className: 'about-header-info'},
|
||||
$.span({className: 'about-version-container inline-block atom', onclick: this.handleAtomVersionClick.bind(this)},
|
||||
$.span({className: 'about-version'}, `${this.props.currentAtomVersion} ${process.arch}`),
|
||||
$.span({className: 'icon icon-clippy about-copy-version'})
|
||||
$.div(
|
||||
{ className: 'about-header-info' },
|
||||
$.span(
|
||||
{
|
||||
className: 'about-version-container inline-block atom',
|
||||
onclick: this.handleAtomVersionClick.bind(this)
|
||||
},
|
||||
$.span(
|
||||
{ className: 'about-version' },
|
||||
`${this.props.currentAtomVersion} ${process.arch}`
|
||||
),
|
||||
$.span({ className: 'icon icon-clippy about-copy-version' })
|
||||
),
|
||||
$.a({className: 'about-header-release-notes', onclick: this.handleReleaseNotesClick.bind(this)}, 'Release Notes')
|
||||
$.a(
|
||||
{
|
||||
className: 'about-header-release-notes',
|
||||
onclick: this.handleReleaseNotesClick.bind(this)
|
||||
},
|
||||
'Release Notes'
|
||||
)
|
||||
),
|
||||
$.span({className: 'about-version-container inline-block show-more-expand', onclick: this.handleShowMoreClick.bind(this)},
|
||||
$.span({className: 'about-more-expand'}, 'Show more')
|
||||
$.span(
|
||||
{
|
||||
className:
|
||||
'about-version-container inline-block show-more-expand',
|
||||
onclick: this.handleShowMoreClick.bind(this)
|
||||
},
|
||||
$.span({ className: 'about-more-expand' }, 'Show more')
|
||||
),
|
||||
$.div({className: 'show-more hidden about-more-info'},
|
||||
$.div({className: 'about-more-info'},
|
||||
$.span({className: 'about-version-container inline-block electron', onclick: this.handleElectronVersionClick.bind(this)},
|
||||
$.span({className: 'about-more-version'}, `Electron: ${this.props.currentElectronVersion} `),
|
||||
$.span({className: 'icon icon-clippy about-copy-version'})
|
||||
$.div(
|
||||
{ className: 'show-more hidden about-more-info' },
|
||||
$.div(
|
||||
{ className: 'about-more-info' },
|
||||
$.span(
|
||||
{
|
||||
className: 'about-version-container inline-block electron',
|
||||
onclick: this.handleElectronVersionClick.bind(this)
|
||||
},
|
||||
$.span(
|
||||
{ className: 'about-more-version' },
|
||||
`Electron: ${this.props.currentElectronVersion} `
|
||||
),
|
||||
$.span({ className: 'icon icon-clippy about-copy-version' })
|
||||
)
|
||||
),
|
||||
$.div({className: 'about-more-info'},
|
||||
$.span({className: 'about-version-container inline-block chrome', onclick: this.handleChromeVersionClick.bind(this)},
|
||||
$.span({className: 'about-more-version'}, `Chrome: ${this.props.currentChromeVersion} `),
|
||||
$.span({className: 'icon icon-clippy about-copy-version'})
|
||||
$.div(
|
||||
{ className: 'about-more-info' },
|
||||
$.span(
|
||||
{
|
||||
className: 'about-version-container inline-block chrome',
|
||||
onclick: this.handleChromeVersionClick.bind(this)
|
||||
},
|
||||
$.span(
|
||||
{ className: 'about-more-version' },
|
||||
`Chrome: ${this.props.currentChromeVersion} `
|
||||
),
|
||||
$.span({ className: 'icon icon-clippy about-copy-version' })
|
||||
)
|
||||
),
|
||||
$.div({className: 'about-more-info'},
|
||||
$.span({className: 'about-version-container inline-block node', onclick: this.handleNodeVersionClick.bind(this)},
|
||||
$.span({className: 'about-more-version'}, `Node: ${this.props.currentNodeVersion} `),
|
||||
$.span({className: 'icon icon-clippy about-copy-version'})
|
||||
$.div(
|
||||
{ className: 'about-more-info' },
|
||||
$.span(
|
||||
{
|
||||
className: 'about-version-container inline-block node',
|
||||
onclick: this.handleNodeVersionClick.bind(this)
|
||||
},
|
||||
$.span(
|
||||
{ className: 'about-more-version' },
|
||||
`Node: ${this.props.currentNodeVersion} `
|
||||
),
|
||||
$.span({ className: 'icon icon-clippy about-copy-version' })
|
||||
)
|
||||
)
|
||||
)
|
||||
@@ -112,24 +166,43 @@ class AboutView extends EtchComponent {
|
||||
viewUpdateInstructions: this.handleHowToUpdateClick.bind(this)
|
||||
}),
|
||||
|
||||
$.div({className: 'about-actions group-item'},
|
||||
$.div({className: 'btn-group'},
|
||||
$.button({className: 'btn view-license', onclick: this.handleLicenseClick.bind(this)}, 'License'),
|
||||
$.button({className: 'btn terms-of-use', onclick: this.handleTermsOfUseClick.bind(this)}, 'Terms of Use')
|
||||
$.div(
|
||||
{ className: 'about-actions group-item' },
|
||||
$.div(
|
||||
{ className: 'btn-group' },
|
||||
$.button(
|
||||
{
|
||||
className: 'btn view-license',
|
||||
onclick: this.handleLicenseClick.bind(this)
|
||||
},
|
||||
'License'
|
||||
),
|
||||
$.button(
|
||||
{
|
||||
className: 'btn terms-of-use',
|
||||
onclick: this.handleTermsOfUseClick.bind(this)
|
||||
},
|
||||
'Terms of Use'
|
||||
)
|
||||
)
|
||||
),
|
||||
|
||||
$.div({className: 'about-love group-start'},
|
||||
$.span({className: 'icon icon-code'}),
|
||||
$.span({className: 'inline'}, ' with '),
|
||||
$.span({className: 'icon icon-heart'}),
|
||||
$.span({className: 'inline'}, ' by '),
|
||||
$.a({className: 'icon icon-logo-github', href: 'https://github.com'})
|
||||
$.div(
|
||||
{ className: 'about-love group-start' },
|
||||
$.span({ className: 'icon icon-code' }),
|
||||
$.span({ className: 'inline' }, ' with '),
|
||||
$.span({ className: 'icon icon-heart' }),
|
||||
$.span({ className: 'inline' }, ' by '),
|
||||
$.a({ className: 'icon icon-logo-github', href: 'https://github.com' })
|
||||
),
|
||||
|
||||
$.div({className: 'about-credits group-item'},
|
||||
$.span({className: 'inline'}, 'And the awesome '),
|
||||
$.a({href: 'https://github.com/atom/atom/contributors'}, 'Atom Community')
|
||||
$.div(
|
||||
{ className: 'about-credits group-item' },
|
||||
$.span({ className: 'inline' }, 'And the awesome '),
|
||||
$.a(
|
||||
{ href: 'https://github.com/atom/atom/contributors' },
|
||||
'Atom Community'
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -3,23 +3,74 @@ const EtchComponent = require('../etch-component')
|
||||
|
||||
const $ = etch.dom
|
||||
|
||||
module.exports =
|
||||
class AtomLogo extends EtchComponent {
|
||||
module.exports = class AtomLogo extends EtchComponent {
|
||||
render () {
|
||||
return $.svg({className: 'about-logo', width: '330px', height: '68px', viewBox: '0 0 330 68'},
|
||||
$.g({stroke: 'none', 'stroke-width': '1', fill: 'none', 'fill-rule': 'evenodd'},
|
||||
$.g({transform: 'translate(2.000000, 1.000000)'},
|
||||
$.g({transform: 'translate(96.000000, 8.000000)', fill: 'currentColor'},
|
||||
$.path({d: 'M185.498,3.399 C185.498,2.417 186.34,1.573 187.324,1.573 L187.674,1.573 C188.447,1.573 189.01,1.995 189.5,2.628 L208.676,30.862 L227.852,2.628 C228.272,1.995 228.905,1.573 229.676,1.573 L230.028,1.573 C231.01,1.573 231.854,2.417 231.854,3.399 L231.854,49.403 C231.854,50.387 231.01,51.231 230.028,51.231 C229.044,51.231 228.202,50.387 228.202,49.403 L228.202,8.246 L210.151,34.515 C209.729,35.148 209.237,35.428 208.606,35.428 C207.973,35.428 207.481,35.148 207.061,34.515 L189.01,8.246 L189.01,49.475 C189.01,50.457 188.237,51.231 187.254,51.231 C186.27,51.231 185.498,50.458 185.498,49.475 L185.498,3.399 L185.498,3.399 Z'}),
|
||||
$.path({d: 'M113.086,26.507 L113.086,26.367 C113.086,12.952 122.99,0.941 137.881,0.941 C152.77,0.941 162.533,12.811 162.533,26.225 L162.533,26.367 C162.533,39.782 152.629,51.792 137.74,51.792 C122.85,51.792 113.086,39.923 113.086,26.507 M158.74,26.507 L158.74,26.367 C158.74,14.216 149.89,4.242 137.74,4.242 C125.588,4.242 116.879,14.075 116.879,26.225 L116.879,26.367 C116.879,38.518 125.729,48.491 137.881,48.491 C150.031,48.491 158.74,38.658 158.74,26.507'}),
|
||||
$.path({d: 'M76.705,5.155 L60.972,5.155 C60.06,5.155 59.287,4.384 59.287,3.469 C59.287,2.556 60.059,1.783 60.972,1.783 L96.092,1.783 C97.004,1.783 97.778,2.555 97.778,3.469 C97.778,4.383 97.005,5.155 96.092,5.155 L80.358,5.155 L80.358,49.405 C80.358,50.387 79.516,51.231 78.532,51.231 C77.55,51.231 76.706,50.387 76.706,49.405 L76.706,5.155 L76.705,5.155 Z'}),
|
||||
$.path({d: 'M0.291,48.562 L21.291,3.05 C21.783,1.995 22.485,1.292 23.75,1.292 L23.891,1.292 C25.155,1.292 25.858,1.995 26.348,3.05 L47.279,48.421 C47.49,48.843 47.56,49.194 47.56,49.546 C47.56,50.458 46.788,51.231 45.803,51.231 C44.961,51.231 44.329,50.599 43.978,49.826 L38.219,37.183 L9.21,37.183 L3.45,49.897 C3.099,50.739 2.538,51.231 1.694,51.231 C0.781,51.231 0.008,50.529 0.008,49.685 C0.009,49.404 0.08,48.983 0.291,48.562 L0.291,48.562 Z M36.673,33.882 L23.749,5.437 L10.755,33.882 L36.673,33.882 L36.673,33.882 Z'})
|
||||
return $.svg(
|
||||
{
|
||||
className: 'about-logo',
|
||||
width: '330px',
|
||||
height: '68px',
|
||||
viewBox: '0 0 330 68'
|
||||
},
|
||||
$.g(
|
||||
{
|
||||
stroke: 'none',
|
||||
'stroke-width': '1',
|
||||
fill: 'none',
|
||||
'fill-rule': 'evenodd'
|
||||
},
|
||||
$.g(
|
||||
{ transform: 'translate(2.000000, 1.000000)' },
|
||||
$.g(
|
||||
{
|
||||
transform: 'translate(96.000000, 8.000000)',
|
||||
fill: 'currentColor'
|
||||
},
|
||||
$.path({
|
||||
d:
|
||||
'M185.498,3.399 C185.498,2.417 186.34,1.573 187.324,1.573 L187.674,1.573 C188.447,1.573 189.01,1.995 189.5,2.628 L208.676,30.862 L227.852,2.628 C228.272,1.995 228.905,1.573 229.676,1.573 L230.028,1.573 C231.01,1.573 231.854,2.417 231.854,3.399 L231.854,49.403 C231.854,50.387 231.01,51.231 230.028,51.231 C229.044,51.231 228.202,50.387 228.202,49.403 L228.202,8.246 L210.151,34.515 C209.729,35.148 209.237,35.428 208.606,35.428 C207.973,35.428 207.481,35.148 207.061,34.515 L189.01,8.246 L189.01,49.475 C189.01,50.457 188.237,51.231 187.254,51.231 C186.27,51.231 185.498,50.458 185.498,49.475 L185.498,3.399 L185.498,3.399 Z'
|
||||
}),
|
||||
$.path({
|
||||
d:
|
||||
'M113.086,26.507 L113.086,26.367 C113.086,12.952 122.99,0.941 137.881,0.941 C152.77,0.941 162.533,12.811 162.533,26.225 L162.533,26.367 C162.533,39.782 152.629,51.792 137.74,51.792 C122.85,51.792 113.086,39.923 113.086,26.507 M158.74,26.507 L158.74,26.367 C158.74,14.216 149.89,4.242 137.74,4.242 C125.588,4.242 116.879,14.075 116.879,26.225 L116.879,26.367 C116.879,38.518 125.729,48.491 137.881,48.491 C150.031,48.491 158.74,38.658 158.74,26.507'
|
||||
}),
|
||||
$.path({
|
||||
d:
|
||||
'M76.705,5.155 L60.972,5.155 C60.06,5.155 59.287,4.384 59.287,3.469 C59.287,2.556 60.059,1.783 60.972,1.783 L96.092,1.783 C97.004,1.783 97.778,2.555 97.778,3.469 C97.778,4.383 97.005,5.155 96.092,5.155 L80.358,5.155 L80.358,49.405 C80.358,50.387 79.516,51.231 78.532,51.231 C77.55,51.231 76.706,50.387 76.706,49.405 L76.706,5.155 L76.705,5.155 Z'
|
||||
}),
|
||||
$.path({
|
||||
d:
|
||||
'M0.291,48.562 L21.291,3.05 C21.783,1.995 22.485,1.292 23.75,1.292 L23.891,1.292 C25.155,1.292 25.858,1.995 26.348,3.05 L47.279,48.421 C47.49,48.843 47.56,49.194 47.56,49.546 C47.56,50.458 46.788,51.231 45.803,51.231 C44.961,51.231 44.329,50.599 43.978,49.826 L38.219,37.183 L9.21,37.183 L3.45,49.897 C3.099,50.739 2.538,51.231 1.694,51.231 C0.781,51.231 0.008,50.529 0.008,49.685 C0.009,49.404 0.08,48.983 0.291,48.562 L0.291,48.562 Z M36.673,33.882 L23.749,5.437 L10.755,33.882 L36.673,33.882 L36.673,33.882 Z'
|
||||
})
|
||||
),
|
||||
$.g({},
|
||||
$.path({d: 'M40.363,32.075 C40.874,34.44 39.371,36.77 37.006,37.282 C34.641,37.793 32.311,36.29 31.799,33.925 C31.289,31.56 32.791,29.23 35.156,28.718 C37.521,28.207 39.851,29.71 40.363,32.075', fill: 'currentColor'}),
|
||||
$.path({d: 'M48.578,28.615 C56.851,45.587 58.558,61.581 52.288,64.778 C45.822,68.076 33.326,56.521 24.375,38.969 C15.424,21.418 13.409,4.518 19.874,1.221 C22.689,-0.216 26.648,1.166 30.959,4.629', stroke: 'currentColor', 'stroke-width': '3.08', 'stroke-linecap': 'round'}),
|
||||
$.path({d: 'M7.64,39.45 C2.806,36.94 -0.009,33.915 0.154,30.79 C0.531,23.542 16.787,18.497 36.462,19.52 C56.137,20.544 71.781,27.249 71.404,34.497 C71.241,37.622 68.127,40.338 63.06,42.333', stroke: 'currentColor', 'stroke-width': '3.08', 'stroke-linecap': 'round'}),
|
||||
$.path({d: 'M28.828,59.354 C23.545,63.168 18.843,64.561 15.902,62.653 C9.814,58.702 13.572,42.102 24.296,25.575 C35.02,9.048 48.649,-1.149 54.736,2.803 C57.566,4.639 58.269,9.208 57.133,15.232', stroke: 'currentColor', 'stroke-width': '3.08', 'stroke-linecap': 'round'})
|
||||
$.g(
|
||||
{},
|
||||
$.path({
|
||||
d:
|
||||
'M40.363,32.075 C40.874,34.44 39.371,36.77 37.006,37.282 C34.641,37.793 32.311,36.29 31.799,33.925 C31.289,31.56 32.791,29.23 35.156,28.718 C37.521,28.207 39.851,29.71 40.363,32.075',
|
||||
fill: 'currentColor'
|
||||
}),
|
||||
$.path({
|
||||
d:
|
||||
'M48.578,28.615 C56.851,45.587 58.558,61.581 52.288,64.778 C45.822,68.076 33.326,56.521 24.375,38.969 C15.424,21.418 13.409,4.518 19.874,1.221 C22.689,-0.216 26.648,1.166 30.959,4.629',
|
||||
stroke: 'currentColor',
|
||||
'stroke-width': '3.08',
|
||||
'stroke-linecap': 'round'
|
||||
}),
|
||||
$.path({
|
||||
d:
|
||||
'M7.64,39.45 C2.806,36.94 -0.009,33.915 0.154,30.79 C0.531,23.542 16.787,18.497 36.462,19.52 C56.137,20.544 71.781,27.249 71.404,34.497 C71.241,37.622 68.127,40.338 63.06,42.333',
|
||||
stroke: 'currentColor',
|
||||
'stroke-width': '3.08',
|
||||
'stroke-linecap': 'round'
|
||||
}),
|
||||
$.path({
|
||||
d:
|
||||
'M28.828,59.354 C23.545,63.168 18.843,64.561 15.902,62.653 C9.814,58.702 13.572,42.102 24.296,25.575 C35.02,9.048 48.649,-1.149 54.736,2.803 C57.566,4.639 58.269,9.208 57.133,15.232',
|
||||
stroke: 'currentColor',
|
||||
'stroke-width': '3.08',
|
||||
'stroke-linecap': 'round'
|
||||
})
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -4,12 +4,14 @@ const UpdateManager = require('../update-manager')
|
||||
|
||||
const $ = etch.dom
|
||||
|
||||
module.exports =
|
||||
class UpdateView extends EtchComponent {
|
||||
module.exports = class UpdateView extends EtchComponent {
|
||||
constructor (props) {
|
||||
super(props)
|
||||
|
||||
if (this.props.updateManager.getAutoUpdatesEnabled() && this.props.updateManager.getState() === UpdateManager.State.Idle) {
|
||||
if (
|
||||
this.props.updateManager.getAutoUpdatesEnabled() &&
|
||||
this.props.updateManager.getState() === UpdateManager.State.Idle
|
||||
) {
|
||||
this.props.updateManager.checkForUpdate()
|
||||
}
|
||||
}
|
||||
@@ -19,12 +21,18 @@ class UpdateView extends EtchComponent {
|
||||
}
|
||||
|
||||
shouldUpdateActionButtonBeDisabled () {
|
||||
let {state} = this.props.updateManager
|
||||
return state === UpdateManager.State.CheckingForUpdate || state === UpdateManager.State.DownloadingUpdate
|
||||
let { state } = this.props.updateManager
|
||||
return (
|
||||
state === UpdateManager.State.CheckingForUpdate ||
|
||||
state === UpdateManager.State.DownloadingUpdate
|
||||
)
|
||||
}
|
||||
|
||||
executeUpdateAction () {
|
||||
if (this.props.updateManager.state === UpdateManager.State.UpdateAvailableToInstall) {
|
||||
if (
|
||||
this.props.updateManager.state ===
|
||||
UpdateManager.State.UpdateAvailableToInstall
|
||||
) {
|
||||
this.props.updateManager.restartAndInstallUpdate()
|
||||
} else {
|
||||
this.props.updateManager.checkForUpdate()
|
||||
@@ -36,44 +44,86 @@ class UpdateView extends EtchComponent {
|
||||
|
||||
switch (this.props.updateManager.state) {
|
||||
case UpdateManager.State.Idle:
|
||||
updateStatus = $.div({className: 'about-updates-item is-shown about-default-update-message'},
|
||||
this.props.updateManager.getAutoUpdatesEnabled() ? 'Atom will check for updates automatically' : 'Automatic updates are disabled please check manually'
|
||||
updateStatus = $.div(
|
||||
{
|
||||
className:
|
||||
'about-updates-item is-shown about-default-update-message'
|
||||
},
|
||||
this.props.updateManager.getAutoUpdatesEnabled()
|
||||
? 'Atom will check for updates automatically'
|
||||
: 'Automatic updates are disabled please check manually'
|
||||
)
|
||||
break
|
||||
case UpdateManager.State.CheckingForUpdate:
|
||||
updateStatus = $.div({className: 'about-updates-item app-checking-for-updates'},
|
||||
$.span({className: 'about-updates-label icon icon-search'}, 'Checking for updates...')
|
||||
updateStatus = $.div(
|
||||
{ className: 'about-updates-item app-checking-for-updates' },
|
||||
$.span(
|
||||
{ className: 'about-updates-label icon icon-search' },
|
||||
'Checking for updates...'
|
||||
)
|
||||
)
|
||||
break
|
||||
case UpdateManager.State.DownloadingUpdate:
|
||||
updateStatus = $.div({className: 'about-updates-item app-downloading-update'},
|
||||
$.span({className: 'loading loading-spinner-tiny inline-block'}),
|
||||
$.span({className: 'about-updates-label'}, 'Downloading update')
|
||||
updateStatus = $.div(
|
||||
{ className: 'about-updates-item app-downloading-update' },
|
||||
$.span({ className: 'loading loading-spinner-tiny inline-block' }),
|
||||
$.span({ className: 'about-updates-label' }, 'Downloading update')
|
||||
)
|
||||
break
|
||||
case UpdateManager.State.UpdateAvailableToInstall:
|
||||
updateStatus = $.div({className: 'about-updates-item app-update-available-to-install'},
|
||||
$.span({className: 'about-updates-label icon icon-squirrel'}, 'New update'),
|
||||
$.span({className: 'about-updates-version'}, this.props.availableVersion),
|
||||
$.a({className: 'about-updates-release-notes', onclick: this.props.viewUpdateReleaseNotes}, 'Release Notes')
|
||||
updateStatus = $.div(
|
||||
{ className: 'about-updates-item app-update-available-to-install' },
|
||||
$.span(
|
||||
{ className: 'about-updates-label icon icon-squirrel' },
|
||||
'New update'
|
||||
),
|
||||
$.span(
|
||||
{ className: 'about-updates-version' },
|
||||
this.props.availableVersion
|
||||
),
|
||||
$.a(
|
||||
{
|
||||
className: 'about-updates-release-notes',
|
||||
onclick: this.props.viewUpdateReleaseNotes
|
||||
},
|
||||
'Release Notes'
|
||||
)
|
||||
)
|
||||
break
|
||||
case UpdateManager.State.UpToDate:
|
||||
updateStatus = $.div({className: 'about-updates-item app-up-to-date'},
|
||||
$.span({className: 'icon icon-check'}),
|
||||
$.span({className: 'about-updates-label is-strong'}, 'Atom is up to date!')
|
||||
updateStatus = $.div(
|
||||
{ className: 'about-updates-item app-up-to-date' },
|
||||
$.span({ className: 'icon icon-check' }),
|
||||
$.span(
|
||||
{ className: 'about-updates-label is-strong' },
|
||||
'Atom is up to date!'
|
||||
)
|
||||
)
|
||||
break
|
||||
case UpdateManager.State.Unsupported:
|
||||
updateStatus = $.div({className: 'about-updates-item app-unsupported'},
|
||||
$.span({className: 'about-updates-label is-strong'}, 'Your system does not support automatic updates'),
|
||||
$.a({className: 'about-updates-instructions', onclick: this.props.viewUpdateInstructions}, 'How to update')
|
||||
updateStatus = $.div(
|
||||
{ className: 'about-updates-item app-unsupported' },
|
||||
$.span(
|
||||
{ className: 'about-updates-label is-strong' },
|
||||
'Your system does not support automatic updates'
|
||||
),
|
||||
$.a(
|
||||
{
|
||||
className: 'about-updates-instructions',
|
||||
onclick: this.props.viewUpdateInstructions
|
||||
},
|
||||
'How to update'
|
||||
)
|
||||
)
|
||||
break
|
||||
case UpdateManager.State.Error:
|
||||
updateStatus = $.div({className: 'about-updates-item app-update-error'},
|
||||
$.span({className: 'icon icon-x'}),
|
||||
$.span({className: 'about-updates-label app-error-message is-strong'}, this.props.updateManager.getErrorMessage())
|
||||
updateStatus = $.div(
|
||||
{ className: 'about-updates-item app-update-error' },
|
||||
$.span({ className: 'icon icon-x' }),
|
||||
$.span(
|
||||
{ className: 'about-updates-label app-error-message is-strong' },
|
||||
this.props.updateManager.getErrorMessage()
|
||||
)
|
||||
)
|
||||
break
|
||||
}
|
||||
@@ -82,37 +132,47 @@ class UpdateView extends EtchComponent {
|
||||
}
|
||||
|
||||
render () {
|
||||
return $.div({className: 'about-updates group-start'},
|
||||
$.div({className: 'about-updates-box'},
|
||||
$.div({className: 'about-updates-status'}, this.renderUpdateStatus()),
|
||||
return $.div(
|
||||
{ className: 'about-updates group-start' },
|
||||
$.div(
|
||||
{ className: 'about-updates-box' },
|
||||
$.div({ className: 'about-updates-status' }, this.renderUpdateStatus()),
|
||||
$.button(
|
||||
{
|
||||
className: 'btn about-update-action-button',
|
||||
disabled: this.shouldUpdateActionButtonBeDisabled(),
|
||||
onclick: this.executeUpdateAction.bind(this),
|
||||
style: {
|
||||
display: this.props.updateManager.state === UpdateManager.State.Unsupported ? 'none' : 'block'
|
||||
display:
|
||||
this.props.updateManager.state ===
|
||||
UpdateManager.State.Unsupported
|
||||
? 'none'
|
||||
: 'block'
|
||||
}
|
||||
},
|
||||
this.props.updateManager.state === 'update-available' ? 'Restart and install' : 'Check now'
|
||||
this.props.updateManager.state === 'update-available'
|
||||
? 'Restart and install'
|
||||
: 'Check now'
|
||||
)
|
||||
),
|
||||
$.div(
|
||||
{
|
||||
className: 'about-auto-updates',
|
||||
style: {
|
||||
display: this.props.updateManager.state === UpdateManager.State.Unsupported ? 'none' : 'block'
|
||||
display:
|
||||
this.props.updateManager.state === UpdateManager.State.Unsupported
|
||||
? 'none'
|
||||
: 'block'
|
||||
}
|
||||
},
|
||||
$.label({},
|
||||
$.input(
|
||||
{
|
||||
className: 'input-checkbox',
|
||||
type: 'checkbox',
|
||||
checked: this.props.updateManager.getAutoUpdatesEnabled(),
|
||||
onchange: this.handleAutoUpdateCheckbox.bind(this)
|
||||
}
|
||||
),
|
||||
$.label(
|
||||
{},
|
||||
$.input({
|
||||
className: 'input-checkbox',
|
||||
type: 'checkbox',
|
||||
checked: this.props.updateManager.getAutoUpdatesEnabled(),
|
||||
onchange: this.handleAutoUpdateCheckbox.bind(this)
|
||||
}),
|
||||
$.span({}, 'Automatically download updates')
|
||||
)
|
||||
)
|
||||
|
||||
@@ -4,8 +4,7 @@ const etch = require('etch')
|
||||
Public: Abstract class for handling the initialization
|
||||
boilerplate of an Etch component.
|
||||
*/
|
||||
module.exports =
|
||||
class EtchComponent {
|
||||
module.exports = class EtchComponent {
|
||||
constructor (props) {
|
||||
this.props = props
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {CompositeDisposable} = require('atom')
|
||||
const { CompositeDisposable } = require('atom')
|
||||
const semver = require('semver')
|
||||
const UpdateManager = require('./update-manager')
|
||||
const About = require('./about')
|
||||
@@ -16,20 +16,33 @@ module.exports = {
|
||||
this.createModel()
|
||||
|
||||
let availableVersion = window.localStorage.getItem(AvailableUpdateVersion)
|
||||
if (atom.getReleaseChannel() === 'dev' || (availableVersion && semver.lte(availableVersion, atom.getVersion()))) {
|
||||
if (
|
||||
atom.getReleaseChannel() === 'dev' ||
|
||||
(availableVersion && semver.lte(availableVersion, atom.getVersion()))
|
||||
) {
|
||||
this.clearUpdateState()
|
||||
}
|
||||
|
||||
this.subscriptions.add(updateManager.onDidChange(() => {
|
||||
if (updateManager.getState() === UpdateManager.State.UpdateAvailableToInstall) {
|
||||
window.localStorage.setItem(AvailableUpdateVersion, updateManager.getAvailableVersion())
|
||||
this.showStatusBarIfNeeded()
|
||||
}
|
||||
}))
|
||||
this.subscriptions.add(
|
||||
updateManager.onDidChange(() => {
|
||||
if (
|
||||
updateManager.getState() ===
|
||||
UpdateManager.State.UpdateAvailableToInstall
|
||||
) {
|
||||
window.localStorage.setItem(
|
||||
AvailableUpdateVersion,
|
||||
updateManager.getAvailableVersion()
|
||||
)
|
||||
this.showStatusBarIfNeeded()
|
||||
}
|
||||
})
|
||||
)
|
||||
|
||||
this.subscriptions.add(atom.commands.add('atom-workspace', 'about:clear-update-state', () => {
|
||||
this.clearUpdateState()
|
||||
}))
|
||||
this.subscriptions.add(
|
||||
atom.commands.add('atom-workspace', 'about:clear-update-state', () => {
|
||||
this.clearUpdateState()
|
||||
})
|
||||
)
|
||||
},
|
||||
|
||||
deactivate () {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {Emitter, CompositeDisposable} = require('atom')
|
||||
const { Emitter, CompositeDisposable } = require('atom')
|
||||
|
||||
const Unsupported = 'unsupported'
|
||||
const Idle = 'idle'
|
||||
@@ -27,7 +27,7 @@ let UpdateManager = class UpdateManager {
|
||||
atom.autoUpdater.onDidBeginDownloadingUpdate(() => {
|
||||
this.setState(DownloadingUpdate)
|
||||
}),
|
||||
atom.autoUpdater.onDidCompleteDownloadingUpdate(({releaseVersion}) => {
|
||||
atom.autoUpdater.onDidCompleteDownloadingUpdate(({ releaseVersion }) => {
|
||||
this.setAvailableVersion(releaseVersion)
|
||||
}),
|
||||
atom.autoUpdater.onUpdateNotAvailable(() => {
|
||||
@@ -36,7 +36,7 @@ let UpdateManager = class UpdateManager {
|
||||
atom.autoUpdater.onUpdateError(() => {
|
||||
this.setState(ErrorState)
|
||||
}),
|
||||
atom.config.observe('core.automaticallyUpdate', (value) => {
|
||||
atom.config.observe('core.automaticallyUpdate', value => {
|
||||
this.autoUpdatesEnabled = value
|
||||
this.emitDidChange()
|
||||
})
|
||||
@@ -61,7 +61,9 @@ let UpdateManager = class UpdateManager {
|
||||
}
|
||||
|
||||
getAutoUpdatesEnabled () {
|
||||
return this.autoUpdatesEnabled && this.state !== UpdateManager.State.Unsupported
|
||||
return (
|
||||
this.autoUpdatesEnabled && this.state !== UpdateManager.State.Unsupported
|
||||
)
|
||||
}
|
||||
|
||||
setAutoUpdatesEnabled (enabled) {
|
||||
@@ -82,7 +84,9 @@ let UpdateManager = class UpdateManager {
|
||||
}
|
||||
|
||||
resetState () {
|
||||
this.state = atom.autoUpdater.platformSupportsUpdates() ? atom.autoUpdater.getState() : Unsupported
|
||||
this.state = atom.autoUpdater.platformSupportsUpdates()
|
||||
? atom.autoUpdater.getState()
|
||||
: Unsupported
|
||||
this.emitDidChange()
|
||||
}
|
||||
|
||||
@@ -128,7 +132,8 @@ let UpdateManager = class UpdateManager {
|
||||
appVersion = `v${appVersion}`
|
||||
}
|
||||
|
||||
const releaseRepo = appVersion.indexOf('nightly') > -1 ? 'atom-nightly-releases' : 'atom'
|
||||
const releaseRepo =
|
||||
appVersion.indexOf('nightly') > -1 ? 'atom-nightly-releases' : 'atom'
|
||||
return `https://github.com/atom/${releaseRepo}/releases/tag/${appVersion}`
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
const {it, fit, ffit, fffit, beforeEach, afterEach} = require('./helpers/async-spec-helpers') // eslint-disable-line no-unused-vars
|
||||
|
||||
describe('About', () => {
|
||||
let workspaceElement
|
||||
|
||||
@@ -9,7 +7,7 @@ describe('About', () => {
|
||||
spyOn(window.localStorage, 'setItem').andCallFake((key, value) => {
|
||||
storage[key] = value
|
||||
})
|
||||
spyOn(window.localStorage, 'getItem').andCallFake((key) => {
|
||||
spyOn(window.localStorage, 'getItem').andCallFake(key => {
|
||||
return storage[key]
|
||||
})
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
const {it, fit, ffit, fffit, beforeEach, afterEach, conditionPromise} = require('./helpers/async-spec-helpers') // eslint-disable-line no-unused-vars
|
||||
const { conditionPromise } = require('./helpers/async-spec-helpers')
|
||||
const MockUpdater = require('./mocks/updater')
|
||||
|
||||
describe('the status bar', () => {
|
||||
@@ -11,7 +11,7 @@ describe('the status bar', () => {
|
||||
spyOn(window.localStorage, 'setItem').andCallFake((key, value) => {
|
||||
storage[key] = value
|
||||
})
|
||||
spyOn(window.localStorage, 'getItem').andCallFake((key) => {
|
||||
spyOn(window.localStorage, 'getItem').andCallFake(key => {
|
||||
return storage[key]
|
||||
})
|
||||
spyOn(atom, 'getVersion').andCallFake(() => {
|
||||
|
||||
@@ -1,36 +1,7 @@
|
||||
/** @babel */
|
||||
|
||||
const {now} = Date
|
||||
const {setTimeout} = global
|
||||
|
||||
export function beforeEach (fn) {
|
||||
global.beforeEach(function () {
|
||||
const result = fn()
|
||||
if (result instanceof Promise) {
|
||||
waitsForPromise(() => result)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export function afterEach (fn) {
|
||||
global.afterEach(function () {
|
||||
const result = fn()
|
||||
if (result instanceof Promise) {
|
||||
waitsForPromise(() => result)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
['it', 'fit', 'ffit', 'fffit'].forEach(function (name) {
|
||||
module.exports[name] = function (description, fn) {
|
||||
global[name](description, function () {
|
||||
const result = fn()
|
||||
if (result instanceof Promise) {
|
||||
waitsForPromise(() => result)
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
const { now } = Date
|
||||
const { setTimeout } = global
|
||||
|
||||
export async function conditionPromise (condition) {
|
||||
const startTime = now()
|
||||
@@ -53,13 +24,3 @@ export function timeoutPromise (timeout) {
|
||||
setTimeout(resolve, timeout)
|
||||
})
|
||||
}
|
||||
|
||||
function waitsForPromise (fn) {
|
||||
const promise = fn()
|
||||
global.waitsFor('spec promise to resolve', function (done) {
|
||||
promise.then(done, function (error) {
|
||||
jasmine.getEnv().currentSpec.fail(error)
|
||||
done()
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
@@ -16,6 +16,8 @@ module.exports = {
|
||||
},
|
||||
|
||||
finishDownloadingUpdate (releaseVersion) {
|
||||
atom.autoUpdater.emitter.emit('did-complete-downloading-update', {releaseVersion})
|
||||
atom.autoUpdater.emitter.emit('did-complete-downloading-update', {
|
||||
releaseVersion
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,14 +9,24 @@ describe('UpdateManager', () => {
|
||||
|
||||
describe('::getReleaseNotesURLForVersion', () => {
|
||||
it('returns atom.io releases when dev version', () => {
|
||||
expect(updateManager.getReleaseNotesURLForVersion('1.7.0-dev-e44b57d')).toContain('atom.io/releases')
|
||||
expect(
|
||||
updateManager.getReleaseNotesURLForVersion('1.7.0-dev-e44b57d')
|
||||
).toContain('atom.io/releases')
|
||||
})
|
||||
|
||||
it('returns the page for the release when not a dev version', () => {
|
||||
expect(updateManager.getReleaseNotesURLForVersion('1.7.0')).toContain('atom/atom/releases/tag/v1.7.0')
|
||||
expect(updateManager.getReleaseNotesURLForVersion('v1.7.0')).toContain('atom/atom/releases/tag/v1.7.0')
|
||||
expect(updateManager.getReleaseNotesURLForVersion('1.7.0-beta10')).toContain('atom/atom/releases/tag/v1.7.0-beta10')
|
||||
expect(updateManager.getReleaseNotesURLForVersion('1.7.0-nightly10')).toContain('atom/atom-nightly-releases/releases/tag/v1.7.0-nightly10')
|
||||
expect(updateManager.getReleaseNotesURLForVersion('1.7.0')).toContain(
|
||||
'atom/atom/releases/tag/v1.7.0'
|
||||
)
|
||||
expect(updateManager.getReleaseNotesURLForVersion('v1.7.0')).toContain(
|
||||
'atom/atom/releases/tag/v1.7.0'
|
||||
)
|
||||
expect(
|
||||
updateManager.getReleaseNotesURLForVersion('1.7.0-beta10')
|
||||
).toContain('atom/atom/releases/tag/v1.7.0-beta10')
|
||||
expect(
|
||||
updateManager.getReleaseNotesURLForVersion('1.7.0-nightly10')
|
||||
).toContain('atom/atom-nightly-releases/releases/tag/v1.7.0-nightly10')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
const {shell} = require('electron')
|
||||
const {it, fit, ffit, fffit, beforeEach, afterEach} = require('./helpers/async-spec-helpers') // eslint-disable-line no-unused-vars
|
||||
const { shell } = require('electron')
|
||||
const main = require('../lib/main')
|
||||
const AboutView = require('../lib/components/about-view')
|
||||
const UpdateView = require('../lib/components/update-view')
|
||||
@@ -17,7 +16,7 @@ describe('UpdateView', () => {
|
||||
spyOn(window.localStorage, 'setItem').andCallFake((key, value) => {
|
||||
storage[key] = value
|
||||
})
|
||||
spyOn(window.localStorage, 'getItem').andCallFake((key) => {
|
||||
spyOn(window.localStorage, 'getItem').andCallFake(key => {
|
||||
return storage[key]
|
||||
})
|
||||
|
||||
@@ -45,13 +44,19 @@ describe('UpdateView', () => {
|
||||
})
|
||||
|
||||
it('hides the auto update UI and shows the update instructions link', async () => {
|
||||
expect(aboutElement.querySelector('.about-update-action-button')).not.toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-auto-updates')).not.toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button')
|
||||
).not.toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-auto-updates')
|
||||
).not.toBeVisible()
|
||||
})
|
||||
|
||||
it('opens the update instructions page when the instructions link is clicked', async () => {
|
||||
spyOn(shell, 'openExternal')
|
||||
let link = aboutElement.querySelector('.app-unsupported .about-updates-instructions')
|
||||
let link = aboutElement.querySelector(
|
||||
'.app-unsupported .about-updates-instructions'
|
||||
)
|
||||
link.click()
|
||||
|
||||
let args = shell.openExternal.mostRecentCall.args
|
||||
@@ -72,66 +77,116 @@ describe('UpdateView', () => {
|
||||
})
|
||||
|
||||
it('shows the correct panels when the app checks for updates and there is no update available', async () => {
|
||||
expect(aboutElement.querySelector('.about-default-update-message')).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
).toBeVisible()
|
||||
|
||||
MockUpdater.checkForUpdate()
|
||||
await scheduler.getNextUpdatePromise()
|
||||
expect(aboutElement.querySelector('.app-up-to-date')).not.toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-checking-for-updates')).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.app-checking-for-updates')
|
||||
).toBeVisible()
|
||||
|
||||
MockUpdater.updateNotAvailable()
|
||||
await scheduler.getNextUpdatePromise()
|
||||
expect(aboutElement.querySelector('.app-up-to-date')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-checking-for-updates')).not.toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.app-checking-for-updates')
|
||||
).not.toBeVisible()
|
||||
})
|
||||
|
||||
it('shows the correct panels when the app checks for updates and encounters an error', async () => {
|
||||
expect(aboutElement.querySelector('.about-default-update-message')).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
).toBeVisible()
|
||||
|
||||
MockUpdater.checkForUpdate()
|
||||
await scheduler.getNextUpdatePromise()
|
||||
expect(aboutElement.querySelector('.app-up-to-date')).not.toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-checking-for-updates')).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.app-checking-for-updates')
|
||||
).toBeVisible()
|
||||
|
||||
spyOn(atom.autoUpdater, 'getErrorMessage').andReturn('an error message')
|
||||
MockUpdater.updateError()
|
||||
await scheduler.getNextUpdatePromise()
|
||||
expect(aboutElement.querySelector('.app-update-error')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-error-message').textContent).toBe('an error message')
|
||||
expect(aboutElement.querySelector('.app-checking-for-updates')).not.toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-update-action-button').disabled).toBe(false)
|
||||
expect(aboutElement.querySelector('.about-update-action-button').textContent).toBe('Check now')
|
||||
expect(
|
||||
aboutElement.querySelector('.app-error-message').textContent
|
||||
).toBe('an error message')
|
||||
expect(
|
||||
aboutElement.querySelector('.app-checking-for-updates')
|
||||
).not.toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').disabled
|
||||
).toBe(false)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').textContent
|
||||
).toBe('Check now')
|
||||
})
|
||||
|
||||
it('shows the correct panels and button states when the app checks for updates and an update is downloaded', async () => {
|
||||
expect(aboutElement.querySelector('.about-default-update-message')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-update-action-button').disabled).toBe(false)
|
||||
expect(aboutElement.querySelector('.about-update-action-button').textContent).toBe('Check now')
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').disabled
|
||||
).toBe(false)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').textContent
|
||||
).toBe('Check now')
|
||||
|
||||
MockUpdater.checkForUpdate()
|
||||
await scheduler.getNextUpdatePromise()
|
||||
|
||||
expect(aboutElement.querySelector('.app-up-to-date')).not.toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-checking-for-updates')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-update-action-button').disabled).toBe(true)
|
||||
expect(aboutElement.querySelector('.about-update-action-button').textContent).toBe('Check now')
|
||||
expect(
|
||||
aboutElement.querySelector('.app-checking-for-updates')
|
||||
).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').disabled
|
||||
).toBe(true)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').textContent
|
||||
).toBe('Check now')
|
||||
|
||||
MockUpdater.downloadUpdate()
|
||||
await scheduler.getNextUpdatePromise()
|
||||
expect(aboutElement.querySelector('.app-checking-for-updates')).not.toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-downloading-update')).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.app-checking-for-updates')
|
||||
).not.toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.app-downloading-update')
|
||||
).toBeVisible()
|
||||
// TODO: at some point it would be nice to be able to cancel an update download, and then this would be a cancel button
|
||||
expect(aboutElement.querySelector('.about-update-action-button').disabled).toBe(true)
|
||||
expect(aboutElement.querySelector('.about-update-action-button').textContent).toBe('Check now')
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').disabled
|
||||
).toBe(true)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').textContent
|
||||
).toBe('Check now')
|
||||
|
||||
MockUpdater.finishDownloadingUpdate('42.0.0')
|
||||
await scheduler.getNextUpdatePromise()
|
||||
expect(aboutElement.querySelector('.app-downloading-update')).not.toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-update-available-to-install')).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.app-downloading-update')
|
||||
).not.toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.app-update-available-to-install')
|
||||
).toBeVisible()
|
||||
|
||||
expect(aboutElement.querySelector('.app-update-available-to-install .about-updates-version').textContent).toBe('42.0.0')
|
||||
expect(aboutElement.querySelector('.about-update-action-button').disabled).toBe(false)
|
||||
expect(aboutElement.querySelector('.about-update-action-button').textContent).toBe('Restart and install')
|
||||
expect(
|
||||
aboutElement.querySelector(
|
||||
'.app-update-available-to-install .about-updates-version'
|
||||
).textContent
|
||||
).toBe('42.0.0')
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').disabled
|
||||
).toBe(false)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').textContent
|
||||
).toBe('Restart and install')
|
||||
})
|
||||
|
||||
it('opens the release notes for the downloaded release when the release notes link are clicked', async () => {
|
||||
@@ -139,7 +194,9 @@ describe('UpdateView', () => {
|
||||
await scheduler.getNextUpdatePromise()
|
||||
|
||||
spyOn(shell, 'openExternal')
|
||||
let link = aboutElement.querySelector('.app-update-available-to-install .about-updates-release-notes')
|
||||
let link = aboutElement.querySelector(
|
||||
'.app-update-available-to-install .about-updates-release-notes'
|
||||
)
|
||||
link.click()
|
||||
|
||||
let args = shell.openExternal.mostRecentCall.args
|
||||
@@ -168,10 +225,18 @@ describe('UpdateView', () => {
|
||||
updateManager.resetState()
|
||||
|
||||
await scheduler.getNextUpdatePromise()
|
||||
expect(aboutElement.querySelector('.app-checking-for-updates')).not.toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-downloading-update')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-update-action-button').disabled).toBe(true)
|
||||
expect(aboutElement.querySelector('.about-update-action-button').textContent).toBe('Check now')
|
||||
expect(
|
||||
aboutElement.querySelector('.app-checking-for-updates')
|
||||
).not.toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.app-downloading-update')
|
||||
).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').disabled
|
||||
).toBe(true)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').textContent
|
||||
).toBe('Check now')
|
||||
})
|
||||
|
||||
describe('when core.automaticallyUpdate is toggled', () => {
|
||||
@@ -181,36 +246,66 @@ describe('UpdateView', () => {
|
||||
})
|
||||
|
||||
it('shows the auto update UI', async () => {
|
||||
expect(aboutElement.querySelector('.about-auto-updates input').checked).toBe(true)
|
||||
expect(aboutElement.querySelector('.about-default-update-message')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-default-update-message').textContent).toBe('Atom will check for updates automatically')
|
||||
expect(
|
||||
aboutElement.querySelector('.about-auto-updates input').checked
|
||||
).toBe(true)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
.textContent
|
||||
).toBe('Atom will check for updates automatically')
|
||||
|
||||
atom.config.set('core.automaticallyUpdate', false)
|
||||
await scheduler.getNextUpdatePromise()
|
||||
|
||||
expect(aboutElement.querySelector('.about-auto-updates input').checked).toBe(false)
|
||||
expect(aboutElement.querySelector('.about-default-update-message')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-default-update-message').textContent).toBe('Automatic updates are disabled please check manually')
|
||||
expect(
|
||||
aboutElement.querySelector('.about-auto-updates input').checked
|
||||
).toBe(false)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
.textContent
|
||||
).toBe('Automatic updates are disabled please check manually')
|
||||
})
|
||||
|
||||
it('updates config and the UI when the checkbox is used to toggle', async () => {
|
||||
expect(aboutElement.querySelector('.about-auto-updates input').checked).toBe(true)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-auto-updates input').checked
|
||||
).toBe(true)
|
||||
|
||||
aboutElement.querySelector('.about-auto-updates input').click()
|
||||
await scheduler.getNextUpdatePromise()
|
||||
|
||||
expect(atom.config.get('core.automaticallyUpdate')).toBe(false)
|
||||
expect(aboutElement.querySelector('.about-auto-updates input').checked).toBe(false)
|
||||
expect(aboutElement.querySelector('.about-default-update-message')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-default-update-message').textContent).toBe('Automatic updates are disabled please check manually')
|
||||
expect(
|
||||
aboutElement.querySelector('.about-auto-updates input').checked
|
||||
).toBe(false)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
.textContent
|
||||
).toBe('Automatic updates are disabled please check manually')
|
||||
|
||||
aboutElement.querySelector('.about-auto-updates input').click()
|
||||
await scheduler.getNextUpdatePromise()
|
||||
|
||||
expect(atom.config.get('core.automaticallyUpdate')).toBe(true)
|
||||
expect(aboutElement.querySelector('.about-auto-updates input').checked).toBe(true)
|
||||
expect(aboutElement.querySelector('.about-default-update-message')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.about-default-update-message').textContent).toBe('Atom will check for updates automatically')
|
||||
expect(
|
||||
aboutElement.querySelector('.about-auto-updates input').checked
|
||||
).toBe(true)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector('.about-default-update-message')
|
||||
.textContent
|
||||
).toBe('Atom will check for updates automatically')
|
||||
})
|
||||
|
||||
describe('checking for updates', function () {
|
||||
@@ -271,10 +366,20 @@ describe('UpdateView', () => {
|
||||
updateManager = main.model.state.updateManager
|
||||
scheduler = AboutView.getScheduler()
|
||||
|
||||
expect(aboutElement.querySelector('.app-update-available-to-install')).toBeVisible()
|
||||
expect(aboutElement.querySelector('.app-update-available-to-install .about-updates-version').textContent).toBe('42.0.0')
|
||||
expect(aboutElement.querySelector('.about-update-action-button').disabled).toBe(false)
|
||||
expect(aboutElement.querySelector('.about-update-action-button').textContent).toBe('Restart and install')
|
||||
expect(
|
||||
aboutElement.querySelector('.app-update-available-to-install')
|
||||
).toBeVisible()
|
||||
expect(
|
||||
aboutElement.querySelector(
|
||||
'.app-update-available-to-install .about-updates-version'
|
||||
).textContent
|
||||
).toBe('42.0.0')
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').disabled
|
||||
).toBe(false)
|
||||
expect(
|
||||
aboutElement.querySelector('.about-update-action-button').textContent
|
||||
).toBe('Restart and install')
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
20
packages/atom-dark-syntax/LICENSE.md
Normal file
20
packages/atom-dark-syntax/LICENSE.md
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2014 GitHub Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
9
packages/atom-dark-syntax/README.md
Normal file
9
packages/atom-dark-syntax/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Atom Dark Syntax theme
|
||||
|
||||
A dark syntax theme for Atom.
|
||||
|
||||
This theme is installed by default with Atom and can be activated by going to
|
||||
the _Themes_ section in the Settings view (`cmd-,`) and selecting it from the
|
||||
_Syntax Themes_ dropdown menu.
|
||||
|
||||

|
||||
7
packages/atom-dark-syntax/index.less
Normal file
7
packages/atom-dark-syntax/index.less
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
// Atom Dark Syntax theme
|
||||
|
||||
@import "styles/syntax-variables.less";
|
||||
|
||||
@import "styles/editor.less";
|
||||
@import "styles/syntax.less";
|
||||
11
packages/atom-dark-syntax/package.json
Normal file
11
packages/atom-dark-syntax/package.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "atom-dark-syntax",
|
||||
"theme": "syntax",
|
||||
"version": "0.29.1",
|
||||
"description": "A dark theme for syntax",
|
||||
"repository": "https://github.com/atom/atom",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"atom": ">0.50.0"
|
||||
}
|
||||
}
|
||||
50
packages/atom-dark-syntax/styles/editor.less
Normal file
50
packages/atom-dark-syntax/styles/editor.less
Normal file
@@ -0,0 +1,50 @@
|
||||
atom-text-editor {
|
||||
background-color: @syntax-background-color;
|
||||
color: @syntax-text-color;
|
||||
|
||||
.invisible-character {
|
||||
color: @syntax-invisible-character-color;
|
||||
}
|
||||
|
||||
.indent-guide {
|
||||
color: @syntax-indent-guide-color;
|
||||
}
|
||||
|
||||
.wrap-guide {
|
||||
background-color: @syntax-wrap-guide-color;
|
||||
}
|
||||
|
||||
.gutter {
|
||||
background-color: @syntax-gutter-background-color;
|
||||
}
|
||||
.gutter .cursor-line {
|
||||
background-color: @syntax-gutter-background-color-selected;
|
||||
}
|
||||
.line-number.cursor-line-no-selection {
|
||||
background-color: @syntax-gutter-background-color-selected;
|
||||
}
|
||||
|
||||
.gutter .line-number.folded,
|
||||
.gutter .line-number:after,
|
||||
.fold-marker:after {
|
||||
color: #fba0e3;
|
||||
}
|
||||
|
||||
.invisible {
|
||||
color: @syntax-text-color;
|
||||
}
|
||||
|
||||
.cursor {
|
||||
border-color: @syntax-cursor-color;
|
||||
}
|
||||
|
||||
.selection .region {
|
||||
background-color: @syntax-selection-color;
|
||||
}
|
||||
|
||||
.bracket-matcher .region {
|
||||
border-bottom: 1px solid #f8de7e;
|
||||
margin-top: -1px;
|
||||
opacity: .7;
|
||||
}
|
||||
}
|
||||
44
packages/atom-dark-syntax/styles/syntax-variables.less
Normal file
44
packages/atom-dark-syntax/styles/syntax-variables.less
Normal file
@@ -0,0 +1,44 @@
|
||||
// This defines all syntax variables that syntax themes must implement when they
|
||||
// include a syntax-variables.less file.
|
||||
|
||||
// General colors
|
||||
@syntax-text-color: #c5c8c6;
|
||||
@syntax-cursor-color: white;
|
||||
@syntax-selection-color: #444;
|
||||
@syntax-selection-flash-color: #eee;
|
||||
@syntax-background-color: #1d1f21;
|
||||
|
||||
// Guide colors
|
||||
@syntax-wrap-guide-color: rgba(197, 200, 198, .1);
|
||||
@syntax-indent-guide-color: rgba(197, 200, 198, .2);
|
||||
@syntax-invisible-character-color: rgba(197, 200, 198, .2);
|
||||
|
||||
// For find and replace markers
|
||||
@syntax-result-marker-color: #888;
|
||||
@syntax-result-marker-color-selected: white;
|
||||
|
||||
// Gutter colors
|
||||
@syntax-gutter-text-color: @syntax-text-color;
|
||||
@syntax-gutter-text-color-selected: @syntax-gutter-text-color;
|
||||
@syntax-gutter-background-color: lighten(@syntax-background-color, 5%);
|
||||
@syntax-gutter-background-color-selected: rgba(255, 255, 255, 0.14);
|
||||
|
||||
// For git diff info. i.e. in the gutter
|
||||
@syntax-color-renamed: #96CBFE;
|
||||
@syntax-color-added: #A8FF60;
|
||||
@syntax-color-modified: #E9C062;
|
||||
@syntax-color-removed: #CC6666;
|
||||
|
||||
// For language entity colors
|
||||
@syntax-color-variable: #C6C5FE;
|
||||
@syntax-color-constant: #99CC99;
|
||||
@syntax-color-property: #EDEDED;
|
||||
@syntax-color-value: #F9EE98;
|
||||
@syntax-color-function: #DAD085;
|
||||
@syntax-color-method: @syntax-color-function;
|
||||
@syntax-color-class: #62B1FE;
|
||||
@syntax-color-keyword: #96CBFE;
|
||||
@syntax-color-tag: #96CBFE;
|
||||
@syntax-color-attribute: #FF73FD;
|
||||
@syntax-color-import: @syntax-color-keyword;
|
||||
@syntax-color-snippet: @syntax-color-constant;
|
||||
283
packages/atom-dark-syntax/styles/syntax.less
Normal file
283
packages/atom-dark-syntax/styles/syntax.less
Normal file
@@ -0,0 +1,283 @@
|
||||
.syntax--comment {
|
||||
color: #8a8a8a;
|
||||
}
|
||||
|
||||
.syntax--entity {
|
||||
color: #FFD2A7;
|
||||
|
||||
&.syntax--name.syntax--type {
|
||||
text-decoration: underline;
|
||||
color: #FFFFB6;
|
||||
}
|
||||
|
||||
&.syntax--other.syntax--inherited-class {
|
||||
color: #9B5C2E;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--keyword {
|
||||
color: #96CBFE;
|
||||
|
||||
&.syntax--control {
|
||||
color: #96CBFE;
|
||||
}
|
||||
|
||||
&.syntax--operator {
|
||||
color: #EDEDED;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--storage {
|
||||
color: #CFCB90;
|
||||
|
||||
&.syntax--modifier {
|
||||
color: #96CBFE;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--constant {
|
||||
color: #99CC99;
|
||||
|
||||
&.syntax--numeric {
|
||||
color: #FF73FD;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--variable {
|
||||
color: #C6C5FE;
|
||||
}
|
||||
|
||||
.syntax--invalid.syntax--deprecated {
|
||||
text-decoration: underline;
|
||||
color: #FD5FF1;
|
||||
}
|
||||
|
||||
.syntax--invalid.syntax--illegal {
|
||||
color: #FD5FF1;
|
||||
background-color: rgba(86, 45, 86, 0.75);
|
||||
}
|
||||
|
||||
// String interpolation in Ruby, CoffeeScript, and others
|
||||
.syntax--string {
|
||||
.syntax--source,
|
||||
.syntax--meta.syntax--embedded.syntax--line {
|
||||
color: #EDEDED;
|
||||
}
|
||||
|
||||
.syntax--punctuation.syntax--section.syntax--embedded {
|
||||
color: #00A0A0;
|
||||
|
||||
.syntax--source {
|
||||
color: #00A0A0; // Required for the end of embedded strings in Ruby #716
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--string {
|
||||
color: #A8FF60;
|
||||
|
||||
.syntax--constant {
|
||||
color: #00A0A0;
|
||||
}
|
||||
|
||||
&.syntax--regexp {
|
||||
color: #E9C062;
|
||||
|
||||
.syntax--constant.syntax--character.syntax--escape,
|
||||
.syntax--source.syntax--ruby.syntax--embedded,
|
||||
.syntax--string.syntax--regexp.syntax--arbitrary-repetition {
|
||||
color: #FF8000;
|
||||
}
|
||||
|
||||
&.syntax--group {
|
||||
color: #C6A24F;
|
||||
background-color: rgba(255, 255, 255, 0.06);
|
||||
}
|
||||
|
||||
&.syntax--character-class {
|
||||
color: #B18A3D;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--variable {
|
||||
color: #8A9A95;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--support {
|
||||
color: #FFFFB6;
|
||||
|
||||
&.syntax--function {
|
||||
color: #DAD085;
|
||||
}
|
||||
|
||||
&.syntax--constant {
|
||||
color: #FFD2A7;
|
||||
}
|
||||
|
||||
&.syntax--type.syntax--property-name.syntax--css {
|
||||
color: #EDEDED;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--source .syntax--entity.syntax--name.syntax--tag,
|
||||
.syntax--source .syntax--punctuation.syntax--tag {
|
||||
color: #96CBFE;
|
||||
}
|
||||
.syntax--source .syntax--entity.syntax--other.syntax--attribute-name {
|
||||
color: #FF73FD;
|
||||
}
|
||||
|
||||
.syntax--entity {
|
||||
&.syntax--other.syntax--attribute-name {
|
||||
color: #FF73FD;
|
||||
}
|
||||
|
||||
&.syntax--name.syntax--tag.syntax--namespace,
|
||||
&.syntax--other.syntax--attribute-name.syntax--namespace {
|
||||
color: #E18964;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--meta {
|
||||
&.syntax--preprocessor.syntax--c {
|
||||
color: #8996A8;
|
||||
}
|
||||
|
||||
&.syntax--preprocessor.syntax--c .syntax--keyword {
|
||||
color: #AFC4DB;
|
||||
}
|
||||
|
||||
&.syntax--cast {
|
||||
color: #676767;
|
||||
}
|
||||
|
||||
&.syntax--sgml.syntax--html .syntax--meta.syntax--doctype,
|
||||
&.syntax--sgml.syntax--html .syntax--meta.syntax--doctype .syntax--entity,
|
||||
&.syntax--sgml.syntax--html .syntax--meta.syntax--doctype .syntax--string,
|
||||
&.syntax--xml-processing,
|
||||
&.syntax--xml-processing .syntax--entity,
|
||||
&.syntax--xml-processing .syntax--string {
|
||||
color: #8a8a8a;
|
||||
}
|
||||
|
||||
&.syntax--tag .syntax--entity,
|
||||
&.syntax--tag > .syntax--punctuation,
|
||||
&.syntax--tag.syntax--inline .syntax--entity {
|
||||
color: #FF73FD;
|
||||
}
|
||||
&.syntax--tag .syntax--name,
|
||||
&.syntax--tag.syntax--inline .syntax--name,
|
||||
&.syntax--tag > .syntax--punctuation {
|
||||
color: #96CBFE;
|
||||
}
|
||||
|
||||
&.syntax--selector.syntax--css .syntax--entity.syntax--name.syntax--tag {
|
||||
text-decoration: underline;
|
||||
color: #96CBFE;
|
||||
}
|
||||
|
||||
&.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--tag.syntax--pseudo-class {
|
||||
color: #8F9D6A;
|
||||
}
|
||||
|
||||
&.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--id {
|
||||
color: #8B98AB;
|
||||
}
|
||||
|
||||
&.syntax--selector.syntax--css .syntax--entity.syntax--other.syntax--attribute-name.syntax--class {
|
||||
color: #62B1FE;
|
||||
}
|
||||
|
||||
&.syntax--property-group .syntax--support.syntax--constant.syntax--property-value.syntax--css,
|
||||
&.syntax--property-value .syntax--support.syntax--constant.syntax--property-value.syntax--css {
|
||||
color: #F9EE98;
|
||||
}
|
||||
|
||||
&.syntax--preprocessor.syntax--at-rule .syntax--keyword.syntax--control.syntax--at-rule {
|
||||
color: #8693A5;
|
||||
}
|
||||
|
||||
&.syntax--property-value .syntax--support.syntax--constant.syntax--named-color.syntax--css,
|
||||
&.syntax--property-value .syntax--constant {
|
||||
color: #87C38A;
|
||||
}
|
||||
|
||||
&.syntax--constructor.syntax--argument.syntax--css {
|
||||
color: #8F9D6A;
|
||||
}
|
||||
|
||||
&.syntax--diff,
|
||||
&.syntax--diff.syntax--header {
|
||||
color: #F8F8F8;
|
||||
background-color: #0E2231;
|
||||
}
|
||||
|
||||
&.syntax--separator {
|
||||
color: #60A633;
|
||||
background-color: #242424;
|
||||
}
|
||||
|
||||
&.syntax--line.syntax--entry.syntax--logfile,
|
||||
&.syntax--line.syntax--exit.syntax--logfile {
|
||||
background-color: rgba(238, 238, 238, 0.16);
|
||||
}
|
||||
|
||||
&.syntax--line.syntax--error.syntax--logfile {
|
||||
background-color: #751012;
|
||||
}
|
||||
}
|
||||
|
||||
// Markdown Styles
|
||||
.syntax--source.syntax--gfm {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.syntax--gfm {
|
||||
.syntax--markup.syntax--heading {
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.syntax--link {
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.syntax--variable.syntax--list,
|
||||
.syntax--support.syntax--quote {
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.syntax--link .syntax--entity {
|
||||
color: #ddd;
|
||||
}
|
||||
|
||||
.syntax--raw {
|
||||
color: #aaa;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--markdown {
|
||||
.syntax--paragraph {
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.syntax--heading {
|
||||
color: #eee;
|
||||
}
|
||||
|
||||
.syntax--raw {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
.syntax--link {
|
||||
color: #555;
|
||||
|
||||
.syntax--string {
|
||||
color: #555;
|
||||
|
||||
&.syntax--title {
|
||||
color: #ddd;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
20
packages/atom-dark-ui/LICENSE.md
Normal file
20
packages/atom-dark-ui/LICENSE.md
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2014 GitHub Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
9
packages/atom-dark-ui/README.md
Normal file
9
packages/atom-dark-ui/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Atom Dark UI theme
|
||||
|
||||
A dark UI theme for Atom.
|
||||
|
||||
This theme is installed by default with Atom and can be activated by going to
|
||||
the _Themes_ section in the Settings view (`cmd-,`) and selecting it from the
|
||||
_UI Themes_ drop-down menu.
|
||||
|
||||

|
||||
24
packages/atom-dark-ui/index.less
Normal file
24
packages/atom-dark-ui/index.less
Normal file
@@ -0,0 +1,24 @@
|
||||
|
||||
// Atom Dark UI theme
|
||||
|
||||
|
||||
@import "styles/ui-variables.less";
|
||||
@import "styles/ui-mixins.less";
|
||||
|
||||
@import "styles/atom.less";
|
||||
@import "styles/buttons.less";
|
||||
@import "styles/editor.less";
|
||||
@import "styles/git.less";
|
||||
@import "styles/lists.less";
|
||||
@import "styles/messages.less";
|
||||
@import "styles/nav.less";
|
||||
@import "styles/overlays.less";
|
||||
@import "styles/panels.less";
|
||||
@import "styles/panes.less";
|
||||
@import "styles/progress.less";
|
||||
@import "styles/sites.less";
|
||||
@import "styles/tabs.less";
|
||||
@import "styles/text.less";
|
||||
@import "styles/tooltips.less";
|
||||
@import "styles/tree-view.less";
|
||||
@import "styles/utilities.less";
|
||||
11
packages/atom-dark-ui/package.json
Normal file
11
packages/atom-dark-ui/package.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "atom-dark-ui",
|
||||
"theme": "ui",
|
||||
"version": "0.53.3",
|
||||
"description": "A dark UI theme for Atom",
|
||||
"license": "MIT",
|
||||
"repository": "https://github.com/atom/atom",
|
||||
"engines": {
|
||||
"atom": ">0.40.0"
|
||||
}
|
||||
}
|
||||
25
packages/atom-dark-ui/styles/atom.less
Normal file
25
packages/atom-dark-ui/styles/atom.less
Normal file
@@ -0,0 +1,25 @@
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
atom-workspace {
|
||||
background-color: @app-background-color;
|
||||
}
|
||||
|
||||
.scrollbars-visible-always {
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track,
|
||||
::-webkit-scrollbar-corner {
|
||||
background: @scrollbar-background-color;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: @scrollbar-color;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 1px black inset;
|
||||
}
|
||||
}
|
||||
53
packages/atom-dark-ui/styles/buttons.less
Normal file
53
packages/atom-dark-ui/styles/buttons.less
Normal file
@@ -0,0 +1,53 @@
|
||||
.btn-background (@color, @hover-color, @selected-color, @text-color) {
|
||||
color: @text-color;
|
||||
background-color: transparent;
|
||||
background-image: -webkit-linear-gradient(@color, darken(@color, 5%));
|
||||
|
||||
&:focus {
|
||||
color: @text-color;
|
||||
}
|
||||
&:hover {
|
||||
color: @text-color-highlight;
|
||||
background-image: -webkit-linear-gradient(@hover-color, darken(@hover-color, 5%));
|
||||
}
|
||||
&.selected,
|
||||
&.selected:hover {
|
||||
color: @text-color-highlight;
|
||||
background-image: -webkit-linear-gradient(darken(@selected-color, 5%), @selected-color);
|
||||
&:hover {
|
||||
background-image: -webkit-linear-gradient(@selected-color, darken(@selected-color, 5%));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn-variant (@color) {
|
||||
@bg: darken(@color, 10%);
|
||||
@hover: @color;
|
||||
@selected: @color;
|
||||
.btn-background(@bg, @hover, @selected, @text-color-highlight);
|
||||
}
|
||||
|
||||
.btn {
|
||||
.btn-background(@button-background-color, @button-background-color-hover, @button-background-color-selected, @text-color);
|
||||
}
|
||||
|
||||
.btn.btn-primary {
|
||||
.btn-variant(@background-color-info);
|
||||
}
|
||||
.btn.btn-info {
|
||||
.btn-variant(@background-color-info);
|
||||
}
|
||||
.btn.btn-success {
|
||||
.btn-variant(@background-color-success);
|
||||
}
|
||||
.btn.btn-warning {
|
||||
.btn-variant(@background-color-warning);
|
||||
}
|
||||
.btn.btn-error {
|
||||
.btn-variant(@background-color-error);
|
||||
}
|
||||
|
||||
.caret {
|
||||
border-top: 5px solid #fff;
|
||||
margin-top: -1px;
|
||||
}
|
||||
15
packages/atom-dark-ui/styles/dropdowns.less
Normal file
15
packages/atom-dark-ui/styles/dropdowns.less
Normal file
@@ -0,0 +1,15 @@
|
||||
.dropdown-menu {
|
||||
background-color: @overlay-background-color;
|
||||
border-radius: @component-border-radius;
|
||||
border: 1px solid @base-border-color;
|
||||
padding: 0;
|
||||
|
||||
> li > a {
|
||||
.text(normal);
|
||||
}
|
||||
|
||||
> li > a:hover {
|
||||
.text(highlight);
|
||||
background-color: @background-color-highlight;
|
||||
}
|
||||
}
|
||||
23
packages/atom-dark-ui/styles/editor.less
Normal file
23
packages/atom-dark-ui/styles/editor.less
Normal file
@@ -0,0 +1,23 @@
|
||||
atom-text-editor[mini] {
|
||||
color: @text-color-highlight;
|
||||
background-color: @input-background-color;
|
||||
border: 1px solid @input-border-color;
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
border-radius: @component-border-radius;
|
||||
padding-left: @component-padding/2;
|
||||
|
||||
.cursor { border-color: #fff; }
|
||||
.selection .region { background-color: lighten(@input-background-color, 10%); }
|
||||
}
|
||||
|
||||
atom-text-editor[mini].is-focused {
|
||||
background-color: lighten(@input-background-color, 5%);
|
||||
.selection .region { background-color: desaturate(@background-color-info, 50%); }
|
||||
}
|
||||
|
||||
// FIXME: these should go in syntax themes?
|
||||
atom-text-editor {
|
||||
.gutter.drop-shadow {
|
||||
-webkit-box-shadow: -2px 0 10px 2px #222;
|
||||
}
|
||||
}
|
||||
6
packages/atom-dark-ui/styles/git.less
Normal file
6
packages/atom-dark-ui/styles/git.less
Normal file
@@ -0,0 +1,6 @@
|
||||
.status { .text(normal); }
|
||||
.status-added { .text(success); }
|
||||
.status-ignored { .text(subtle); }
|
||||
.status-modified { .text(warning); }
|
||||
.status-removed { .text(error); }
|
||||
.status-renamed { .text(info); }
|
||||
128
packages/atom-dark-ui/styles/lists.less
Normal file
128
packages/atom-dark-ui/styles/lists.less
Normal file
@@ -0,0 +1,128 @@
|
||||
@import "octicon-mixins.less"; // https://github.com/atom/atom/blob/master/static/variables/octicon-mixins.less
|
||||
|
||||
.list-group, .list-tree {
|
||||
li:not(.list-nested-item),
|
||||
li.list-nested-item > .list-item {
|
||||
.text(normal);
|
||||
}
|
||||
|
||||
.generate-list-item-text-color(@class) {
|
||||
li:not(.list-nested-item).text-@{class},
|
||||
li.list-nested-item.text-@{class} > .list-item {
|
||||
.text(@class);
|
||||
}
|
||||
}
|
||||
.generate-list-item-text-color(subtle);
|
||||
.generate-list-item-text-color(info);
|
||||
.generate-list-item-text-color(success);
|
||||
.generate-list-item-text-color(warning);
|
||||
.generate-list-item-text-color(error);
|
||||
.generate-list-item-text-color(selected);
|
||||
|
||||
.generate-list-item-status-color(@color, @status) {
|
||||
li:not(.list-nested-item).status-@{status},
|
||||
li.list-nested-item.status-@{status} > .list-item {
|
||||
color: @color;
|
||||
}
|
||||
|
||||
li:not(.list-nested-item).selected.status-@{status},
|
||||
li.list-nested-item.selected.status-@{status} > .list-item {
|
||||
color: @color;
|
||||
}
|
||||
}
|
||||
|
||||
.generate-list-item-status-color(@text-color-subtle, ignored);
|
||||
.generate-list-item-status-color(@text-color-added, added);
|
||||
.generate-list-item-status-color(@text-color-renamed, renamed);
|
||||
.generate-list-item-status-color(@text-color-modified, modified);
|
||||
.generate-list-item-status-color(@text-color-removed, removed);
|
||||
|
||||
li:not(.list-nested-item).selected,
|
||||
li.list-nested-item.selected > .list-item {
|
||||
.text(selected);
|
||||
}
|
||||
}
|
||||
|
||||
.select-list ol.list-group,
|
||||
&.select-list ol.list-group {
|
||||
li.two-lines {
|
||||
.secondary-line { color: @text-color-subtle; }
|
||||
&.selected .secondary-line {
|
||||
color: @text-color;
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// We want to highlight the background of the list items because we dont
|
||||
// know their size.
|
||||
li.selected {
|
||||
background-color: @background-color-selected;
|
||||
&:before{ display: none; }
|
||||
}
|
||||
|
||||
&.mark-active{
|
||||
@active-icon-size: 14px;
|
||||
|
||||
// pad in front of the text where the icon would be We'll pad the non-
|
||||
// active items with a 'fake' icon so other classes can pad the item
|
||||
// without worrying about the icon padding.
|
||||
li:before {
|
||||
content: '';
|
||||
background-color: transparent;
|
||||
position: static;
|
||||
display: inline-block;
|
||||
left: auto; right: auto;
|
||||
height: @active-icon-size;
|
||||
width: @active-icon-size;
|
||||
}
|
||||
> li:not(.active):before {
|
||||
margin-right: @component-icon-padding;
|
||||
}
|
||||
li.active {
|
||||
.octicon(check, @active-icon-size);
|
||||
&:before {
|
||||
margin-right: @component-icon-padding;
|
||||
color: @text-color-success;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.select-list.popover-list {
|
||||
background-color: @overlay-background-color;
|
||||
box-shadow: 0 0 10px @base-border-color;
|
||||
padding: @component-padding/2;
|
||||
border-radius: @component-border-radius;
|
||||
border: 1px solid @overlay-border-color;
|
||||
|
||||
atom-text-editor {
|
||||
margin-bottom: @component-padding/2;
|
||||
}
|
||||
|
||||
.list-group li {
|
||||
padding-left: @component-padding/2;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-sortable {
|
||||
li {
|
||||
line-height: 2.5;
|
||||
}
|
||||
|
||||
// For sortable lists in the settings view
|
||||
li.ui-sortable-placeholder {
|
||||
visibility: visible !important;
|
||||
background-color: darken(@pane-item-background-color, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
li.ui-draggable-dragging, li.ui-sortable-helper {
|
||||
line-height: @component-line-height;
|
||||
height: @component-line-height;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
list-style: none;
|
||||
padding: 0 @component-padding;
|
||||
background: @background-color-highlight;
|
||||
box-shadow: 0 0 1px @base-border-color;
|
||||
}
|
||||
4
packages/atom-dark-ui/styles/messages.less
Normal file
4
packages/atom-dark-ui/styles/messages.less
Normal file
@@ -0,0 +1,4 @@
|
||||
ul.background-message {
|
||||
font-weight: bold;
|
||||
color: rgba(0, 0, 0, .2);
|
||||
}
|
||||
25
packages/atom-dark-ui/styles/nav.less
Normal file
25
packages/atom-dark-ui/styles/nav.less
Normal file
@@ -0,0 +1,25 @@
|
||||
.nav-tabs {
|
||||
border-bottom: 1px solid @base-border-color;
|
||||
li {
|
||||
a,
|
||||
&.active a {
|
||||
border: none;
|
||||
margin-right: 0px;
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
&.active a,
|
||||
&.active a:hover {
|
||||
background-color: @background-color-highlight;
|
||||
border: none;
|
||||
color: @text-color-selected;
|
||||
border-bottom-left-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
}
|
||||
|
||||
&.active a {
|
||||
background-color: @tab-background-color-active;
|
||||
}
|
||||
}
|
||||
}
|
||||
39
packages/atom-dark-ui/styles/overlays.less
Normal file
39
packages/atom-dark-ui/styles/overlays.less
Normal file
@@ -0,0 +1,39 @@
|
||||
atom-panel.modal, .overlay {
|
||||
color: @text-color;
|
||||
background-color: @overlay-background-color;
|
||||
padding: @component-padding;
|
||||
border: 1px solid @overlay-border-color;
|
||||
box-shadow: 0 0 10px @base-border-color;
|
||||
border-radius: @component-border-radius;
|
||||
|
||||
atom-text-editor[mini] {
|
||||
margin-bottom: @component-padding;
|
||||
}
|
||||
|
||||
.select-list ol.list-group,
|
||||
&.select-list ol.list-group {
|
||||
|
||||
background-color: lighten(@overlay-background-color, 3%);
|
||||
|
||||
li {
|
||||
padding: @component-padding;
|
||||
border-bottom: 1px solid @overlay-background-color;
|
||||
|
||||
&.two-lines { padding: @component-padding/2 @component-padding; }
|
||||
|
||||
.status.icon {
|
||||
float: right;
|
||||
margin-left: @component-icon-padding;
|
||||
&:before {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.selected {
|
||||
.status.icon {
|
||||
color: @text-color-selected;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
61
packages/atom-dark-ui/styles/panels.less
Normal file
61
packages/atom-dark-ui/styles/panels.less
Normal file
@@ -0,0 +1,61 @@
|
||||
@import "buttons.less";
|
||||
|
||||
.panel {
|
||||
&.bordered {
|
||||
border: 1px solid @base-border-color;
|
||||
border-radius: @component-border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
atom-panel, .tool-panel {
|
||||
.text(normal);
|
||||
position: relative;
|
||||
|
||||
background-color: @tool-panel-background-color;
|
||||
|
||||
&.bottom, &.panel-bottom,
|
||||
&.footer, &.panel-footer {
|
||||
border-top: 1px solid @tool-panel-border-color;
|
||||
box-shadow: inset 0 1px 0 @background-color-highlight;
|
||||
}
|
||||
|
||||
&.left, &.panel-left {
|
||||
border-right: 1px solid @tool-panel-border-color;
|
||||
}
|
||||
|
||||
&.right, &.panel-right {
|
||||
border-left: 1px solid @tool-panel-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.inset-panel {
|
||||
position: relative;
|
||||
background-color: @inset-panel-background-color;
|
||||
}
|
||||
|
||||
.is-blurred {
|
||||
atom-panel,
|
||||
.inset-panel {
|
||||
}
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
.text(normal);
|
||||
|
||||
border-bottom: 1px solid @panel-heading-border-color;
|
||||
border-top: 1px solid fadein(@background-color-highlight, 10%);
|
||||
|
||||
background-color: transparent;
|
||||
background-image: -webkit-linear-gradient(@panel-heading-background-color, darken(@panel-heading-background-color, 10%));
|
||||
|
||||
.btn {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
|
||||
@bg: lighten(@button-background-color, 10%);
|
||||
@hover: lighten(@button-background-color-hover, 10%);
|
||||
@selected: lighten(@button-background-color-selected, 10%);
|
||||
@text: lighten(@text-color, 10%);
|
||||
.btn-background(@bg, @hover, @selected, @text);
|
||||
}
|
||||
}
|
||||
25
packages/atom-dark-ui/styles/panes.less
Normal file
25
packages/atom-dark-ui/styles/panes.less
Normal file
@@ -0,0 +1,25 @@
|
||||
.pane-item {
|
||||
.panel {
|
||||
border-color: fadeout(@inset-panel-border-color, 30%);
|
||||
}
|
||||
}
|
||||
|
||||
atom-pane-container {
|
||||
atom-pane {
|
||||
background-color: lighten(@app-background-color, 4%);
|
||||
|
||||
&:focus {
|
||||
background-color: @app-background-color;
|
||||
}
|
||||
}
|
||||
|
||||
atom-pane-axis.horizontal > * {
|
||||
border-right: 1px solid @pane-item-border-color;
|
||||
&:last-child { border-right: none; }
|
||||
}
|
||||
|
||||
atom-pane-axis.vertical > * {
|
||||
border-bottom: 1px solid @pane-item-border-color;
|
||||
&:last-child { border-bottom: none; }
|
||||
}
|
||||
}
|
||||
69
packages/atom-dark-ui/styles/progress.less
Normal file
69
packages/atom-dark-ui/styles/progress.less
Normal file
@@ -0,0 +1,69 @@
|
||||
.loading-spinner(@size) {
|
||||
width: @size;
|
||||
height: @size;
|
||||
display: block;
|
||||
|
||||
background-image: url(images/octocat-spinner-128.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
|
||||
&.inline-block {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.loading-spinner-large {
|
||||
.loading-spinner(64px);
|
||||
}
|
||||
|
||||
.loading-spinner-medium {
|
||||
.loading-spinner(50px);
|
||||
}
|
||||
|
||||
.loading-spinner-small {
|
||||
.loading-spinner(32px);
|
||||
}
|
||||
|
||||
.loading-spinner-tiny {
|
||||
.loading-spinner(20px);
|
||||
}
|
||||
|
||||
// Much learning from:
|
||||
// http://css-tricks.com/html5-progress-element/
|
||||
|
||||
@progress-height: 16px;
|
||||
@progress-shine-gradient: -webkit-linear-gradient(top, rgba(255, 255, 255, .15), rgba(0, 0, 0, .15));
|
||||
|
||||
progress {
|
||||
height: @progress-height;
|
||||
-webkit-appearance: none;
|
||||
border-radius: @component-border-radius;
|
||||
background-color: #666;
|
||||
background-image:
|
||||
-webkit-linear-gradient(-30deg,
|
||||
transparent 33%, rgba(0, 0, 0, .1) 33%,
|
||||
rgba(0,0, 0, .1) 66%, transparent 66%),
|
||||
@progress-shine-gradient;
|
||||
border-radius: 2px;
|
||||
background-size: 25px @progress-height, 100% 100%, 100% 100%;
|
||||
-webkit-animation: animate-stripes 5s linear 6; // stop animation after 6 runs (30s) to limit CPU usage
|
||||
}
|
||||
|
||||
progress::-webkit-progress-bar {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
progress::-webkit-progress-value {
|
||||
border-radius: @component-border-radius;
|
||||
background-image: @progress-shine-gradient;
|
||||
background-color: @background-color-success;
|
||||
}
|
||||
|
||||
progress[value] {
|
||||
background-image: @progress-shine-gradient;
|
||||
-webkit-animation: none;
|
||||
}
|
||||
|
||||
@-webkit-keyframes animate-stripes {
|
||||
100% { background-position: 100px 0px; }
|
||||
}
|
||||
11
packages/atom-dark-ui/styles/sites.less
Normal file
11
packages/atom-dark-ui/styles/sites.less
Normal file
@@ -0,0 +1,11 @@
|
||||
.ui-site(@num, @color) {
|
||||
.ui-site-@{num} {
|
||||
background-color: @color;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-site(1, @ui-site-color-1);
|
||||
.ui-site(2, @ui-site-color-2);
|
||||
.ui-site(3, @ui-site-color-3);
|
||||
.ui-site(4, @ui-site-color-4);
|
||||
.ui-site(5, @ui-site-color-5);
|
||||
157
packages/atom-dark-ui/styles/tabs.less
Normal file
157
packages/atom-dark-ui/styles/tabs.less
Normal file
@@ -0,0 +1,157 @@
|
||||
@tab-radius: 3px;
|
||||
@modified-icon-width: 8px;
|
||||
@tab-skew: 30deg;
|
||||
@tab-top-padding: 5px;
|
||||
@tab-bottom-border-height: 5px;
|
||||
@tab-border: 1px solid @tab-border-color;
|
||||
@tab-bar-bottom-border-color: #111;
|
||||
@tab-max-width: 160px;
|
||||
|
||||
.tab-bar {
|
||||
height: @tab-height + @tab-top-padding + @tab-bottom-border-height;
|
||||
background: @tab-bar-background-color;
|
||||
box-shadow: inset 0 -8px 8px -4px rgba(0,0,0, .15);
|
||||
padding: 0 10px 0 25px;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tab {
|
||||
position: relative;
|
||||
top: @tab-top-padding;
|
||||
max-width: @tab-max-width;
|
||||
height: @tab-height;
|
||||
line-height: @tab-height;
|
||||
padding: 0;
|
||||
margin: 0 20px 0 5px;
|
||||
color: @text-color;
|
||||
|
||||
transition: color .1s ease-in;
|
||||
border: none;
|
||||
|
||||
&, &:before, &:after {
|
||||
background-image: -webkit-linear-gradient(top, lighten(#333, 7%), #333);
|
||||
height: @tab-height;
|
||||
}
|
||||
|
||||
&:before, &:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
width: 25px;
|
||||
height: @tab-height;
|
||||
}
|
||||
|
||||
// left angled edge
|
||||
&:before {
|
||||
left: -14px;
|
||||
border-top-left-radius: @tab-radius;
|
||||
box-shadow: inset 1px 1px 0 @tab-border-color, -4px 0px 4px rgba(0,0,0,.1);
|
||||
-webkit-transform: skewX(-@tab-skew);
|
||||
}
|
||||
|
||||
// right angled edge
|
||||
&:after {
|
||||
right: -14px;
|
||||
border-top-right-radius: @tab-radius;
|
||||
box-shadow: inset -1px 1px 0 @tab-border-color, 4px 0px 4px rgba(0,0,0,.1);
|
||||
-webkit-transform: skewX(@tab-skew);
|
||||
}
|
||||
|
||||
.close-icon {
|
||||
right: 0;
|
||||
z-index: 3;
|
||||
text-align: right;
|
||||
line-height: @tab-height;
|
||||
color: @text-color;
|
||||
|
||||
&:hover {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
&.modified:not(:hover) .close-icon {
|
||||
right: 0;
|
||||
top: @tab-height/2 - @modified-icon-width/2 + 1px;
|
||||
width: @modified-icon-width;
|
||||
height: @modified-icon-width;
|
||||
}
|
||||
|
||||
&.modified:hover .close-icon:hover {
|
||||
color: @text-color-highlight;
|
||||
}
|
||||
|
||||
.title {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-top: -@tab-top-padding;
|
||||
padding-top: @tab-top-padding;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.tab.active {
|
||||
z-index: 1;
|
||||
color: @text-color-highlight;
|
||||
box-shadow: inset -1px 1px 0 @tab-border-color, 4px -4px 4px rgba(0,0,0,.1);
|
||||
|
||||
.close-icon {
|
||||
line-height: @tab-height - 1px;
|
||||
color: @text-color;
|
||||
}
|
||||
|
||||
&, &:before, &:after {
|
||||
background-image: -webkit-linear-gradient(top, lighten(@tab-background-color-active, 7%), @tab-background-color-active);
|
||||
height: @tab-height + 1px;
|
||||
}
|
||||
|
||||
&:before {
|
||||
box-shadow: inset 1px 1px 0 @tab-border-color, -4px -4px 4px rgba(0,0,0,.1);
|
||||
}
|
||||
|
||||
&:after {
|
||||
box-shadow: inset -1px 1px 0 @tab-border-color, 4px -4px 4px rgba(0,0,0,.1);
|
||||
}
|
||||
}
|
||||
|
||||
.tab:hover {
|
||||
color: @text-color-highlight;
|
||||
}
|
||||
|
||||
.tab.active:hover .close-icon {
|
||||
color: @text-color;
|
||||
|
||||
&:hover {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
height: @tab-height + @tab-top-padding + @tab-bottom-border-height;
|
||||
pointer-events: none;
|
||||
&:before {
|
||||
margin-left: -9px; // center between tabs
|
||||
}
|
||||
&:after {
|
||||
top: @tab-height + @tab-top-padding + @tab-bottom-border-height - 2px;
|
||||
margin-left: -10px; // center between tabs
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// border
|
||||
.tab-bar + .item-views::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
height: @tab-bottom-border-height;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: @tab-background-color-active;
|
||||
border-top: 1px solid @tab-border-color;
|
||||
border-bottom: 1px solid @tab-bar-bottom-border-color;
|
||||
pointer-events: none;
|
||||
}
|
||||
86
packages/atom-dark-ui/styles/text.less
Normal file
86
packages/atom-dark-ui/styles/text.less
Normal file
@@ -0,0 +1,86 @@
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
line-height: 1em;
|
||||
margin-bottom: 15px
|
||||
}
|
||||
h1 { font-size: 2em; }
|
||||
h2 { font-size: 1.5em; }
|
||||
h3 { font-size: 1.2em; }
|
||||
|
||||
p {
|
||||
line-height: 1.6;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
pre {
|
||||
box-shadow: none;
|
||||
color: @text-color;
|
||||
background: @inset-panel-background-color;
|
||||
border-radius: @component-border-radius;
|
||||
border: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
code {
|
||||
.text(highlight);
|
||||
background: @background-color-highlight;
|
||||
border-radius: @component-border-radius;
|
||||
}
|
||||
|
||||
.markdown-preview code {
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.selected { .text(highlight); }
|
||||
|
||||
.text-smaller { font-size: 0.9em; }
|
||||
|
||||
.text-subtle { .text(subtle); }
|
||||
.text-highlight { .text(highlight); }
|
||||
|
||||
.text-error { .text(error); }
|
||||
.text-info {
|
||||
.text(info);
|
||||
&:hover { color: @text-color-info; }
|
||||
}
|
||||
.text-warning {
|
||||
.text(warning);
|
||||
&:hover { color: @text-color-warning; }
|
||||
}
|
||||
.text-success {
|
||||
.text(success);
|
||||
&:hover { color: @text-color-success; }
|
||||
}
|
||||
|
||||
.highlight {
|
||||
color: @text-color-highlight;
|
||||
font-weight: bold;
|
||||
text-shadow: none;
|
||||
background-color: @background-color-highlight;
|
||||
border-radius: @component-border-radius;
|
||||
padding: 1px 3px;
|
||||
}
|
||||
|
||||
.highlight-color(@name, @color, @text-color) {
|
||||
.highlight-@{name} {
|
||||
color: lighten(saturate(@text-color, 0%), 30%);
|
||||
font-weight: bold;
|
||||
text-shadow: none;
|
||||
background-color: fadeout(@color, 60%);
|
||||
border-radius: @component-border-radius;
|
||||
padding: 1px 3px;
|
||||
}
|
||||
}
|
||||
.highlight-color(info, @background-color-info, @text-color-info);
|
||||
.highlight-color(warning, @background-color-warning, @text-color-warning);
|
||||
.highlight-color(error, @background-color-error, @text-color-error);
|
||||
.highlight-color(success, @background-color-success, @text-color-success);
|
||||
|
||||
.results-view .path-details.list-item {
|
||||
color: darken(@text-color-highlight, 18%);
|
||||
}
|
||||
48
packages/atom-dark-ui/styles/tooltips.less
Normal file
48
packages/atom-dark-ui/styles/tooltips.less
Normal file
@@ -0,0 +1,48 @@
|
||||
.tooltip {
|
||||
@tip-background-color: #fff;
|
||||
@tip-text-color: #333;
|
||||
white-space: nowrap;
|
||||
|
||||
.keystroke {
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
color: #777;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
&.in { opacity: 1; }
|
||||
|
||||
.tooltip-inner {
|
||||
line-height: 19px;
|
||||
border-radius: @component-border-radius;
|
||||
background-color: @tip-background-color;
|
||||
color: @tip-text-color;
|
||||
white-space: nowrap;
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
&.top .tooltip-arrow {
|
||||
border-top-color: @tip-background-color;
|
||||
}
|
||||
&.top-left .tooltip-arrow {
|
||||
border-top-color: @tip-background-color;
|
||||
}
|
||||
&.top-right .tooltip-arrow {
|
||||
border-top-color: @tip-background-color;
|
||||
}
|
||||
&.right .tooltip-arrow {
|
||||
border-right-color: @tip-background-color;
|
||||
}
|
||||
&.left .tooltip-arrow {
|
||||
border-left-color: @tip-background-color;
|
||||
}
|
||||
&.bottom .tooltip-arrow {
|
||||
border-bottom-color: @tip-background-color;
|
||||
}
|
||||
&.bottom-left .tooltip-arrow {
|
||||
border-bottom-color: @tip-background-color;
|
||||
}
|
||||
&.bottom-right .tooltip-arrow {
|
||||
border-bottom-color: @tip-background-color;
|
||||
}
|
||||
}
|
||||
35
packages/atom-dark-ui/styles/tree-view.less
Normal file
35
packages/atom-dark-ui/styles/tree-view.less
Normal file
@@ -0,0 +1,35 @@
|
||||
.tree-view {
|
||||
font-size: @font-size;
|
||||
background: @tree-view-background-color;
|
||||
|
||||
.selected:before {
|
||||
background: #444;
|
||||
box-shadow: inset -3px 0 0 rgba(0,0,0, .05);
|
||||
}
|
||||
}
|
||||
|
||||
.tree-view-resizer {
|
||||
.tree-view-resize-handle {
|
||||
width: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.focusable-panel {
|
||||
opacity: 1;
|
||||
box-shadow: inset -3px 0 0 rgba(0,0,0, .05);
|
||||
|
||||
&:focus {
|
||||
background: #282828;
|
||||
|
||||
.selected:before {
|
||||
background: @background-color-selected;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[data-show-on-right-side=true] {
|
||||
.tree-view .selected:before,
|
||||
.focusable-panel {
|
||||
box-shadow: inset 3px 0 0 rgba(0,0,0, .05);
|
||||
}
|
||||
}
|
||||
37
packages/atom-dark-ui/styles/ui-mixins.less
Normal file
37
packages/atom-dark-ui/styles/ui-mixins.less
Normal file
@@ -0,0 +1,37 @@
|
||||
// Pattern matching; ish is cray.
|
||||
// http://lesscss.org/#-pattern-matching-and-guard-expressions
|
||||
.text(normal) {
|
||||
font-weight: normal;
|
||||
color: @text-color;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(subtle) {
|
||||
font-weight: normal;
|
||||
color: @text-color-subtle;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(highlight) {
|
||||
font-weight: normal;
|
||||
color: @text-color-highlight;
|
||||
text-shadow: 0 1px 0 rgba(0,0,0, .5);
|
||||
}
|
||||
.text(selected) {
|
||||
.text(highlight)
|
||||
}
|
||||
|
||||
.text(info) {
|
||||
color: @text-color-info;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(success) {
|
||||
color: @text-color-success;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(warning) {
|
||||
color: @text-color-warning;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(error) {
|
||||
color: @text-color-error;
|
||||
text-shadow: none;
|
||||
}
|
||||
91
packages/atom-dark-ui/styles/ui-variables.less
Normal file
91
packages/atom-dark-ui/styles/ui-variables.less
Normal file
@@ -0,0 +1,91 @@
|
||||
// Colors
|
||||
|
||||
@text-color: #aaa;
|
||||
@text-color-subtle: #555;
|
||||
@text-color-highlight: #fff;
|
||||
@text-color-selected: @text-color-highlight;
|
||||
|
||||
@text-color-info: #5293d8;
|
||||
@text-color-success: #2BDA77;
|
||||
@text-color-warning: #ff982d;
|
||||
@text-color-error: #c00;
|
||||
|
||||
@text-color-ignored: @text-color-subtle;
|
||||
@text-color-added: @text-color-success;
|
||||
@text-color-renamed: @text-color-info;
|
||||
@text-color-modified: @text-color-warning;
|
||||
@text-color-removed: @text-color-error;
|
||||
|
||||
@background-color-info: #0098ff;
|
||||
@background-color-success: #17ca65;
|
||||
@background-color-warning: #ffaa2c;
|
||||
@background-color-error: #c00;
|
||||
@background-color-highlight: rgba(255, 255, 255, 0.07);
|
||||
@background-color-selected: #4182C4;
|
||||
|
||||
@app-background-color: #333;
|
||||
|
||||
@base-background-color: lighten(@tool-panel-background-color, 5%);
|
||||
@base-border-color: rgba(0, 0, 0, 0.5);
|
||||
|
||||
@pane-item-background-color: @base-background-color;
|
||||
@pane-item-border-color: rgba(0, 0, 0, 0.5);
|
||||
|
||||
@input-background-color: #212224;
|
||||
@input-border-color: @base-border-color;
|
||||
|
||||
@tool-panel-background-color: #1d1f21;
|
||||
@tool-panel-border-color: @base-border-color;
|
||||
|
||||
@inset-panel-background-color: #161719;
|
||||
@inset-panel-border-color: @base-border-color;
|
||||
|
||||
@panel-heading-background-color: #43484d;
|
||||
@panel-heading-border-color: fadein(@base-border-color, 10%);
|
||||
|
||||
@overlay-background-color: #202123;
|
||||
@overlay-border-color: @background-color-highlight;
|
||||
|
||||
@button-background-color: #43484d;
|
||||
@button-background-color-hover: lighten(@button-background-color, 5%);
|
||||
@button-background-color-selected: #5c6064;
|
||||
@button-border-color: @base-border-color;
|
||||
|
||||
@tab-bar-background-color: #222;
|
||||
@tab-bar-border-color: darken(@tab-background-color-active, 10%);
|
||||
@tab-background-color: #333;
|
||||
@tab-background-color-active: #222;
|
||||
@tab-border-color: #484848;
|
||||
|
||||
@tree-view-background-color: #303030;
|
||||
@tree-view-border-color: @tool-panel-border-color;
|
||||
|
||||
@scrollbar-background-color: #222425; // Needs to be opaque -> atom/atom/issues/4578
|
||||
@scrollbar-color: rgba(92, 92, 92, 0.5);
|
||||
|
||||
@ui-site-color-1: @background-color-success; // green
|
||||
@ui-site-color-2: @background-color-info; // blue
|
||||
@ui-site-color-3: @background-color-warning; // orange
|
||||
@ui-site-color-4: #db2ff4; // purple
|
||||
@ui-site-color-5: #f5e11d; // yellow
|
||||
|
||||
|
||||
// Sizes
|
||||
|
||||
@font-size: 11px;
|
||||
@input-font-size: 14px;
|
||||
|
||||
@disclosure-arrow-size: 12px;
|
||||
|
||||
@component-padding: 10px;
|
||||
@component-icon-padding: 5px;
|
||||
@component-icon-size: 16px;
|
||||
@component-line-height: 25px;
|
||||
@component-border-radius: 2px;
|
||||
|
||||
@tab-height: 26px;
|
||||
|
||||
|
||||
// Other
|
||||
|
||||
@font-family: system-ui;
|
||||
18
packages/atom-dark-ui/styles/utilities.less
Normal file
18
packages/atom-dark-ui/styles/utilities.less
Normal file
@@ -0,0 +1,18 @@
|
||||
.key-binding {
|
||||
background: -webkit-linear-gradient(
|
||||
rgba(100, 100, 100, 0.5),
|
||||
rgba(70,70,70, 0.5));
|
||||
-webkit-box-shadow: inset 1px 1px 0 rgba(255, 255, 255, 0.1);
|
||||
display: inline-block;
|
||||
line-height: 100%;
|
||||
border-radius: @component-border-radius;
|
||||
margin-left: @component-icon-padding;
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
font-size: @font-size - 1px;
|
||||
padding: @component-padding / 2;
|
||||
}
|
||||
|
||||
.badge {
|
||||
.text(highlight);
|
||||
background: @background-color-highlight;
|
||||
}
|
||||
20
packages/atom-light-syntax/LICENSE.md
Normal file
20
packages/atom-light-syntax/LICENSE.md
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2014 GitHub Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
9
packages/atom-light-syntax/README.md
Normal file
9
packages/atom-light-syntax/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Atom Light Syntax theme
|
||||
|
||||
A light syntax theme for Atom.
|
||||
|
||||
This theme is installed by default with Atom and can be activated by going to
|
||||
the _Themes_ section in the Settings view (`cmd-,`) and selecting it from the
|
||||
_Syntax Themes_ dropdown menu.
|
||||
|
||||

|
||||
7
packages/atom-light-syntax/index.less
Normal file
7
packages/atom-light-syntax/index.less
Normal file
@@ -0,0 +1,7 @@
|
||||
|
||||
// Atom Light Syntax theme
|
||||
|
||||
@import "styles/syntax-variables.less";
|
||||
|
||||
@import 'styles/editor.less';
|
||||
@import 'styles/syntax.less';
|
||||
11
packages/atom-light-syntax/package.json
Normal file
11
packages/atom-light-syntax/package.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "atom-light-syntax",
|
||||
"theme": "syntax",
|
||||
"version": "0.29.1",
|
||||
"description": "A light syntax theme",
|
||||
"repository": "https://github.com/atom/atom",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"atom": ">0.40.0"
|
||||
}
|
||||
}
|
||||
56
packages/atom-light-syntax/styles/editor.less
Normal file
56
packages/atom-light-syntax/styles/editor.less
Normal file
@@ -0,0 +1,56 @@
|
||||
atom-text-editor {
|
||||
background-color: @syntax-background-color;
|
||||
color: @syntax-text-color;
|
||||
|
||||
.invisible-character {
|
||||
color: @syntax-invisible-character-color;
|
||||
}
|
||||
|
||||
.indent-guide {
|
||||
color: @syntax-indent-guide-color;
|
||||
}
|
||||
|
||||
.wrap-guide {
|
||||
background-color: @syntax-wrap-guide-color;
|
||||
}
|
||||
|
||||
.gutter {
|
||||
color: @syntax-gutter-text-color;
|
||||
background: @syntax-gutter-background-color;
|
||||
}
|
||||
|
||||
.gutter .line-number.folded,
|
||||
.gutter .line-number:after,
|
||||
.fold-marker:after {
|
||||
color: #e87b00;
|
||||
}
|
||||
|
||||
.invisible {
|
||||
color: #555;
|
||||
}
|
||||
|
||||
.selection .region {
|
||||
background-color: #e1e1e1;
|
||||
}
|
||||
|
||||
.bracket-matcher .region {
|
||||
background-color: #C9C9C9;
|
||||
opacity: .7;
|
||||
border-bottom: 0 none;
|
||||
}
|
||||
|
||||
&.is-focused {
|
||||
.cursor {
|
||||
border-color: @syntax-cursor-color;
|
||||
}
|
||||
|
||||
.selection .region {
|
||||
background-color: @syntax-selection-color;
|
||||
}
|
||||
|
||||
.line-number.cursor-line-no-selection,
|
||||
.line.cursor-line {
|
||||
background-color: @syntax-gutter-background-color-selected;
|
||||
}
|
||||
}
|
||||
}
|
||||
44
packages/atom-light-syntax/styles/syntax-variables.less
Normal file
44
packages/atom-light-syntax/styles/syntax-variables.less
Normal file
@@ -0,0 +1,44 @@
|
||||
// This defines all syntax variables that syntax themes must implement when they
|
||||
// include a syntax-variables.less file.
|
||||
|
||||
// General colors
|
||||
@syntax-text-color: #555;
|
||||
@syntax-cursor-color: black;
|
||||
@syntax-selection-color: #afc4da;
|
||||
@syntax-selection-flash-color: #69c;
|
||||
@syntax-background-color: white;
|
||||
|
||||
// Guide colors
|
||||
@syntax-wrap-guide-color: rgba(85, 85, 85, .2);
|
||||
@syntax-indent-guide-color: rgba(85, 85, 85, .2);
|
||||
@syntax-invisible-character-color: rgba(85, 85, 85, .2);
|
||||
|
||||
// For find and replace markers
|
||||
@syntax-result-marker-color: #999;
|
||||
@syntax-result-marker-color-selected: black;
|
||||
|
||||
// Gutter colors
|
||||
@syntax-gutter-text-color: @syntax-text-color;
|
||||
@syntax-gutter-text-color-selected: @syntax-gutter-text-color;
|
||||
@syntax-gutter-background-color: white;
|
||||
@syntax-gutter-background-color-selected: rgba(255, 255, 134, 0.34);
|
||||
|
||||
// For git diff info. i.e. in the gutter
|
||||
@syntax-color-renamed: #96CBFE;
|
||||
@syntax-color-added: #718C00;
|
||||
@syntax-color-modified: #ff982d;
|
||||
@syntax-color-removed: #D14;
|
||||
|
||||
// For language entity colors
|
||||
@syntax-color-variable: #008080;
|
||||
@syntax-color-constant: #099;
|
||||
@syntax-color-property: #333;
|
||||
@syntax-color-value: @syntax-color-constant;
|
||||
@syntax-color-function: #900;
|
||||
@syntax-color-method: @syntax-color-function;
|
||||
@syntax-color-class: #606aa1;
|
||||
@syntax-color-keyword: #222;
|
||||
@syntax-color-tag: #008080;
|
||||
@syntax-color-attribute: #458;
|
||||
@syntax-color-import: @syntax-color-keyword;
|
||||
@syntax-color-snippet: @syntax-color-constant;
|
||||
194
packages/atom-light-syntax/styles/syntax.less
Normal file
194
packages/atom-light-syntax/styles/syntax.less
Normal file
@@ -0,0 +1,194 @@
|
||||
.syntax--comment {
|
||||
color: #999988;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.syntax--string {
|
||||
color: #D14;
|
||||
}
|
||||
|
||||
// String interpolation in Ruby, CoffeeScript, and others
|
||||
.syntax--string {
|
||||
.syntax--source,
|
||||
.syntax--meta.syntax--embedded.syntax--line {
|
||||
color: #5A5A5A;
|
||||
}
|
||||
|
||||
.syntax--punctuation.syntax--section.syntax--embedded {
|
||||
color: #920B2D;
|
||||
|
||||
.syntax--source {
|
||||
color: #920B2D; // Required for the end of embedded strings in Ruby #716
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--constant {
|
||||
&.syntax--numeric {
|
||||
color: #D14;
|
||||
}
|
||||
|
||||
&.syntax--language {
|
||||
color: #606aa1;
|
||||
}
|
||||
|
||||
&.syntax--character,
|
||||
&.syntax--other {
|
||||
color: #606aa1;
|
||||
}
|
||||
|
||||
&.syntax--symbol {
|
||||
color: #990073;
|
||||
}
|
||||
|
||||
&.syntax--numeric.syntax--line-number.syntax--find-in-files .syntax--match {
|
||||
color: rgba(143, 190, 0, 0.63);
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--variable {
|
||||
color: #008080;
|
||||
|
||||
&.syntax--parameter {
|
||||
color: #606aa1;
|
||||
}
|
||||
}
|
||||
|
||||
// Keywords
|
||||
.syntax--keyword {
|
||||
color: #222;
|
||||
font-weight: bold;
|
||||
|
||||
&.syntax--unit {
|
||||
color: #445588;
|
||||
}
|
||||
|
||||
&.syntax--special-method {
|
||||
color: #0086B3;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--storage {
|
||||
color: #222;
|
||||
|
||||
&.syntax--type {
|
||||
color: #222;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--entity {
|
||||
&.syntax--name.syntax--class {
|
||||
text-decoration: underline;
|
||||
color: #606aa1;
|
||||
}
|
||||
|
||||
&.syntax--other.syntax--inherited-class {
|
||||
text-decoration: underline;
|
||||
color: #606aa1;
|
||||
}
|
||||
|
||||
&.syntax--name.syntax--function {
|
||||
color: #900;
|
||||
}
|
||||
|
||||
&.syntax--name.syntax--tag {
|
||||
color: #008080;
|
||||
}
|
||||
|
||||
&.syntax--other.syntax--attribute-name {
|
||||
color: #458;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&.syntax--name.syntax--filename.syntax--find-in-files {
|
||||
color: #E6DB74;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--support {
|
||||
&.syntax--constant,
|
||||
&.syntax--function,
|
||||
&.syntax--type {
|
||||
color: #458;
|
||||
}
|
||||
|
||||
&.syntax--class {
|
||||
color: #008080;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--invalid {
|
||||
color: #F8F8F0;
|
||||
background-color: #00A8C6;
|
||||
|
||||
&.syntax--deprecated {
|
||||
color: #F8F8F0;
|
||||
background-color: #8FBE00;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.syntax--meta {
|
||||
&.syntax--structure.syntax--dictionary.syntax--json > .syntax--string.syntax--quoted.syntax--double.syntax--json,
|
||||
&.syntax--structure.syntax--dictionary.syntax--json > .syntax--string.syntax--quoted.syntax--double.syntax--json .syntax--punctuation.syntax--string {
|
||||
color: #000080;
|
||||
}
|
||||
|
||||
&.syntax--structure.syntax--dictionary.syntax--value.syntax--json > .syntax--string.syntax--quoted.syntax--double.syntax--json {
|
||||
color: #d14;
|
||||
}
|
||||
|
||||
&.syntax--diff,
|
||||
&.syntax--diff.syntax--header {
|
||||
color: #75715E;
|
||||
}
|
||||
}
|
||||
|
||||
// CSS Styles
|
||||
.syntax--css {
|
||||
&.syntax--support.syntax--property-name {
|
||||
font-weight: bold;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
&.syntax--constant {
|
||||
color: #099;
|
||||
}
|
||||
}
|
||||
|
||||
// Markdown
|
||||
.syntax--source.syntax--gfm {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.syntax--gfm {
|
||||
.syntax--markup.syntax--heading {
|
||||
color: #111;
|
||||
}
|
||||
|
||||
& .syntax--link {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.syntax--variable.syntax--list {
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
|
||||
.syntax--markdown {
|
||||
.syntax--paragraph {
|
||||
color: #444;
|
||||
}
|
||||
|
||||
.syntax--heading {
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.syntax--link {
|
||||
color: #888;
|
||||
|
||||
.syntax--string {
|
||||
color: #888;
|
||||
}
|
||||
}
|
||||
}
|
||||
20
packages/atom-light-ui/LICENSE.md
Normal file
20
packages/atom-light-ui/LICENSE.md
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2014 GitHub Inc.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
9
packages/atom-light-ui/README.md
Normal file
9
packages/atom-light-ui/README.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Atom Light UI theme
|
||||
|
||||
A light UI theme for Atom.
|
||||
|
||||
This theme is installed by default with Atom and can be activated by going to
|
||||
the _Themes_ section in the Settings view (`cmd-,`) and selecting it from the
|
||||
_UI Themes_ drop-down menu.
|
||||
|
||||

|
||||
22
packages/atom-light-ui/index.less
Normal file
22
packages/atom-light-ui/index.less
Normal file
@@ -0,0 +1,22 @@
|
||||
|
||||
// Atom Light UI theme
|
||||
|
||||
@import "styles/ui-variables.less";
|
||||
@import "styles/ui-mixins.less";
|
||||
|
||||
@import "styles/atom.less";
|
||||
@import "styles/utilities.less";
|
||||
@import "styles/text.less";
|
||||
@import "styles/git.less";
|
||||
@import "styles/sites.less";
|
||||
@import "styles/messages.less";
|
||||
@import "styles/progress.less";
|
||||
@import "styles/buttons.less";
|
||||
@import "styles/panels.less";
|
||||
@import "styles/panes.less";
|
||||
@import "styles/lists.less";
|
||||
@import "styles/overlays.less";
|
||||
@import "styles/editor.less";
|
||||
@import "styles/tabs.less";
|
||||
@import "styles/tooltips.less";
|
||||
@import "styles/tree-view.less";
|
||||
11
packages/atom-light-ui/package.json
Normal file
11
packages/atom-light-ui/package.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "atom-light-ui",
|
||||
"theme": "ui",
|
||||
"version": "0.46.3",
|
||||
"description": "A light UI theme for Atom",
|
||||
"repository": "https://github.com/atom/atom.git",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"atom": ">0.50.0"
|
||||
}
|
||||
}
|
||||
21
packages/atom-light-ui/styles/atom.less
Normal file
21
packages/atom-light-ui/styles/atom.less
Normal file
@@ -0,0 +1,21 @@
|
||||
atom-workspace {
|
||||
background-color: @app-background-color;
|
||||
}
|
||||
|
||||
.scrollbars-visible-always {
|
||||
::-webkit-scrollbar {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track,
|
||||
::-webkit-scrollbar-corner {
|
||||
background: @scrollbar-background-color;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: @scrollbar-color;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 1px white inset;
|
||||
}
|
||||
}
|
||||
60
packages/atom-light-ui/styles/buttons.less
Normal file
60
packages/atom-light-ui/styles/buttons.less
Normal file
@@ -0,0 +1,60 @@
|
||||
.btn-background (@color, @hover-color, @selected-color, @border-color, @text-color, @text-color-hover) {
|
||||
@border-shadow: inset 0 0 0 1px @border-color;
|
||||
@active-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
||||
color: @text-color;
|
||||
background-color: transparent;
|
||||
background-image: -webkit-linear-gradient(@color, darken(@color, 8%));
|
||||
box-shadow: @border-shadow;
|
||||
|
||||
&:hover {
|
||||
color: @text-color-hover;
|
||||
background-image: -webkit-linear-gradient(@hover-color, darken(@hover-color, 8%));
|
||||
}
|
||||
&:active,
|
||||
&.selected:hover:active {
|
||||
box-shadow: @active-shadow, @border-shadow;
|
||||
}
|
||||
&.selected,
|
||||
&.selected:hover {
|
||||
color: @text-color-selected;
|
||||
box-shadow: inset 0 2px 5px rgba(0, 0, 0,.3), @border-shadow;
|
||||
text-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
|
||||
background-image: -webkit-linear-gradient(darken(@selected-color, 8%), @selected-color);
|
||||
}
|
||||
&.selected:hover {
|
||||
box-shadow: @border-shadow;
|
||||
background-image: -webkit-linear-gradient(@selected-color, darken(@selected-color, 8%));
|
||||
}
|
||||
}
|
||||
|
||||
.btn-variant (@color) {
|
||||
@bg: darken(@color, 10%);
|
||||
@hover: @color;
|
||||
@selected: @color;
|
||||
@border: fadeout(darken(@color, 20%), 50%);
|
||||
.btn-background(@bg, @hover, @selected, @border, @text-color-selected, @text-color-selected);
|
||||
}
|
||||
|
||||
.btn {
|
||||
.btn-background(@button-background-color, @button-background-color-hover, @button-background-color-selected, @button-border-color, @text-color, @text-color-highlight);
|
||||
}
|
||||
|
||||
.btn.btn-primary {
|
||||
.btn-variant(@background-color-info);
|
||||
}
|
||||
.btn.btn-info {
|
||||
.btn-variant(@background-color-info);
|
||||
}
|
||||
.btn.btn-success {
|
||||
.btn-variant(@background-color-success);
|
||||
}
|
||||
.btn.btn-warning {
|
||||
.btn-variant(@background-color-warning);
|
||||
}
|
||||
.btn.btn-error {
|
||||
.btn-variant(@background-color-error);
|
||||
}
|
||||
|
||||
.btn-group > .btn {
|
||||
border: none;
|
||||
}
|
||||
34
packages/atom-light-ui/styles/editor.less
Normal file
34
packages/atom-light-ui/styles/editor.less
Normal file
@@ -0,0 +1,34 @@
|
||||
atom-text-editor[mini] {
|
||||
color: lighten(@text-color, 15%);
|
||||
background-color: darken(@input-background-color, 1%);
|
||||
border: 1px solid lighten(@input-border-color, 10%);
|
||||
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
border-radius: @component-border-radius;
|
||||
padding-left: @component-padding/2;
|
||||
|
||||
.cursor { border-color: #000; }
|
||||
.selection .region { background-color: rgba(0, 0, 0, .2); }
|
||||
.placeholder-text {
|
||||
color: lighten(@text-color-subtle, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
atom-text-editor[mini].is-focused {
|
||||
color: @text-color;
|
||||
background-color: @input-background-color;
|
||||
border-color: @input-border-color;
|
||||
.placeholder-text {
|
||||
color: @text-color-subtle;
|
||||
}
|
||||
.selection .region {
|
||||
background-color: lighten(@background-color-info, 30%);
|
||||
}
|
||||
}
|
||||
|
||||
// FIXME: these should go in syntax themes?
|
||||
atom-text-editor {
|
||||
.gutter.drop-shadow {
|
||||
-webkit-box-shadow: -2px 0 10px 2px #222;
|
||||
}
|
||||
}
|
||||
6
packages/atom-light-ui/styles/git.less
Normal file
6
packages/atom-light-ui/styles/git.less
Normal file
@@ -0,0 +1,6 @@
|
||||
.status { .text(normal); }
|
||||
.status-added { .text(success); }
|
||||
.status-ignored { .text(subtle); }
|
||||
.status-modified { .text(warning); }
|
||||
.status-removed { .text(error); }
|
||||
.status-renamed { .text(info); }
|
||||
127
packages/atom-light-ui/styles/lists.less
Normal file
127
packages/atom-light-ui/styles/lists.less
Normal file
@@ -0,0 +1,127 @@
|
||||
@import "octicon-mixins.less"; // https://github.com/atom/atom/blob/master/static/variables/octicon-mixins.less
|
||||
|
||||
.list-group, .list-tree {
|
||||
li:not(.list-nested-item),
|
||||
li.list-nested-item > .list-item {
|
||||
.text(normal);
|
||||
}
|
||||
|
||||
.generate-list-item-text-color(@class) {
|
||||
li:not(.list-nested-item).text-@{class},
|
||||
li.list-nested-item.text-@{class} > .list-item {
|
||||
.text(@class);
|
||||
}
|
||||
}
|
||||
.generate-list-item-text-color(subtle);
|
||||
.generate-list-item-text-color(info);
|
||||
.generate-list-item-text-color(success);
|
||||
.generate-list-item-text-color(warning);
|
||||
.generate-list-item-text-color(error);
|
||||
.generate-list-item-text-color(selected);
|
||||
|
||||
.generate-list-item-status-color(@color, @status) {
|
||||
li:not(.list-nested-item).status-@{status},
|
||||
li.list-nested-item.status-@{status} > .list-item {
|
||||
color: @color;
|
||||
}
|
||||
|
||||
li:not(.list-nested-item).selected.status-@{status},
|
||||
li.list-nested-item.selected.status-@{status} > .list-item {
|
||||
color: darken(@color, 7%);
|
||||
}
|
||||
}
|
||||
.generate-list-item-status-color(@text-color-subtle, ignored);
|
||||
.generate-list-item-status-color(@text-color-added, added);
|
||||
.generate-list-item-status-color(@text-color-renamed, renamed);
|
||||
.generate-list-item-status-color(@text-color-modified, modified);
|
||||
.generate-list-item-status-color(@text-color-removed, removed);
|
||||
|
||||
li:not(.list-nested-item).selected,
|
||||
li.list-nested-item.selected > .list-item {
|
||||
.text(selected);
|
||||
}
|
||||
}
|
||||
|
||||
.select-list ol.list-group,
|
||||
&.select-list ol.list-group {
|
||||
li.two-lines {
|
||||
.secondary-line { color: @text-color-subtle; }
|
||||
&.selected .secondary-line {
|
||||
color: lighten(@text-color-subtle, 10%);
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// We want to highlight the background of the list items because we dont
|
||||
// know their size.
|
||||
li.selected {
|
||||
background-color: @background-color-selected;
|
||||
&:before{ display: none; }
|
||||
}
|
||||
|
||||
&.mark-active{
|
||||
@active-icon-size: 14px;
|
||||
|
||||
// pad in front of the text where the icon would be We'll pad the non-
|
||||
// active items with a 'fake' icon so other classes can pad the item
|
||||
// without worrying about the icon padding.
|
||||
li:before {
|
||||
content: '';
|
||||
background-color: transparent;
|
||||
position: static;
|
||||
display: inline-block;
|
||||
left: auto; right: auto;
|
||||
height: @active-icon-size;
|
||||
width: @active-icon-size;
|
||||
}
|
||||
> li:not(.active):before {
|
||||
margin-right: @component-icon-padding;
|
||||
}
|
||||
li.active {
|
||||
.octicon(check, @active-icon-size);
|
||||
&:before {
|
||||
margin-right: @component-icon-padding;
|
||||
color: @text-color-success;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.select-list.popover-list {
|
||||
background-color: @overlay-background-color;
|
||||
box-shadow: 0 0 10px @base-border-color;
|
||||
padding: @component-padding/2;
|
||||
border-radius: @component-border-radius;
|
||||
border: 1px solid @overlay-border-color;
|
||||
|
||||
atom-text-editor {
|
||||
margin-bottom: @component-padding/2;
|
||||
}
|
||||
|
||||
.list-group li {
|
||||
padding-left: @component-padding/2;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-sortable {
|
||||
li {
|
||||
line-height: 2.5;
|
||||
}
|
||||
|
||||
// For sortable lists in the settings view
|
||||
li.ui-sortable-placeholder {
|
||||
visibility: visible !important;
|
||||
background-color: darken(@pane-item-background-color, 10%);
|
||||
}
|
||||
}
|
||||
|
||||
li.ui-draggable-dragging, li.ui-sortable-helper {
|
||||
line-height: @component-line-height;
|
||||
height: @component-line-height;
|
||||
border: 0;
|
||||
border-radius: 0;
|
||||
list-style: none;
|
||||
padding: 0 @component-padding;
|
||||
background: @background-color-highlight;
|
||||
box-shadow: 0 0 1px @base-border-color;
|
||||
}
|
||||
4
packages/atom-light-ui/styles/messages.less
Normal file
4
packages/atom-light-ui/styles/messages.less
Normal file
@@ -0,0 +1,4 @@
|
||||
ul.background-message {
|
||||
font-weight: bold;
|
||||
color: rgba(0, 0, 0, .18);
|
||||
}
|
||||
41
packages/atom-light-ui/styles/overlays.less
Normal file
41
packages/atom-light-ui/styles/overlays.less
Normal file
@@ -0,0 +1,41 @@
|
||||
atom-panel.modal, .overlay {
|
||||
color: @text-color;
|
||||
background-color: @overlay-background-color;
|
||||
padding: @component-padding;
|
||||
border: 1px solid @overlay-border-color;
|
||||
box-shadow: 0 0 10px @base-border-color;
|
||||
border-radius: @component-border-radius;
|
||||
|
||||
atom-text-editor[mini] {
|
||||
margin-bottom: @component-padding;
|
||||
}
|
||||
|
||||
.select-list ol.list-group,
|
||||
&.select-list ol.list-group {
|
||||
|
||||
background-color: @inset-panel-background-color;
|
||||
|
||||
li {
|
||||
padding: @component-padding;
|
||||
border-top: 1px solid @inset-panel-border-color;
|
||||
border-left: 1px solid @inset-panel-border-color;
|
||||
border-right: 1px solid @inset-panel-border-color;
|
||||
&:last-child { border-bottom: 1px solid @inset-panel-border-color; }
|
||||
|
||||
&.two-lines { padding: @component-padding/2 @component-padding; }
|
||||
&.selected {
|
||||
color: @text-color;
|
||||
background-color: @background-color-highlight;
|
||||
}
|
||||
|
||||
.status.icon {
|
||||
float: right;
|
||||
margin-left: @component-icon-padding;
|
||||
&:before {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
55
packages/atom-light-ui/styles/panels.less
Normal file
55
packages/atom-light-ui/styles/panels.less
Normal file
@@ -0,0 +1,55 @@
|
||||
@import "buttons.less";
|
||||
|
||||
.panel {
|
||||
&.bordered {
|
||||
border: 1px solid @base-border-color;
|
||||
border-radius: @component-border-radius;
|
||||
}
|
||||
}
|
||||
|
||||
atom-panel, .tool-panel {
|
||||
.text(normal);
|
||||
position: relative;
|
||||
|
||||
background-color: @tool-panel-background-color;
|
||||
|
||||
&.bottom, &.panel-bottom,
|
||||
&.footer, &.footer-bottom {
|
||||
border-top: 1px solid @tool-panel-border-color;
|
||||
}
|
||||
|
||||
&.left, &.panel-left {
|
||||
border-right: 1px solid @tool-panel-border-color;
|
||||
}
|
||||
|
||||
&.right, &.panel-right {
|
||||
border-left: 1px solid @tool-panel-border-color;
|
||||
}
|
||||
|
||||
.inset-panel {
|
||||
border-radius: @component-border-radius;
|
||||
|
||||
border: 1px solid @tool-panel-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.inset-panel {
|
||||
position: relative;
|
||||
background-color: @inset-panel-background-color;
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
border-bottom: none;
|
||||
padding: @component-padding - 2px @component-padding;
|
||||
|
||||
background-color: transparent;
|
||||
background-image: -webkit-linear-gradient(@panel-heading-background-color, darken(@panel-heading-background-color, 10%));
|
||||
|
||||
.btn {
|
||||
@bg: lighten(@button-background-color, 10%);
|
||||
@hover: lighten(@button-background-color-hover, 10%);
|
||||
@selected: lighten(@button-background-color-selected, 10%);
|
||||
@text: lighten(@text-color, 10%);
|
||||
.btn-background(@bg, @hover, @selected, @button-border-color, @text, @text);
|
||||
}
|
||||
}
|
||||
19
packages/atom-light-ui/styles/panes.less
Normal file
19
packages/atom-light-ui/styles/panes.less
Normal file
@@ -0,0 +1,19 @@
|
||||
atom-pane-container {
|
||||
atom-pane {
|
||||
background-color: lighten(@app-background-color, 3%);
|
||||
|
||||
&:focus {
|
||||
background-color: @app-background-color;
|
||||
}
|
||||
}
|
||||
|
||||
atom-pane-axis.horizontal > * {
|
||||
border-right: 1px solid @pane-item-border-color;
|
||||
&:last-child { border-right: none; }
|
||||
}
|
||||
|
||||
atom-pane-axis.vertical > * {
|
||||
border-bottom: 1px solid @pane-item-border-color;
|
||||
&:last-child { border-bottom: none; }
|
||||
}
|
||||
}
|
||||
69
packages/atom-light-ui/styles/progress.less
Normal file
69
packages/atom-light-ui/styles/progress.less
Normal file
@@ -0,0 +1,69 @@
|
||||
.loading-spinner(@size) {
|
||||
width: @size;
|
||||
height: @size;
|
||||
display: block;
|
||||
|
||||
background-image: url(images/octocat-spinner-128.gif);
|
||||
background-repeat: no-repeat;
|
||||
background-size: cover;
|
||||
|
||||
&.inline-block {
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
.loading-spinner-large {
|
||||
.loading-spinner(64px);
|
||||
}
|
||||
|
||||
.loading-spinner-medium {
|
||||
.loading-spinner(50px);
|
||||
}
|
||||
|
||||
.loading-spinner-small {
|
||||
.loading-spinner(32px);
|
||||
}
|
||||
|
||||
.loading-spinner-tiny {
|
||||
.loading-spinner(20px);
|
||||
}
|
||||
|
||||
// Much learning from:
|
||||
// http://css-tricks.com/html5-progress-element/
|
||||
|
||||
@progress-height: 16px;
|
||||
@progress-shine-gradient: -webkit-linear-gradient(top, rgba(255, 255, 255, .15), rgba(0, 0, 0, .15));
|
||||
|
||||
progress {
|
||||
height: @progress-height;
|
||||
-webkit-appearance: none;
|
||||
border-radius: @component-border-radius;
|
||||
background-color: #ccc;
|
||||
background-image:
|
||||
-webkit-linear-gradient(-30deg,
|
||||
transparent 33%, rgba(0, 0, 0, .1) 33%,
|
||||
rgba(0,0, 0, .1) 66%, transparent 66%),
|
||||
@progress-shine-gradient;
|
||||
border-radius: 2px;
|
||||
background-size: 25px @progress-height, 100% 100%, 100% 100%;
|
||||
-webkit-animation: animate-stripes 5s linear 6; // stop animation after 6 runs (30s) to limit CPU usage
|
||||
}
|
||||
|
||||
progress::-webkit-progress-bar {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
progress::-webkit-progress-value {
|
||||
border-radius: @component-border-radius;
|
||||
background-image: @progress-shine-gradient;
|
||||
background-color: @background-color-info;
|
||||
}
|
||||
|
||||
progress[value] {
|
||||
background-image: @progress-shine-gradient;
|
||||
-webkit-animation: none;
|
||||
}
|
||||
|
||||
@-webkit-keyframes animate-stripes {
|
||||
100% { background-position: 100px 0px; }
|
||||
}
|
||||
11
packages/atom-light-ui/styles/sites.less
Normal file
11
packages/atom-light-ui/styles/sites.less
Normal file
@@ -0,0 +1,11 @@
|
||||
.ui-site(@num, @color) {
|
||||
.ui-site-@{num} {
|
||||
background-color: @color;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-site(1, @ui-site-color-1);
|
||||
.ui-site(2, @ui-site-color-2);
|
||||
.ui-site(3, @ui-site-color-3);
|
||||
.ui-site(4, @ui-site-color-4);
|
||||
.ui-site(5, @ui-site-color-5);
|
||||
151
packages/atom-light-ui/styles/tabs.less
Normal file
151
packages/atom-light-ui/styles/tabs.less
Normal file
@@ -0,0 +1,151 @@
|
||||
@tab-radius: 3px;
|
||||
@modified-icon-width: 8px;
|
||||
@tab-skew: 30deg;
|
||||
@tab-top-padding: 5px;
|
||||
@tab-bottom-border-height: 5px;
|
||||
@tab-border: 1px solid @tab-border-color;
|
||||
@tab-bar-bottom-border-color: @tab-border-color;
|
||||
@tab-max-width: 160px;
|
||||
|
||||
.tab-bar {
|
||||
height: @tab-height + @tab-top-padding + @tab-bottom-border-height;
|
||||
background-image: -webkit-linear-gradient(top, @tab-bar-background-color, lighten(@tab-bar-background-color, 9%));
|
||||
box-shadow: inset 0 -8px 8px -4px rgba(0,0,0, .15);
|
||||
padding: 0 10px 0 25px;
|
||||
overflow-x: auto;
|
||||
overflow-y: hidden;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tab {
|
||||
position: relative;
|
||||
top: @tab-top-padding;
|
||||
max-width: @tab-max-width;
|
||||
height: @tab-height;
|
||||
line-height: @tab-height;
|
||||
color: @text-color;
|
||||
padding: 0;
|
||||
margin: 0 20px 0 5px;
|
||||
|
||||
box-shadow: inset -1px -1px 1px rgba(0,0,0, .05);
|
||||
transition: color .1s ease-in;
|
||||
|
||||
&, &:before, &:after {
|
||||
background-image: -webkit-linear-gradient(top, @tab-background-color, darken(@tab-background-color, 6%));
|
||||
border-top: @tab-border;
|
||||
}
|
||||
|
||||
&:before, &:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -1px;
|
||||
width: 25px;
|
||||
height: @tab-height;
|
||||
}
|
||||
|
||||
// left angled edge
|
||||
&:before {
|
||||
left: -14px;
|
||||
border-top-left-radius: @tab-radius;
|
||||
border-left: @tab-border;
|
||||
box-shadow: inset 1px -1px 1px rgba(0,0,0, .05);
|
||||
-webkit-transform: skewX(-@tab-skew);
|
||||
}
|
||||
|
||||
// right angled edge
|
||||
&:after {
|
||||
right: -14px;
|
||||
border-top-right-radius: @tab-radius;
|
||||
border-right: @tab-border;
|
||||
box-shadow: inset -1px -1px 1px rgba(0,0,0, .05);
|
||||
-webkit-transform: skewX(@tab-skew);
|
||||
}
|
||||
|
||||
.close-icon {
|
||||
right: 0;
|
||||
z-index: 3;
|
||||
text-align: right;
|
||||
line-height: @tab-height;
|
||||
color: @text-color;
|
||||
|
||||
&:hover {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
&.modified:not(:hover) .close-icon {
|
||||
right: 0;
|
||||
top: @tab-height/2 - @modified-icon-width/2 + 1px;
|
||||
width: @modified-icon-width;
|
||||
height: @modified-icon-width;
|
||||
}
|
||||
|
||||
&.modified:hover .close-icon:hover {
|
||||
color: @text-color-highlight;
|
||||
}
|
||||
|
||||
.title {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
margin-top: -@tab-top-padding - 1px;
|
||||
padding-top: @tab-top-padding + 1px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.tab.active {
|
||||
z-index: 1;
|
||||
color: @text-color-highlight;
|
||||
|
||||
.close-icon {
|
||||
line-height: @tab-height - 1px;
|
||||
color: @text-color;
|
||||
}
|
||||
|
||||
&, &:before, &:after {
|
||||
background: @tab-background-color-active;
|
||||
height: @tab-height + 1px;
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
.tab:hover {
|
||||
color: @text-color-highlight;
|
||||
}
|
||||
|
||||
.tab.active:hover .close-icon {
|
||||
color: @text-color;
|
||||
|
||||
&:hover {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.placeholder {
|
||||
height: @tab-height + @tab-top-padding + @tab-bottom-border-height;
|
||||
pointer-events: none;
|
||||
&:before {
|
||||
margin-left: -9px; // center between tabs
|
||||
}
|
||||
&:after {
|
||||
top: @tab-height + @tab-top-padding + @tab-bottom-border-height - 2px;
|
||||
margin-left: -10px; // center between tabs
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// border
|
||||
.tab-bar + .item-views::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: -5px;
|
||||
height: @tab-bottom-border-height;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background-color: @tab-background-color-active;
|
||||
border-top: 1px solid @tab-border-color;
|
||||
border-bottom: 1px solid @tab-bar-bottom-border-color;
|
||||
pointer-events: none;
|
||||
}
|
||||
78
packages/atom-light-ui/styles/text.less
Normal file
78
packages/atom-light-ui/styles/text.less
Normal file
@@ -0,0 +1,78 @@
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
line-height: 1em;
|
||||
margin-bottom: 15px
|
||||
}
|
||||
h1 { font-size: 2em; }
|
||||
h2 { font-size: 1.5em; }
|
||||
h3 { font-size: 1.2em; }
|
||||
|
||||
p {
|
||||
line-height: 1.6;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
pre {
|
||||
box-shadow: none;
|
||||
color: @text-color;
|
||||
background: @inset-panel-background-color;
|
||||
border-radius: @component-border-radius;
|
||||
border: none;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
code {
|
||||
.text(highlight);
|
||||
background: @background-color-highlight;
|
||||
border-radius: @component-border-radius;
|
||||
}
|
||||
|
||||
.selected { .text(highlight); }
|
||||
|
||||
.text-smaller { font-size: 0.9em; }
|
||||
|
||||
.text-subtle { .text(subtle); }
|
||||
.text-highlight { .text(highlight); }
|
||||
|
||||
.text-error { .text(error); }
|
||||
.text-info {
|
||||
.text(info);
|
||||
&:hover { color: @text-color-info; }
|
||||
}
|
||||
.text-warning {
|
||||
.text(warning);
|
||||
&:hover { color: @text-color-warning; }
|
||||
}
|
||||
.text-success {
|
||||
.text(success);
|
||||
&:hover { color: @text-color-success; }
|
||||
}
|
||||
|
||||
.highlight {
|
||||
color: @text-color-highlight;
|
||||
font-weight: bold;
|
||||
text-shadow: none;
|
||||
background-color: @background-color-highlight;
|
||||
border-radius: @component-border-radius;
|
||||
padding: 1px 3px;
|
||||
}
|
||||
|
||||
.highlight-color(@name, @color) {
|
||||
.highlight-@{name} {
|
||||
color: @text-color-highlight;
|
||||
font-weight: bold;
|
||||
text-shadow: none;
|
||||
background-color: @color;
|
||||
border-radius: @component-border-radius;
|
||||
padding: 1px 3px;
|
||||
}
|
||||
}
|
||||
.highlight-color(info, @background-color-info);
|
||||
.highlight-color(warning, @background-color-warning);
|
||||
.highlight-color(error, @background-color-error);
|
||||
.highlight-color(success, @background-color-success);
|
||||
48
packages/atom-light-ui/styles/tooltips.less
Normal file
48
packages/atom-light-ui/styles/tooltips.less
Normal file
@@ -0,0 +1,48 @@
|
||||
.tooltip {
|
||||
@tip-background-color: #333;
|
||||
@tip-text-color: #fff;
|
||||
white-space: nowrap;
|
||||
|
||||
.keystroke {
|
||||
font-family: Helvetica, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
color: #c0c0c0;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
&.in { opacity: 1; }
|
||||
|
||||
.tooltip-inner {
|
||||
line-height: 19px;
|
||||
border-radius: @component-border-radius;
|
||||
background-color: @tip-background-color;
|
||||
color: @tip-text-color;
|
||||
white-space: nowrap;
|
||||
max-width: none;
|
||||
}
|
||||
|
||||
&.top .tooltip-arrow {
|
||||
border-top-color: @tip-background-color;
|
||||
}
|
||||
&.top-left .tooltip-arrow {
|
||||
border-top-color: @tip-background-color;
|
||||
}
|
||||
&.top-right .tooltip-arrow {
|
||||
border-top-color: @tip-background-color;
|
||||
}
|
||||
&.right .tooltip-arrow {
|
||||
border-right-color: @tip-background-color;
|
||||
}
|
||||
&.left .tooltip-arrow {
|
||||
border-left-color: @tip-background-color;
|
||||
}
|
||||
&.bottom .tooltip-arrow {
|
||||
border-bottom-color: @tip-background-color;
|
||||
}
|
||||
&.bottom-left .tooltip-arrow {
|
||||
border-bottom-color: @tip-background-color;
|
||||
}
|
||||
&.bottom-right .tooltip-arrow {
|
||||
border-bottom-color: @tip-background-color;
|
||||
}
|
||||
}
|
||||
29
packages/atom-light-ui/styles/tree-view.less
Normal file
29
packages/atom-light-ui/styles/tree-view.less
Normal file
@@ -0,0 +1,29 @@
|
||||
.tree-view {
|
||||
font-size: @font-size;
|
||||
background: @tree-view-background-color;
|
||||
|
||||
.selected:before {
|
||||
background: #d0d0d0;
|
||||
}
|
||||
}
|
||||
|
||||
.tree-view-resizer {
|
||||
.tree-view-resize-handle {
|
||||
width: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.focusable-panel {
|
||||
opacity: 1;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8ecf1), to(#ebebeb));
|
||||
background-image: -webkit-linear-gradient(top, #e8ecf1, #ebebeb);
|
||||
|
||||
&:focus {
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(#e8ecf1),to(#d1d8e0));
|
||||
background-image: -webkit-linear-gradient(top, #e8ecf1, #d1d8e0);
|
||||
|
||||
.selected:before {
|
||||
background: @background-color-selected;
|
||||
}
|
||||
}
|
||||
}
|
||||
38
packages/atom-light-ui/styles/ui-mixins.less
Normal file
38
packages/atom-light-ui/styles/ui-mixins.less
Normal file
@@ -0,0 +1,38 @@
|
||||
// Pattern matching; ish is cray.
|
||||
// http://lesscss.org/#-pattern-matching-and-guard-expressions
|
||||
.text(normal) {
|
||||
font-weight: normal;
|
||||
color: @text-color;
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
|
||||
}
|
||||
.text(subtle) {
|
||||
font-weight: normal;
|
||||
color: @text-color-subtle;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(highlight) {
|
||||
font-weight: normal;
|
||||
color: @text-color-highlight;
|
||||
}
|
||||
.text(selected) {
|
||||
font-weight: normal;
|
||||
color: @text-color-selected;
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.text(info) {
|
||||
color: @text-color-info;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(success) {
|
||||
color: @text-color-success;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(warning) {
|
||||
color: @text-color-warning;
|
||||
text-shadow: none;
|
||||
}
|
||||
.text(error) {
|
||||
color: @text-color-error;
|
||||
text-shadow: none;
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user