mirror of
https://github.com/atom/atom.git
synced 2026-01-23 22:08:08 -05:00
Merge remote-tracking branch 'origin/master' into mkt-use-apm-with-npm3-and-node-4
This commit is contained in:
@@ -10,6 +10,7 @@ These are just guidelines, not rules, use your best judgment and feel free to pr
|
||||
[What should I know before I get started?](#what-should-i-know-before-i-get-started)
|
||||
* [Code of Conduct](#code-of-conduct)
|
||||
* [Atom and Packages](#atom-and-packages)
|
||||
* [Atom Design Decisions](#design-decisions)
|
||||
|
||||
[How Can I Contribute?](#how-can-i-contribute)
|
||||
* [Reporting Bugs](#reporting-bugs)
|
||||
@@ -72,6 +73,10 @@ For more information on how to work with Atom's official packages, see [Contribu
|
||||
Also, because Atom is so extensible, it's possible that a feature you've become accustomed to in Atom or an issue you're encountering aren't coming from a bundled package at all, but rather a [community package](https://atom.io/packages) you've installed.
|
||||
Each community package has its own repository too, and you should be able to find it in Settings > Packages for the packages you installed and contribute there.
|
||||
|
||||
### Design Decisions
|
||||
|
||||
When we make a significant decision in how we maintain the project and what we can or cannot support, we will be documenting them in the [atom/design-decisions repository](https://github.com/atom/design-decisions). If you have a question around how we do things, check to see if it is documented there. If it is *not* documented there, please open a new topic on [Discuss, the official Atom message board](https://discuss.atom.io) and ask your question.
|
||||
|
||||
## How Can I Contribute?
|
||||
|
||||
### Reporting Bugs
|
||||
@@ -98,8 +103,8 @@ Explain the problem and include additional details to help maintainers reproduce
|
||||
* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples. If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
|
||||
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
|
||||
* **Explain which behavior you expected to see instead and why.**
|
||||
* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. If you use the keyboard while following the steps, **record the GIF with the [Keybinding Resolver](https://github.com/atom/keybinding-resolver) shown**. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on OSX and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux.
|
||||
* **If you're reporting that Atom crashed**, include a crash report with a stack trace from the operating system. On OSX, the crash report will be available in `Console.app` under "Diagnostic and usage information" > "User diagnostic reports". Include the crash report in the issue in a [code block](https://help.github.com/articles/markdown-basics/#multiple-lines), a [file attachment](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/), or put it in a [gist](https://gist.github.com/) and provide link to that gist.
|
||||
* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. If you use the keyboard while following the steps, **record the GIF with the [Keybinding Resolver](https://github.com/atom/keybinding-resolver) shown**. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux.
|
||||
* **If you're reporting that Atom crashed**, include a crash report with a stack trace from the operating system. On macOS, the crash report will be available in `Console.app` under "Diagnostic and usage information" > "User diagnostic reports". Include the crash report in the issue in a [code block](https://help.github.com/articles/markdown-basics/#multiple-lines), a [file attachment](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests/), or put it in a [gist](https://gist.github.com/) and provide link to that gist.
|
||||
* **If the problem is related to performance**, include a [CPU profile capture and a screenshot](http://flight-manual.atom.io/hacking-atom/sections/debugging/#diagnose-performance-problems-with-the-dev-tools-cpu-profiler) with your report.
|
||||
* **If the Chrome's developer tools pane is shown without you triggering it**, that normally means that an exception was thrown. The Console tab will include an entry for the exception. Expand the exception so that the stack trace is visible, and provide the full exception and stack trace in a [code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines) and as a screenshot.
|
||||
* **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below.
|
||||
@@ -179,7 +184,7 @@ Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com
|
||||
* **Provide a step-by-step description of the suggested enhancement** in as many details as possible.
|
||||
* **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
|
||||
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
|
||||
* **Include screenshots and animated GIFs** which help you demonstrate the steps or point out the part of Atom which the suggestion is related to. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on OSX and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux.
|
||||
* **Include screenshots and animated GIFs** which help you demonstrate the steps or point out the part of Atom which the suggestion is related to. You can use [this tool](http://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux.
|
||||
* **Explain why this enhancement would be useful** to most Atom users and isn't something that can or should be implemented as a [community package](#atom-and-packages).
|
||||
* **List some other text editors or applications where this enhancement exists.**
|
||||
* **Specify which version of Atom you're using.** You can get the exact version by running `atom -v` in your terminal, or by starting Atom and running the `Application: About` command from the [Command Palette](https://github.com/atom/command-palette).
|
||||
@@ -264,7 +269,7 @@ If you want to read about using Atom or developing packages in Atom, the [Atom F
|
||||
* :non-potable_water: `:non-potable_water:` when plugging memory leaks
|
||||
* :memo: `:memo:` when writing docs
|
||||
* :penguin: `:penguin:` when fixing something on Linux
|
||||
* :apple: `:apple:` when fixing something on Mac OS
|
||||
* :apple: `:apple:` when fixing something on macOS
|
||||
* :checkered_flag: `:checkered_flag:` when fixing something on Windows
|
||||
* :bug: `:bug:` when fixing a bug
|
||||
* :fire: `:fire:` when removing code or files
|
||||
@@ -377,7 +382,7 @@ Please open an issue on `atom/atom` if you have suggestions for new labels, and
|
||||
| --- | --- | --- | --- |
|
||||
| `windows` | [search][search-atom-repo-label-windows] | [search][search-atom-org-label-windows] | Related to Atom running on Windows. |
|
||||
| `linux` | [search][search-atom-repo-label-linux] | [search][search-atom-org-label-linux] | Related to Atom running on Linux. |
|
||||
| `mac` | [search][search-atom-repo-label-mac] | [search][search-atom-org-label-mac] | Related to Atom running on OSX. |
|
||||
| `mac` | [search][search-atom-repo-label-mac] | [search][search-atom-org-label-mac] | Related to Atom running on macOS. |
|
||||
| `documentation` | [search][search-atom-repo-label-documentation] | [search][search-atom-org-label-documentation] | Related to any type of documentation (e.g. [API documentation](https://atom.io/docs/api/latest/) and the [flight manual](http://flight-manual.atom.io/)). |
|
||||
| `performance` | [search][search-atom-repo-label-performance] | [search][search-atom-org-label-performance] | Related to performance. |
|
||||
| `security` | [search][search-atom-repo-label-security] | [search][search-atom-org-label-security] | Related to security. |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||

|
||||
|
||||
[](https://travis-ci.org/atom/atom) [](https://ci.appveyor.com/project/Atom/atom)
|
||||
[](https://travis-ci.org/atom/atom) [](https://ci.appveyor.com/project/Atom/atom)
|
||||
[](https://david-dm.org/atom/atom)
|
||||
[](http://atom-slack.herokuapp.com/)
|
||||
|
||||
@@ -25,7 +25,7 @@ The [API reference](https://atom.io/docs/api) for developing packages is also do
|
||||
### Prerequisites
|
||||
- [Git](https://git-scm.com/)
|
||||
|
||||
### OS X
|
||||
### macOS
|
||||
|
||||
Download the latest [Atom release](https://github.com/atom/atom/releases/latest).
|
||||
|
||||
@@ -95,6 +95,6 @@ repeat these steps to upgrade to future releases.
|
||||
## Building
|
||||
|
||||
* [Linux](docs/build-instructions/linux.md)
|
||||
* [OS X](docs/build-instructions/os-x.md)
|
||||
* [macOS](docs/build-instructions/macos.md)
|
||||
* [FreeBSD](docs/build-instructions/freebsd.md)
|
||||
* [Windows](docs/build-instructions/windows.md)
|
||||
|
||||
@@ -59,12 +59,6 @@ module.exports = (grunt) ->
|
||||
path.join('ohnogit', 'node_modules', 'nodegit', 'node_modules', '.bin')
|
||||
path.join('oniguruma', 'deps')
|
||||
path.join('less', 'dist')
|
||||
path.join('bootstrap', 'docs')
|
||||
path.join('bootstrap', 'dist')
|
||||
path.join('bootstrap', 'fonts')
|
||||
path.join('bootstrap', '_config.yml')
|
||||
path.join('bootstrap', '_includes')
|
||||
path.join('bootstrap', '_layouts')
|
||||
path.join('npm', 'doc')
|
||||
path.join('npm', 'html')
|
||||
path.join('npm', 'man')
|
||||
@@ -141,7 +135,7 @@ module.exports = (grunt) ->
|
||||
ignoredPaths.push "#{_.escapeRegExp(path.sep)}linker\\.lock$"
|
||||
ignoredPaths.push "#{_.escapeRegExp(path.join('build', 'Release') + path.sep)}.+\\.node\\.dSYM"
|
||||
|
||||
# Hunspell dictionaries are only not needed on OS X.
|
||||
# Hunspell dictionaries are only not needed on macOS.
|
||||
if process.platform is 'darwin'
|
||||
ignoredPaths.push path.join('spellchecker', 'vendor', 'hunspell_dictionaries')
|
||||
ignoredPaths = ignoredPaths.map (ignoredPath) -> "(#{ignoredPath})"
|
||||
|
||||
@@ -5,7 +5,7 @@ request = require 'request'
|
||||
module.exports = (grunt) ->
|
||||
{spawn} = require('./task-helpers')(grunt)
|
||||
|
||||
# Mac OS X code signing
|
||||
# macOS code signing
|
||||
|
||||
grunt.registerTask 'codesign:app', 'CodeSign Atom.app', ->
|
||||
done = @async()
|
||||
|
||||
@@ -8,24 +8,6 @@ module.exports = (grunt) ->
|
||||
cacheMisses = 0
|
||||
cacheHits = 0
|
||||
|
||||
compileBootstrap = ->
|
||||
appDir = grunt.config.get('atom.appDir')
|
||||
bootstrapLessPath = path.join(appDir, 'static', 'bootstrap.less')
|
||||
bootstrapCssPath = path.join(appDir, 'static', 'bootstrap.css')
|
||||
|
||||
lessCache = new LessCache
|
||||
cacheDir: temp.mkdirSync('atom-less-cache')
|
||||
fallbackDir: grunt.config.get('prebuild-less.options.cachePath')
|
||||
syncCaches: true
|
||||
resourcePath: path.resolve('.')
|
||||
|
||||
bootstrapCss = lessCache.readFileSync(bootstrapLessPath)
|
||||
grunt.file.write(bootstrapCssPath, bootstrapCss)
|
||||
rm(bootstrapLessPath)
|
||||
rm(path.join(appDir, 'node_modules', 'bootstrap', 'less'))
|
||||
cacheMisses += lessCache.stats.misses
|
||||
cacheHits += lessCache.stats.hits
|
||||
|
||||
importFallbackVariables = (lessFilePath) ->
|
||||
if lessFilePath.indexOf('static') is 0
|
||||
false
|
||||
@@ -33,8 +15,6 @@ module.exports = (grunt) ->
|
||||
true
|
||||
|
||||
grunt.registerMultiTask 'prebuild-less', 'Prebuild cached of compiled Less files', ->
|
||||
compileBootstrap()
|
||||
|
||||
uiThemes = [
|
||||
'atom-dark-ui'
|
||||
'atom-light-ui'
|
||||
|
||||
@@ -10,7 +10,7 @@ In this directory you can only find very specific build and API level documentat
|
||||
|
||||
Instructions for building Atom on various platforms from source.
|
||||
|
||||
* [OS X](build-instructions/os-x.md)
|
||||
* [macOS](build-instructions/macos.md)
|
||||
* [Windows](build-instructions/windows.md)
|
||||
* [Linux](build-instructions/linux.md)
|
||||
* [FreeBSD](build-instructions/freebsd.md)
|
||||
|
||||
112
docs/build-instructions/build-status.md
Normal file
112
docs/build-instructions/build-status.md
Normal file
@@ -0,0 +1,112 @@
|
||||
# Atom build status
|
||||
|
||||
| System | macOS | Windows | Dependencies |
|
||||
|--------|------|---------|--------------|
|
||||
| Atom | [](https://travis-ci.org/atom/atom) | [](https://ci.appveyor.com/project/Atom/atom) | [](https://david-dm.org/atom/atom) |
|
||||
| APM | [](https://travis-ci.org/atom/apm) | [](https://ci.appveyor.com/project/Atom/apm/branch/master) | [](https://david-dm.org/atom/apm) |
|
||||
| Electron | [](https://travis-ci.org/electron/electron) | [](https://ci.appveyor.com/project/Atom/electron) | [](https://david-dm.org/electron/electron)
|
||||
|
||||
## Packages
|
||||
|
||||
| Package | macOS | Windows | Dependencies |
|
||||
|---------|------|---------|--------------|
|
||||
| About | [](https://travis-ci.org/atom/about) | [](https://ci.appveyor.com/project/atom/about/branch/master) | [](https://david-dm.org/atom/about) |
|
||||
| Archive View | [](https://travis-ci.org/atom/archive-view) | [](https://ci.appveyor.com/project/Atom/archive-view/branch/master) | [](https://david-dm.org/atom/archive-view) |
|
||||
| AutoComplete Atom API | [](https://travis-ci.org/atom/autocomplete-atom-api) | [](https://ci.appveyor.com/project/Atom/autocomplete-atom-api/branch/master) | [](https://david-dm.org/atom/autocomplete-atom-api) |
|
||||
| Atom Space Pen Views | [](https://travis-ci.org/atom/atom-space-pen-views) | [](https://ci.appveyor.com/project/Atom/atom-space-pen-views/branch/master) | [](https://david-dm.org/atom/atom-space-pen-views) |
|
||||
| AutoComplete CSS | [](https://travis-ci.org/atom/autocomplete-css) | [](https://ci.appveyor.com/project/Atom/autocomplete-css/branch/master) | [](https://david-dm.org/atom/autocomplete-css) |
|
||||
| AutoComplete HTML | [](https://travis-ci.org/atom/autocomplete-html) | [](https://ci.appveyor.com/project/Atom/autocomplete-html/branch/master) | [](https://david-dm.org/atom/autocomplete-html) |
|
||||
| AutoComplete+ | [](https://travis-ci.org/atom/autocomplete-plus) | [](https://ci.appveyor.com/project/Atom/autocomplete-plus/branch/master) | [](https://david-dm.org/atom/autocomplete-plus) |
|
||||
| AutoComplete Snippets | [](https://travis-ci.org/atom/autocomplete-snippets) | [](https://ci.appveyor.com/project/Atom/autocomplete-snippets/branch/master) | [](https://david-dm.org/atom/autocomplete-snippets) |
|
||||
| AutoFlow | [](https://travis-ci.org/atom/autoflow) | [](https://ci.appveyor.com/project/Atom/autoflow/branch/master) | [](https://david-dm.org/atom/autoflow) |
|
||||
| AutoSave | [](https://travis-ci.org/atom/autosave) | [](https://ci.appveyor.com/project/Atom/autosave/branch/master) | [](https://david-dm.org/atom/autosave) |
|
||||
| Background Tips | [](https://travis-ci.org/atom/background-tips) | [](https://ci.appveyor.com/project/Atom/background-tips/branch/master) | [](https://david-dm.org/atom/background-tips) |
|
||||
| Bookmarks | [](https://travis-ci.org/atom/bookmarks) | [](https://ci.appveyor.com/project/Atom/bookmarks/branch/master) | [](https://david-dm.org/atom/bookmarks) |
|
||||
| Bracket Matcher | [](https://travis-ci.org/atom/bracket-matcher) | [](https://ci.appveyor.com/project/Atom/bracket-matcher/branch/master) | [](https://david-dm.org/atom/bracket-matcher) |
|
||||
| Command Palette | [](https://travis-ci.org/atom/command-palette) | [](https://ci.appveyor.com/project/Atom/command-palette/branch/master) | [](https://david-dm.org/atom/command-palette) |
|
||||
| Deprecation Cop | [](https://travis-ci.org/atom/deprecation-cop) | [](https://ci.appveyor.com/project/Atom/deprecation-cop/branch/master) | [](https://david-dm.org/atom/deprecation-cop) |
|
||||
| Dev Live Reload | [](https://travis-ci.org/atom/dev-live-reload) | [](https://ci.appveyor.com/project/Atom/dev-live-reload/branch/master) | [](https://david-dm.org/atom/dev-live-reload) |
|
||||
| Encoding Selector | [](https://travis-ci.org/atom/encoding-selector) | [](https://ci.appveyor.com/project/Atom/encoding-selector/branch/master) | [](https://david-dm.org/atom/encoding-selector) |
|
||||
| Exception Reporting | [](https://travis-ci.org/atom/exception-reporting) | [](https://ci.appveyor.com/project/Atom/exception-reporting/branch/master) | [](https://david-dm.org/atom/exception-reporting) |
|
||||
| Find and Replace | [](https://travis-ci.org/atom/find-and-replace) | [](https://ci.appveyor.com/project/Atom/find-and-replace/branch/master) | [](https://david-dm.org/atom/find-and-replace) |
|
||||
| Fuzzy Finder | [](https://travis-ci.org/atom/fuzzy-finder) | [](https://ci.appveyor.com/project/Atom/fuzzy-finder/branch/master) | [](https://david-dm.org/atom/fuzzy-finder) |
|
||||
| Git Diff | [](https://travis-ci.org/atom/git-diff) | [](https://ci.appveyor.com/project/Atom/git-diff/branch/master) | [](https://david-dm.org/atom/git-diff) |
|
||||
| Go to Line | [](https://travis-ci.org/atom/go-to-line) | [](https://ci.appveyor.com/project/Atom/go-to-line/branch/master) | [](https://david-dm.org/atom/go-to-line) |
|
||||
| Grammar Selector | [](https://travis-ci.org/atom/grammar-selector) | [](https://ci.appveyor.com/project/Atom/grammar-selector/branch/master) | [](https://david-dm.org/atom/grammar-selector) |
|
||||
| Image View | [](https://travis-ci.org/atom/image-view) | [](https://ci.appveyor.com/project/Atom/image-view/branch/master) | [](https://david-dm.org/atom/image-view) |
|
||||
| Incompatible Packages | [](https://travis-ci.org/atom/incompatible-packages) | [](https://ci.appveyor.com/project/Atom/incompatible-packages/branch/master) | [](https://david-dm.org/atom/incompatible-packages) |
|
||||
| Keybinding Resolver | [](https://travis-ci.org/atom/keybinding-resolver) | [](https://ci.appveyor.com/project/Atom/keybinding-resolver/branch/master) | [](https://david-dm.org/atom/keybinding-resolver) |
|
||||
| Line Ending Selector | [](https://travis-ci.org/atom/line-ending-selector) | [](https://ci.appveyor.com/project/Atom/line-ending-selector/branch/master) | [](https://david-dm.org/atom/line-ending-selector) |
|
||||
| Link | [](https://travis-ci.org/atom/link) | [](https://ci.appveyor.com/project/Atom/link/branch/master) | [](https://david-dm.org/atom/link) |
|
||||
| Markdown Preview | [](https://travis-ci.org/atom/markdown-preview) | [](https://ci.appveyor.com/project/Atom/markdown-preview/branch/master) | [](https://david-dm.org/atom/markdown-preview) |
|
||||
| Metrics | [](https://travis-ci.org/atom/metrics) | [](https://ci.appveyor.com/project/Atom/metrics/branch/master) | [](https://david-dm.org/atom/metrics) |
|
||||
| Notifications | [](https://travis-ci.org/atom/notifications) | [](https://ci.appveyor.com/project/Atom/notifications/branch/master) | [](https://david-dm.org/atom/notifications) |
|
||||
| Open on Github | [](https://travis-ci.org/atom/open-on-github) | [](https://ci.appveyor.com/project/Atom/open-on-github/branch/master) | [](https://david-dm.org/atom/open-on-github) |
|
||||
| Package Generator | [](https://travis-ci.org/atom/package-generator)| [](https://ci.appveyor.com/project/Atom/package-generator/branch/master) | [](https://david-dm.org/atom/package-generator) |
|
||||
| Settings View | [](https://travis-ci.org/atom/settings-view) | [](https://ci.appveyor.com/project/Atom/settings-view/branch/master) | [](https://david-dm.org/atom/settings-view) |
|
||||
| Snippets | [](https://travis-ci.org/atom/snippets) | [](https://ci.appveyor.com/project/Atom/snippets/branch/master) | [](https://david-dm.org/atom/snippets) |
|
||||
| Spell Check | [](https://travis-ci.org/atom/spell-check) | [](https://ci.appveyor.com/project/Atom/spell-check/branch/master) | [](https://david-dm.org/atom/spell-check) |
|
||||
| Status Bar | [](https://travis-ci.org/atom/status-bar) | [](https://ci.appveyor.com/project/Atom/status-bar/branch/master) | [](https://david-dm.org/atom/status-bar) |
|
||||
| Styleguide | [](https://travis-ci.org/atom/styleguide) | [](https://ci.appveyor.com/project/Atom/styleguide/branch/master) | [](https://david-dm.org/atom/styleguide) |
|
||||
| Symbols View | [](https://travis-ci.org/atom/symbols-view) | [](https://ci.appveyor.com/project/Atom/symbols-view/branch/master) | [](https://david-dm.org/atom/symbols-view) |
|
||||
| Tabs | [](https://travis-ci.org/atom/tabs) | [](https://ci.appveyor.com/project/Atom/tabs/branch/master) | [](https://david-dm.org/atom/tabs) |
|
||||
| Timecop | [](https://travis-ci.org/atom/timecop) | [](https://ci.appveyor.com/project/Atom/timecop/branch/master) | [](https://david-dm.org/atom/timecop) |
|
||||
| Tree View | [](https://travis-ci.org/atom/tree-view) | [](https://ci.appveyor.com/project/Atom/tree-view/branch/master) | [](https://david-dm.org/atom/tree-view) |
|
||||
| Update Package Dependencies | [](https://travis-ci.org/atom/update-package-dependencies) | [](https://ci.appveyor.com/project/Atom/update-package-dependencies/branch/master) | [](https://david-dm.org/atom/update-package-dependencies) |
|
||||
| Welcome | [](https://travis-ci.org/atom/welcome) | [](https://ci.appveyor.com/project/Atom/welcome/branch/master) | [](https://david-dm.org/atom/welcome) |
|
||||
| Whitespace | [](https://travis-ci.org/atom/whitespace) | [](https://ci.appveyor.com/project/Atom/whitespace/branch/master) | [](https://david-dm.org/atom/whitespace) |
|
||||
| Wrap Guide | [](https://travis-ci.org/atom/wrap-guide) | [](https://ci.appveyor.com/project/Atom/wrap-guide/branch/master) | [](https://david-dm.org/atom/wrap-guide) |
|
||||
|
||||
|
||||
## Libraries
|
||||
|
||||
| Library | macOS | Windows | Dependencies |
|
||||
|---------|------|---------|--------------|
|
||||
| Clear Cut | [](https://travis-ci.org/atom/clear-cut) | [](https://ci.appveyor.com/project/Atom/clear-cut/branch/master) | [](https://david-dm.org/atom/clear-cut) |
|
||||
| Event Kit | [](https://travis-ci.org/atom/event-kit) | [](https://ci.appveyor.com/project/Atom/event-kit/branch/master) | [](https://david-dm.org/atom/event-kit) |
|
||||
| Fs Plus | [](https://travis-ci.org/atom/fs-plus) | [](https://ci.appveyor.com/project/Atom/fs-plus/branch/master) | [](https://david-dm.org/atom/fs-plus) |
|
||||
| Grim | [](https://travis-ci.org/atom/grim) | [](https://ci.appveyor.com/project/Atom/grim/branch/master) | [](https://david-dm.org/atom/grim) |
|
||||
| Jasmine Focused | [](https://travis-ci.org/atom/grim) | [](https://ci.appveyor.com/project/Atom/jasmine-focused/branch/master) | [](https://david-dm.org/atom/jasmine-focused) |
|
||||
| Property Accessors | [](https://travis-ci.org/atom/property-accessors) | [](https://ci.appveyor.com/project/Atom/property-accessors/branch/master) | [](https://david-dm.org/atom/property-accessors) |
|
||||
| TextBuffer | [](https://travis-ci.org/atom/text-buffer) | [](https://ci.appveyor.com/project/Atom/text-buffer/branch/master) | [](https://david-dm.org/atom/text-buffer) |
|
||||
| Underscore-Plus | [](https://travis-ci.org/atom/underscore-plus) | [](https://ci.appveyor.com/project/Atom/underscore-plus/branch/master) | [](https://david-dm.org/atom/underscore-plus) |
|
||||
|
||||
|
||||
## Tools
|
||||
| Language | macOS | Windows | Dependencies |
|
||||
|----------|------|---------|--------------|
|
||||
| AtomDoc | [](https://travis-ci.org/atom/atomdoc) | [](https://ci.appveyor.com/project/Atom/atomdoc/branch/master) | [](https://david-dm.org/atom/atomdoc)
|
||||
|
||||
## Languages
|
||||
|
||||
| Language | macOS | Windows |
|
||||
|----------|------|---------|
|
||||
| C/C++ | [](https://travis-ci.org/atom/language-c) | [](https://ci.appveyor.com/project/Atom/language-c/branch/master) |
|
||||
| C# | [](https://travis-ci.org/atom/language-csharp) | [](https://ci.appveyor.com/project/Atom/language-csharp/branch/master) |
|
||||
| Clojure | [](https://travis-ci.org/atom/language-clojure) | [](https://ci.appveyor.com/project/Atom/language-clojure/branch/master) |
|
||||
| CoffeeScript | [](https://travis-ci.org/atom/language-coffee-script) | [](https://ci.appveyor.com/project/Atom/language-coffee-script/branch/master) |
|
||||
| CSS | [](https://travis-ci.org/atom/language-css) | [](https://ci.appveyor.com/project/Atom/language-css/branch/master) |
|
||||
| Git | [](https://travis-ci.org/atom/language-git) | [](https://ci.appveyor.com/project/Atom/language-git/branch/master) |
|
||||
| GitHub Flavored Markdown | [](https://travis-ci.org/atom/language-gfm) | [](https://ci.appveyor.com/project/Atom/language-gfm/branch/master) |
|
||||
| Go | [](https://travis-ci.org/atom/language-go) | [](https://ci.appveyor.com/project/Atom/language-go/branch/master) |
|
||||
| HTML | [](https://travis-ci.org/atom/language-html) | [](https://ci.appveyor.com/project/Atom/language-html/branch/master) |
|
||||
| Hyperlink | [](https://travis-ci.org/atom/language-hyperlink) | [](https://ci.appveyor.com/project/Atom/language-hyperlink/branch/master) |
|
||||
| Java | [](https://travis-ci.org/atom/language-java) | [](https://ci.appveyor.com/project/Atom/language-java/branch/master) |
|
||||
| JavaScript | [](https://travis-ci.org/atom/language-javascript) | [](https://ci.appveyor.com/project/Atom/language-javascript-dijf8/branch/master) |
|
||||
| JSON | [](https://travis-ci.org/atom/language-json) | [](https://ci.appveyor.com/project/Atom/language-json/branch/master) |
|
||||
| Less | [](https://travis-ci.org/atom/language-less) | [](https://ci.appveyor.com/project/Atom/language-less/branch/master) |
|
||||
| Make | [](https://travis-ci.org/atom/language-make) | [](https://ci.appveyor.com/project/Atom/language-make/branch/master) |
|
||||
| Mustache | [](https://travis-ci.org/atom/language-mustache) | [](https://ci.appveyor.com/project/Atom/language-mustache/branch/master) |
|
||||
| Objective-C | [](https://travis-ci.org/atom/language-objective-c) | [](https://ci.appveyor.com/project/Atom/language-objective-c/branch/master) |
|
||||
| Perl | [](https://travis-ci.org/atom/language-perl) | [](https://ci.appveyor.com/project/Atom/language-perl/branch/master) |
|
||||
| PHP | [](https://travis-ci.org/atom/language-php) | [](https://ci.appveyor.com/project/Atom/language-php/branch/master) |
|
||||
| Python | [](https://travis-ci.org/atom/language-python) | [](https://ci.appveyor.com/project/Atom/language-python/branch/master) |
|
||||
| Ruby | [](https://travis-ci.org/atom/language-ruby) | [](https://ci.appveyor.com/project/Atom/language-ruby/branch/master) |
|
||||
| Ruby on Rails | [](https://travis-ci.org/atom/language-ruby-on-rails) | [](https://ci.appveyor.com/project/Atom/language-ruby-on-rails/branch/master) |
|
||||
| Sass | [](https://travis-ci.org/atom/language-sass) | [](https://ci.appveyor.com/project/Atom/language-sass/branch/master) |
|
||||
| ShellScript | [](https://travis-ci.org/atom/language-shellscript) | [](https://ci.appveyor.com/project/Atom/language-shellscript/branch/master) |
|
||||
| SQL | [](https://travis-ci.org/atom/language-sql) | [](https://ci.appveyor.com/project/Atom/language-sql/branch/master) |
|
||||
| TODO | [](https://travis-ci.org/atom/language-todo) | [](https://ci.appveyor.com/project/Atom/language-todo/branch/master) |
|
||||
| TOML | [](https://travis-ci.org/atom/language-toml) | [](https://ci.appveyor.com/project/Atom/language-toml/branch/master) |
|
||||
| XML | [](https://travis-ci.org/atom/language-xml) | [](https://ci.appveyor.com/project/Atom/language-xml/branch/master) |
|
||||
| YAML | [](https://travis-ci.org/atom/language-yaml) | [](https://ci.appveyor.com/project/Atom/language-yaml/branch/master) |
|
||||
@@ -1,8 +1,8 @@
|
||||
# OS X
|
||||
# macOS
|
||||
|
||||
## Requirements
|
||||
|
||||
* OS X 10.8 or later
|
||||
* macOS 10.8 or later
|
||||
* [Node.js](https://nodejs.org/en/download/) (0.10.x or above)
|
||||
* Command Line Tools for [Xcode](https://developer.apple.com/xcode/downloads/) (run `xcode-select --install` to install)
|
||||
|
||||
@@ -21,5 +21,5 @@
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### OSX build error reports in atom/atom
|
||||
* Use [this search](https://github.com/atom/atom/search?q=label%3Abuild-error+label%3Aos-x&type=Issues) to get a list of reports about build errors on OSX.
|
||||
### macOS build error reports in atom/atom
|
||||
* Use [this search](https://github.com/atom/atom/search?q=label%3Abuild-error+label%3Aos-x&type=Issues) to get a list of reports about build errors on macOS.
|
||||
@@ -14,15 +14,17 @@
|
||||
|
||||
You can use either:
|
||||
|
||||
* [Visual Studio 2013 Update 5](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs) (Express or better) on Windows 7, 8 or 10
|
||||
* [Visual Studio 2015](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs) (Community or better) with Windows 8 or 10
|
||||
* [Visual C++ Build Tools 2015](http://landinghub.visualstudio.com/visual-cpp-build-tools)
|
||||
* [Visual Studio 2013 Update 5](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs) (Express Edition or better)
|
||||
* [Visual Studio 2015](https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs) (Community Edition or better)
|
||||
|
||||
Whichever version you use, ensure that:
|
||||
|
||||
* The default installation folder is chosen so the build tools can find it
|
||||
* Visual C++ support is installed
|
||||
* If using Visual Studio make sure Visual C++ support is selected/installed
|
||||
* If using Visual C++ Build Tools make sure Windows 8 SDK is selected/installed
|
||||
* A `git` command is in your path
|
||||
* If you have both VS2013 and VS2015 installed set the `GYP_MSVS_VERSION` environment variable to the Visual Studio version (`2013` or `2015`) you wish to use, e.g. ``[Environment]::SetEnvironmentVariable("GYP_MSVS_VERSION", "2015", "User")`` in PowerShell or set it in Windows advanced system settings control panel.
|
||||
* Set the `GYP_MSVS_VERSION` environment variable to the Visual Studio/Build Tools version (`2013` or `2015`) e.g. ``[Environment]::SetEnvironmentVariable("GYP_MSVS_VERSION", "2015", "User")`` in PowerShell or set it in Windows advanced system settings control panel.
|
||||
|
||||
## Instructions
|
||||
|
||||
@@ -32,18 +34,18 @@ You can run these commands using Command Prompt, PowerShell or Git Shell via [Gi
|
||||
cd C:\
|
||||
git clone https://github.com/atom/atom/
|
||||
cd atom
|
||||
script/build
|
||||
script\build
|
||||
```
|
||||
This will create the Atom application in the `out\Atom` folder as well as copy it to a subfolder of your user profile (e.g. `c:\Users\Bob`) called `AppData\Local\atom\app-dev`.
|
||||
|
||||
### `script/build` Options
|
||||
### `script\build` Options
|
||||
* `--install-dir` - Creates the final built application in this directory. Example (trailing slash is optional):
|
||||
```bash
|
||||
./script/build --install-dir Z:\Some\Destination\Directory\
|
||||
.\script\build --install-dir Z:\Some\Destination\Directory\
|
||||
```
|
||||
* `--build-dir` - Build the application in this directory. Example (trailing slash is optional):
|
||||
```bash
|
||||
./script/build --build-dir Z:\Some\Temporary\Directory\
|
||||
.\script\build --build-dir Z:\Some\Temporary\Directory\
|
||||
```
|
||||
* `--no-install` - Skips the installation task after building.
|
||||
* `--verbose` - Verbose mode. A lot more information output.
|
||||
@@ -68,10 +70,10 @@ If none of this works, do install Github Desktop and use its Git Shell as it mak
|
||||
* `msbuild.exe failed with exit code: 1`
|
||||
* Ensure you have Visual C++ support installed. Go into Add/Remove Programs, select Visual Studio and press Modify and then check the Visual C++ box.
|
||||
|
||||
* `script/build` stops with no error or warning shortly after displaying the versions of node, npm and Python
|
||||
* `script\build` stops with no error or warning shortly after displaying the versions of node, npm and Python
|
||||
* Make sure that the path where you have checked out Atom does not include a space. e.g. use `c:\atom` and not `c:\my stuff\atom`
|
||||
|
||||
* `script/build` outputs only the Node.js and Python versions before returning
|
||||
* `script\build` outputs only the Node.js and Python versions before returning
|
||||
* Try moving the repository to `C:\atom`. Most likely, the path is too long.
|
||||
See [issue #2200](https://github.com/atom/atom/issues/2200).
|
||||
|
||||
@@ -85,11 +87,11 @@ If none of this works, do install Github Desktop and use its Git Shell as it mak
|
||||
* `'node_modules\.bin\npm' is not recognized as an internal or external command, operable program or batch file.`
|
||||
* This occurs if the previous build left things in a bad state. Run `script\clean` and then `script\build` again.
|
||||
|
||||
* `script/build` stops at installing runas with `Failed at the runas@x.y.z install script.`
|
||||
* `script\build` stops at installing runas with `Failed at the runas@x.y.z install script.`
|
||||
* See the next item.
|
||||
|
||||
* `error MSB8020: The build tools for Visual Studio 201? (Platform Toolset = 'v1?0') cannot be found.`
|
||||
* If you're building Atom with Visual Studio 2013 try setting the `GYP_MSVS_VERSION` environment variable to 2013 and then `script/clean` followed by `script/build` (re-open your command prompt or Powershell window if you set it using the GUI)
|
||||
* Try setting the `GYP_MSVS_VERSION` environment variable to 2013 or 2015 depending on what version of Visual Studio you are running and then `script\clean` followed by `script\build` (re-open your command prompt or Powershell window if you set it using the GUI)
|
||||
|
||||
* `'node-gyp' is not recognized as an internal or external command, operable program or batch file.`
|
||||
* Try running `npm install -g node-gyp`, and run `script/build` again.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Profiling the Atom Render Process on OS X with Instruments
|
||||
# Profiling the Atom Render Process on macOS with Instruments
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
# * http://flight-manual.atom.io/behind-atom/sections/keymaps-in-depth/
|
||||
#
|
||||
# If you're having trouble with your keybindings not working, try the
|
||||
# Keybinding Resolver: `Cmd+.` on OS X and `Ctrl+.` on other platforms. See the
|
||||
# Keybinding Resolver: `Cmd+.` on macOS and `Ctrl+.` on other platforms. See the
|
||||
# Debugging Guide for more information:
|
||||
# * http://flight-manual.atom.io/hacking-atom/sections/debugging/#check-the-keybindings
|
||||
#
|
||||
|
||||
36
package.json
36
package.json
@@ -16,8 +16,8 @@
|
||||
"dependencies": {
|
||||
"async": "0.2.6",
|
||||
"atom-keymap": "6.3.2",
|
||||
"atom-ui": "0.3.3",
|
||||
"babel-core": "^5.8.21",
|
||||
"bootstrap": "^3.3.4",
|
||||
"cached-run-in-this-context": "0.4.1",
|
||||
"chai": "3.5.0",
|
||||
"clear-cut": "^2.0.1",
|
||||
@@ -70,10 +70,10 @@
|
||||
"atom-light-ui": "0.44.0",
|
||||
"base16-tomorrow-dark-theme": "1.1.0",
|
||||
"base16-tomorrow-light-theme": "1.1.1",
|
||||
"one-dark-ui": "1.3.3",
|
||||
"one-light-ui": "1.3.3",
|
||||
"one-dark-syntax": "1.2.0",
|
||||
"one-light-syntax": "1.2.0",
|
||||
"one-dark-ui": "1.4.0",
|
||||
"one-light-ui": "1.4.0",
|
||||
"one-dark-syntax": "1.3.0",
|
||||
"one-light-syntax": "1.3.0",
|
||||
"solarized-dark-syntax": "1.0.2",
|
||||
"solarized-light-syntax": "1.0.2",
|
||||
"about": "1.5.2",
|
||||
@@ -85,7 +85,7 @@
|
||||
"autocomplete-snippets": "1.11.0",
|
||||
"autoflow": "0.27.0",
|
||||
"autosave": "0.23.1",
|
||||
"background-tips": "0.26.0",
|
||||
"background-tips": "0.26.1",
|
||||
"bookmarks": "0.41.0",
|
||||
"bracket-matcher": "0.82.1",
|
||||
"command-palette": "0.38.0",
|
||||
@@ -105,10 +105,10 @@
|
||||
"link": "0.31.1",
|
||||
"markdown-preview": "0.158.0",
|
||||
"metrics": "0.53.1",
|
||||
"notifications": "0.64.1",
|
||||
"notifications": "0.65.0",
|
||||
"open-on-github": "1.1.0",
|
||||
"package-generator": "1.0.0",
|
||||
"settings-view": "0.238.0",
|
||||
"settings-view": "0.238.1",
|
||||
"snippets": "1.0.2",
|
||||
"spell-check": "0.67.1",
|
||||
"status-bar": "1.3.1",
|
||||
@@ -123,31 +123,31 @@
|
||||
"wrap-guide": "0.38.1",
|
||||
"language-c": "0.52.1",
|
||||
"language-clojure": "0.21.0",
|
||||
"language-coffee-script": "0.47.0",
|
||||
"language-coffee-script": "0.47.1",
|
||||
"language-csharp": "0.12.1",
|
||||
"language-css": "0.36.2",
|
||||
"language-gfm": "0.87.0",
|
||||
"language-git": "0.13.0",
|
||||
"language-css": "0.37.0",
|
||||
"language-gfm": "0.88.0",
|
||||
"language-git": "0.14.0",
|
||||
"language-go": "0.42.0",
|
||||
"language-html": "0.44.1",
|
||||
"language-hyperlink": "0.16.0",
|
||||
"language-java": "0.23.0",
|
||||
"language-javascript": "0.119.0",
|
||||
"language-json": "0.18.0",
|
||||
"language-less": "0.29.3",
|
||||
"language-json": "0.18.1",
|
||||
"language-less": "0.29.4",
|
||||
"language-make": "0.22.2",
|
||||
"language-mustache": "0.13.0",
|
||||
"language-objective-c": "0.15.1",
|
||||
"language-perl": "0.35.0",
|
||||
"language-php": "0.37.0",
|
||||
"language-php": "0.37.1",
|
||||
"language-property-list": "0.8.0",
|
||||
"language-python": "0.45.0",
|
||||
"language-ruby": "0.68.5",
|
||||
"language-ruby": "0.68.6",
|
||||
"language-ruby-on-rails": "0.25.0",
|
||||
"language-sass": "0.54.0",
|
||||
"language-sass": "0.55.0",
|
||||
"language-shellscript": "0.22.4",
|
||||
"language-source": "0.9.0",
|
||||
"language-sql": "0.21.1",
|
||||
"language-sql": "0.22.0",
|
||||
"language-text": "0.7.1",
|
||||
"language-todo": "0.28.0",
|
||||
"language-toml": "0.18.0",
|
||||
|
||||
@@ -34,6 +34,7 @@ class AtomReporter
|
||||
|
||||
constructor: ->
|
||||
@element = document.createElement('div')
|
||||
@element.classList.add('spec-reporter-container')
|
||||
@element.innerHTML = """
|
||||
<div class="spec-reporter">
|
||||
<div class="padded pull-right">
|
||||
|
||||
@@ -76,7 +76,7 @@ describe('AutoUpdateManager (renderer)', () => {
|
||||
|
||||
describe('::platformSupportsUpdates', () => {
|
||||
let state, releaseChannel
|
||||
it('returns true on OS X and Windows when in stable', () => {
|
||||
it('returns true on macOS and Windows when in stable', () => {
|
||||
spyOn(autoUpdateManager, 'getState').andCallFake(() => state)
|
||||
spyOn(atom, 'getReleaseChannel').andCallFake(() => releaseChannel)
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@ Babel = require 'babel-core'
|
||||
CoffeeScript = require 'coffee-script'
|
||||
{TypeScriptSimple} = require 'typescript-simple'
|
||||
CSON = require 'season'
|
||||
CSONParser = require 'season/node_modules/cson-parser'
|
||||
CompileCache = require '../src/compile-cache'
|
||||
|
||||
describe 'CompileCache', ->
|
||||
@@ -20,7 +19,6 @@ describe 'CompileCache', ->
|
||||
spyOn(Babel, 'transform').andReturn {code: 'the-babel-code'}
|
||||
spyOn(CoffeeScript, 'compile').andReturn {js: 'the-coffee-code', v3SourceMap: "{}"}
|
||||
spyOn(TypeScriptSimple::, 'compile').andReturn 'the-typescript-code'
|
||||
spyOn(CSONParser, 'parse').andReturn {the: 'cson-data'}
|
||||
|
||||
afterEach ->
|
||||
CSON.setCacheDir(CompileCache.getCacheDirectory())
|
||||
@@ -64,11 +62,18 @@ describe 'CompileCache', ->
|
||||
|
||||
describe 'when the given file is CSON', ->
|
||||
it 'compiles the file to JSON and caches it', ->
|
||||
CompileCache.addPathToCache(path.join(fixtures, 'cson.cson'), atomHome)
|
||||
expect(CSONParser.parse.callCount).toBe 1
|
||||
spyOn(CSON, 'setCacheDir').andCallThrough()
|
||||
spyOn(CSON, 'readFileSync').andCallThrough()
|
||||
|
||||
CompileCache.addPathToCache(path.join(fixtures, 'cson.cson'), atomHome)
|
||||
expect(CSONParser.parse.callCount).toBe 1
|
||||
expect(CSON.readFileSync).toHaveBeenCalledWith(path.join(fixtures, 'cson.cson'))
|
||||
expect(CSON.setCacheDir).toHaveBeenCalledWith(path.join(atomHome, '/compile-cache'))
|
||||
|
||||
CSON.readFileSync.reset()
|
||||
CSON.setCacheDir.reset()
|
||||
CompileCache.addPathToCache(path.join(fixtures, 'cson.cson'), atomHome)
|
||||
expect(CSON.readFileSync).toHaveBeenCalledWith(path.join(fixtures, 'cson.cson'))
|
||||
expect(CSON.setCacheDir).not.toHaveBeenCalled()
|
||||
|
||||
describe 'overriding Error.prepareStackTrace', ->
|
||||
it 'removes the override on the next tick, and always assigns the raw stack', ->
|
||||
|
||||
@@ -23,7 +23,7 @@ describe('Environment handling', () => {
|
||||
delete process._originalEnv
|
||||
})
|
||||
|
||||
describe('on OSX, when PWD is not set', () => {
|
||||
describe('on macOS, when PWD is not set', () => {
|
||||
beforeEach(() => {
|
||||
options.platform = 'darwin'
|
||||
})
|
||||
@@ -67,7 +67,7 @@ describe('Environment handling', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('on a platform other than OSX', () => {
|
||||
describe('on a platform other than macOS', () => {
|
||||
beforeEach(() => {
|
||||
options.platform = 'penguin'
|
||||
})
|
||||
|
||||
@@ -297,7 +297,7 @@ Add a element at the end of the array is easy with push(), but there is a way mo
|
||||
var arr = [1,2,3,4,5];
|
||||
|
||||
arr.push(6);
|
||||
arr[arr.length] = 6; // 43% faster in Chrome 47.0.2526.106 on Mac OS X 10.11.1
|
||||
arr[arr.length] = 6; // 43% faster in Chrome 47.0.2526.106 on macOS 10.11.1
|
||||
```
|
||||
Both methods modify the original array. Don't believe me? Check the [jsperf](http://jsperf.com/push-item-inside-an-array)
|
||||
|
||||
@@ -307,7 +307,7 @@ Now we are trying to add an item to the beginning of the array
|
||||
var arr = [1,2,3,4,5];
|
||||
|
||||
arr.unshift(0);
|
||||
[0].concat(arr); // 98% faster in Chrome 47.0.2526.106 on Mac OS X 10.11.1
|
||||
[0].concat(arr); // 98% faster in Chrome 47.0.2526.106 on macOS 10.11.1
|
||||
```
|
||||
Here is a little bit detail, unshift edit the original array, concat return a new array. [jsperf](http://jsperf.com/unshift-item-inside-an-array)
|
||||
|
||||
|
||||
@@ -169,7 +169,7 @@ describe "Starting Atom", ->
|
||||
.then ->
|
||||
expect(win1Position.x).toBeGreaterThan(win0Position.x)
|
||||
# Ideally we'd test the y coordinate too, but if the window's
|
||||
# already as tall as it can be, then OS X won't move it down outside
|
||||
# already as tall as it can be, then macOS won't move it down outside
|
||||
# the screen.
|
||||
# expect(win1Position.y).toBeGreaterThan(win0Position.y)
|
||||
|
||||
|
||||
@@ -363,6 +363,24 @@ describe "Project", ->
|
||||
# Verify that the result is cached.
|
||||
expect(atom.project.repositoryForDirectory(directory)).toBe(promise)
|
||||
|
||||
it "creates a new repository if a previous one with the same directory had been destroyed", ->
|
||||
repository = null
|
||||
directory = new Directory(path.join(__dirname, '..'))
|
||||
|
||||
waitsForPromise ->
|
||||
atom.project.repositoryForDirectory(directory).then (repo) -> repository = repo
|
||||
|
||||
runs ->
|
||||
expect(repository.isDestroyed()).toBe(false)
|
||||
repository.destroy()
|
||||
expect(repository.isDestroyed()).toBe(true)
|
||||
|
||||
waitsForPromise ->
|
||||
atom.project.repositoryForDirectory(directory).then (repo) -> repository = repo
|
||||
|
||||
runs ->
|
||||
expect(repository.isDestroyed()).toBe(false)
|
||||
|
||||
describe ".setPaths(paths)", ->
|
||||
describe "when path is a file", ->
|
||||
it "sets its path to the files parent directory and updates the root directory", ->
|
||||
|
||||
@@ -6024,6 +6024,18 @@ describe "TextEditor", ->
|
||||
it "sets the grammar", ->
|
||||
expect(editor.getGrammar().name).toBe 'CoffeeScript'
|
||||
|
||||
describe "the softWrapAtPreferredLineLength config setting", ->
|
||||
it "soft wraps the editor at the preferred line length unless the editor is narrower", ->
|
||||
editor.setEditorWidthInChars(30)
|
||||
atom.config.set('editor.softWrap', true)
|
||||
atom.config.set('editor.softWrapAtPreferredLineLength', true)
|
||||
atom.config.set('editor.preferredLineLength', 20)
|
||||
|
||||
expect(editor.lineTextForScreenRow(0)).toBe 'var quicksort = '
|
||||
|
||||
editor.setEditorWidthInChars(10)
|
||||
expect(editor.lineTextForScreenRow(0)).toBe 'var '
|
||||
|
||||
describe "::getElement", ->
|
||||
it "returns an element", ->
|
||||
expect(editor.getElement() instanceof HTMLElement).toBe(true)
|
||||
|
||||
@@ -80,7 +80,7 @@ ScopeDescriptor = require './scope-descriptor'
|
||||
# # ...
|
||||
# ```
|
||||
#
|
||||
# See [package docs](https://atom.io/docs/latest/hacking-atom-package-word-count) for
|
||||
# See [package docs](http://flight-manual.atom.io/hacking-atom/sections/package-word-count/) for
|
||||
# more info.
|
||||
#
|
||||
# ## Config Schemas
|
||||
@@ -424,7 +424,7 @@ class Config
|
||||
# * `scope` (optional) {ScopeDescriptor} describing a path from
|
||||
# the root of the syntax tree to a token. Get one by calling
|
||||
# {editor.getLastCursor().getScopeDescriptor()}. See {::get} for examples.
|
||||
# See [the scopes docs](https://atom.io/docs/latest/behind-atom-scoped-settings-scopes-and-scope-descriptors)
|
||||
# See [the scopes docs](http://flight-manual.atom.io/behind-atom/sections/scoped-settings-scopes-and-scope-descriptors/)
|
||||
# for more information.
|
||||
# * `callback` {Function} to call when the value of the key changes.
|
||||
# * `value` the new value of the key
|
||||
@@ -455,7 +455,7 @@ class Config
|
||||
# * `scope` (optional) {ScopeDescriptor} describing a path from
|
||||
# the root of the syntax tree to a token. Get one by calling
|
||||
# {editor.getLastCursor().getScopeDescriptor()}. See {::get} for examples.
|
||||
# See [the scopes docs](https://atom.io/docs/latest/behind-atom-scoped-settings-scopes-and-scope-descriptors)
|
||||
# See [the scopes docs](http://flight-manual.atom.io/behind-atom/sections/scoped-settings-scopes-and-scope-descriptors/)
|
||||
# for more information.
|
||||
# * `callback` {Function} to call when the value of the key changes.
|
||||
# * `event` {Object}
|
||||
@@ -532,7 +532,7 @@ class Config
|
||||
# * `scope` (optional) {ScopeDescriptor} describing a path from
|
||||
# the root of the syntax tree to a token. Get one by calling
|
||||
# {editor.getLastCursor().getScopeDescriptor()}
|
||||
# See [the scopes docs](https://atom.io/docs/latest/behind-atom-scoped-settings-scopes-and-scope-descriptors)
|
||||
# See [the scopes docs](http://flight-manual.atom.io/behind-atom/sections/scoped-settings-scopes-and-scope-descriptors/)
|
||||
# for more information.
|
||||
#
|
||||
# Returns the value from Atom's default settings, the user's configuration
|
||||
@@ -607,7 +607,7 @@ class Config
|
||||
# setting to the default value.
|
||||
# * `options` (optional) {Object}
|
||||
# * `scopeSelector` (optional) {String}. eg. '.source.ruby'
|
||||
# See [the scopes docs](https://atom.io/docs/latest/behind-atom-scoped-settings-scopes-and-scope-descriptors)
|
||||
# See [the scopes docs](http://flight-manual.atom.io/behind-atom/sections/scoped-settings-scopes-and-scope-descriptors/)
|
||||
# for more information.
|
||||
# * `source` (optional) {String} The name of a file with which the setting
|
||||
# is associated. Defaults to the user's config file.
|
||||
|
||||
13
src/crash-reporter-start.coffee
Normal file
13
src/crash-reporter-start.coffee
Normal file
@@ -0,0 +1,13 @@
|
||||
module.exports = (extra) ->
|
||||
# Breakpad on Mac OS X must be running on UI and non-UI processes
|
||||
# Crashpad on Windows and Linux should only be running on non-UI process
|
||||
return if process.type is 'renderer' and process.platform isnt 'darwin'
|
||||
|
||||
{crashReporter} = require 'electron'
|
||||
|
||||
crashReporter.start({
|
||||
productName: 'Atom',
|
||||
companyName: 'GitHub',
|
||||
submitURL: 'http://54.249.141.255:1127/post'
|
||||
extra: extra
|
||||
})
|
||||
@@ -9,7 +9,7 @@ import os from 'os'
|
||||
function getRawShellEnv () {
|
||||
let shell = getUserShell()
|
||||
|
||||
// The `-ilc` set of options was tested to work with the OS X v10.11
|
||||
// The `-ilc` set of options was tested to work with the macOS v10.11
|
||||
// default-installed versions of bash, zsh, sh, and ksh. It *does not*
|
||||
// work with csh or tcsh.
|
||||
let results = spawnSync(shell, ['-ilc', 'env'], {encoding: 'utf8'})
|
||||
|
||||
@@ -130,6 +130,10 @@ class GitRepository
|
||||
@async.destroy()
|
||||
@async = null
|
||||
|
||||
# Public: Returns a {Boolean} indicating if this repository has been destroyed.
|
||||
isDestroyed: ->
|
||||
not @repo?
|
||||
|
||||
# Public: Invoke the given callback when this GitRepository's destroy() method
|
||||
# is invoked.
|
||||
#
|
||||
|
||||
@@ -4,9 +4,10 @@ cloneObject = (object) ->
|
||||
clone
|
||||
|
||||
module.exports = ({blobStore}) ->
|
||||
{crashReporter, remote} = require 'electron'
|
||||
# Start the crash reporter before anything else.
|
||||
crashReporter.start(productName: 'Atom', companyName: 'GitHub', submitURL: 'http://54.249.141.255:1127/post')
|
||||
startCrashReporter = require('./crash-reporter-start')
|
||||
{remote} = require 'electron'
|
||||
|
||||
startCrashReporter() # Before anything else
|
||||
|
||||
exitWithStatusCode = (status) ->
|
||||
remote.app.emit('will-quit')
|
||||
|
||||
@@ -32,7 +32,7 @@ class AtomApplication
|
||||
@open: (options) ->
|
||||
unless options.socketPath?
|
||||
if process.platform is 'win32'
|
||||
options.socketPath = '\\\\.\\pipe\\atom-sock'
|
||||
options.socketPath = "\\\\.\\pipe\\atom-#{options.version}-sock"
|
||||
else
|
||||
options.socketPath = path.join(os.tmpdir(), "atom-#{options.version}-#{process.env.USER}.sock")
|
||||
|
||||
@@ -182,7 +182,7 @@ class AtomApplication
|
||||
atomWindow ?= @focusedWindow()
|
||||
atomWindow?.browserWindow.inspectElement(x, y)
|
||||
|
||||
@on 'application:open-documentation', -> shell.openExternal('https://atom.io/docs/latest/?app')
|
||||
@on 'application:open-documentation', -> shell.openExternal('https://flight-manual.atom.io/')
|
||||
@on 'application:open-discussions', -> shell.openExternal('https://discuss.atom.io')
|
||||
@on 'application:open-faq', -> shell.openExternal('https://atom.io/faq')
|
||||
@on 'application:open-terms-of-use', -> shell.openExternal('https://atom.io/terms')
|
||||
@@ -368,7 +368,7 @@ class AtomApplication
|
||||
else
|
||||
@sendCommandToFirstResponder(command)
|
||||
|
||||
# Translates the command into OS X action and sends it to application's first
|
||||
# Translates the command into macOS action and sends it to application's first
|
||||
# responder.
|
||||
sendCommandToFirstResponder: (command) ->
|
||||
return false unless process.platform is 'darwin'
|
||||
@@ -666,7 +666,7 @@ class AtomApplication
|
||||
#
|
||||
# options -
|
||||
# :type - A String which specifies the type of the dialog, could be 'file',
|
||||
# 'folder' or 'all'. The 'all' is only available on OS X.
|
||||
# 'folder' or 'all'. The 'all' is only available on macOS.
|
||||
# :devMode - A Boolean which controls whether any newly opened windows
|
||||
# should be in dev mode or not.
|
||||
# :safeMode - A Boolean which controls whether any newly opened windows
|
||||
@@ -687,7 +687,7 @@ class AtomApplication
|
||||
else throw new Error("#{type} is an invalid type for promptForPath")
|
||||
|
||||
# Show the open dialog as child window on Windows and Linux, and as
|
||||
# independent dialog on OS X. This matches most native apps.
|
||||
# independent dialog on macOS. This matches most native apps.
|
||||
parentWindow =
|
||||
if process.platform is 'darwin'
|
||||
null
|
||||
|
||||
@@ -158,15 +158,9 @@ class AtomWindow
|
||||
@setupContextMenu()
|
||||
|
||||
if @isSpec
|
||||
# Workaround for https://github.com/atom/atom-shell/issues/380
|
||||
# Don't focus the window when it is being blurred during close or
|
||||
# else the app will crash on Windows.
|
||||
if process.platform is 'win32'
|
||||
@browserWindow.on 'close', => @isWindowClosing = true
|
||||
|
||||
# Spec window's web view should always have focus
|
||||
@browserWindow.on 'blur', =>
|
||||
@browserWindow.focusOnWebView() unless @isWindowClosing
|
||||
@browserWindow.focusOnWebView()
|
||||
|
||||
openPath: (pathToOpen, initialLine, initialColumn) ->
|
||||
@openLocations([{pathToOpen, initialLine, initialColumn}])
|
||||
|
||||
@@ -4,12 +4,13 @@ process.on 'uncaughtException', (error={}) ->
|
||||
console.log(error.message) if error.message?
|
||||
console.log(error.stack) if error.stack?
|
||||
|
||||
{crashReporter, app} = require 'electron'
|
||||
{app} = require 'electron'
|
||||
fs = require 'fs-plus'
|
||||
path = require 'path'
|
||||
temp = require 'temp'
|
||||
yargs = require 'yargs'
|
||||
previousConsoleLog = console.log
|
||||
startCrashReporter = require('../crash-reporter-start')
|
||||
console.log = require 'nslog'
|
||||
|
||||
start = ->
|
||||
@@ -38,7 +39,7 @@ start = ->
|
||||
|
||||
app.on 'open-file', addPathToOpen
|
||||
app.on 'open-url', addUrlToOpen
|
||||
app.on 'will-finish-launching', setupCrashReporter
|
||||
app.on 'will-finish-launching', startCrashReporter
|
||||
|
||||
if args.userDataDir?
|
||||
app.setPath('userData', args.userDataDir)
|
||||
@@ -66,9 +67,6 @@ handleStartupEventWithSquirrel = ->
|
||||
squirrelCommand = process.argv[1]
|
||||
SquirrelUpdate.handleStartupEvent(app, squirrelCommand)
|
||||
|
||||
setupCrashReporter = ->
|
||||
crashReporter.start(productName: 'Atom', companyName: 'GitHub', submitURL: 'http://54.249.141.255:1127/post')
|
||||
|
||||
setupAtomHome = ({setPortable}) ->
|
||||
return if process.env.ATOM_HOME
|
||||
|
||||
|
||||
@@ -176,7 +176,7 @@ class MenuManager
|
||||
unmerge: (menu, item) ->
|
||||
MenuHelpers.unmerge(menu, item)
|
||||
|
||||
# OSX can't handle displaying accelerators for multiple keystrokes.
|
||||
# macOS can't handle displaying accelerators for multiple keystrokes.
|
||||
# If they are sent across, it will stop processing accelerators for the rest
|
||||
# of the menu items.
|
||||
filterMultipleKeystroke: (keystrokesByCommand) ->
|
||||
|
||||
@@ -129,6 +129,7 @@ class Project extends Model
|
||||
# registered in the future that could supply a Repository for the
|
||||
# directory.
|
||||
@repositoryPromisesByPath.delete(pathForDirectory) unless repo?
|
||||
repo?.onDidDestroy?(=> @repositoryPromisesByPath.delete(pathForDirectory))
|
||||
repo
|
||||
@repositoryPromisesByPath.set(pathForDirectory, promise)
|
||||
promise
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
# specific position in the buffer.
|
||||
# * {Cursor::getScopeDescriptor} to get a cursor's descriptor based on position.
|
||||
#
|
||||
# See the [scopes and scope descriptor guide](https://atom.io/docs/latest/behind-atom-scoped-settings-scopes-and-scope-descriptors)
|
||||
# See the [scopes and scope descriptor guide](http://flight-manual.atom.io/behind-atom/sections/scoped-settings-scopes-and-scope-descriptors/)
|
||||
# for more information.
|
||||
module.exports =
|
||||
class ScopeDescriptor
|
||||
|
||||
@@ -253,7 +253,7 @@ class TextEditorComponent
|
||||
|
||||
detectAccentedCharacterMenu: ->
|
||||
# We need to get clever to detect when the accented character menu is
|
||||
# opened on OS X. Usually, every keydown event that could cause input is
|
||||
# opened on macOS. Usually, every keydown event that could cause input is
|
||||
# followed by a corresponding keypress. However, pressing and holding
|
||||
# long enough to open the accented character menu causes additional keydown
|
||||
# events to fire that aren't followed by their own keypress and textInput
|
||||
@@ -369,9 +369,9 @@ class TextEditorComponent
|
||||
|
||||
return unless @isInputEnabled()
|
||||
|
||||
# Workaround of the accented character suggestion feature in OS X.
|
||||
# Workaround of the accented character suggestion feature in macOS.
|
||||
# This will only occur when the user is not composing in IME mode.
|
||||
# When the user selects a modified character from the OSX menu, `textInput`
|
||||
# When the user selects a modified character from the macOS menu, `textInput`
|
||||
# will occur twice, once for the initial character, and once for the
|
||||
# modified character. However, only a single keypress will have fired. If
|
||||
# this is the case, select backward to replace the original character.
|
||||
@@ -551,7 +551,7 @@ class TextEditorComponent
|
||||
|
||||
{detail, shiftKey, metaKey, ctrlKey} = event
|
||||
|
||||
# CTRL+click brings up the context menu on OSX, so don't handle those either
|
||||
# CTRL+click brings up the context menu on macOS, so don't handle those either
|
||||
return if ctrlKey and process.platform is 'darwin'
|
||||
|
||||
# Prevent focusout event on hidden input if editor is already focused
|
||||
|
||||
@@ -2825,7 +2825,7 @@ class TextEditor extends Model
|
||||
scopeDescriptor = @getRootScopeDescriptor()
|
||||
if @isSoftWrapped()
|
||||
if @config.get('editor.softWrapAtPreferredLineLength', scope: scopeDescriptor)
|
||||
@config.get('editor.preferredLineLength', scope: scopeDescriptor)
|
||||
Math.min(@getEditorWidthInChars(), @config.get('editor.preferredLineLength', scope: scopeDescriptor))
|
||||
else
|
||||
@getEditorWidthInChars()
|
||||
else
|
||||
|
||||
@@ -170,7 +170,6 @@ class ThemeManager
|
||||
@userStyleSheetDisposable = @styleManager.addStyleSheet(userStylesheetContents, sourcePath: userStylesheetPath, priority: 2)
|
||||
|
||||
loadBaseStylesheets: ->
|
||||
@requireStylesheet('../static/bootstrap')
|
||||
@reloadBaseStylesheets()
|
||||
|
||||
reloadBaseStylesheets: ->
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
{ipcRenderer} = require 'electron'
|
||||
path = require 'path'
|
||||
fs = require 'fs-plus'
|
||||
{Disposable, CompositeDisposable} = require 'event-kit'
|
||||
Grim = require 'grim'
|
||||
scrollbarStyle = require 'scrollbar-style'
|
||||
@@ -45,7 +46,7 @@ class WorkspaceElement extends HTMLElement
|
||||
|
||||
updateGlobalTextEditorStyleSheet: ->
|
||||
fontFamily = @config.get('editor.fontFamily')
|
||||
# TODO: There is a bug in how some emojis (e.g. ❤️) are rendered on OSX.
|
||||
# TODO: There is a bug in how some emojis (e.g. ❤️) are rendered on macOS.
|
||||
# This workaround should be removed once we update to Chromium 51, where the
|
||||
# problem was fixed.
|
||||
fontFamily += ', "Apple Color Emoji"' if process.platform is 'darwin'
|
||||
@@ -122,6 +123,12 @@ class WorkspaceElement extends HTMLElement
|
||||
[projectPath] = @project.relativizePath(activePath)
|
||||
else
|
||||
[projectPath] = @project.getPaths()
|
||||
ipcRenderer.send('run-package-specs', path.join(projectPath, 'spec')) if projectPath
|
||||
if projectPath
|
||||
specPath = path.join(projectPath, 'spec')
|
||||
testPath = path.join(projectPath, 'test')
|
||||
if not fs.existsSync(specPath) and fs.existsSync(testPath)
|
||||
specPath = testPath
|
||||
|
||||
ipcRenderer.send('run-package-specs', specPath)
|
||||
|
||||
module.exports = WorkspaceElement = document.registerElement 'atom-workspace', prototype: WorkspaceElement.prototype
|
||||
|
||||
@@ -190,7 +190,7 @@ class Workspace extends Model
|
||||
document.title = titleParts.join(" \u2014 ")
|
||||
@applicationDelegate.setRepresentedFilename(representedPath)
|
||||
|
||||
# On OS X, fades the application window's proxy icon when the current file
|
||||
# On macOS, fades the application window's proxy icon when the current file
|
||||
# has been modified.
|
||||
updateDocumentEdited: =>
|
||||
modified = @getActivePaneItem()?.isModified?() ? false
|
||||
|
||||
@@ -6,26 +6,22 @@
|
||||
@import "./variables/ui-variables";
|
||||
@import "ui-variables";
|
||||
|
||||
// Octicons
|
||||
@import "octicon-utf-codes";
|
||||
@import "octicon-mixins";
|
||||
|
||||
@import "workspace-view";
|
||||
@import "bootstrap-overrides";
|
||||
@import "badges";
|
||||
@import "buttons";
|
||||
@import "icons";
|
||||
@import "links";
|
||||
@import "panes";
|
||||
@import "panels";
|
||||
@import "sections";
|
||||
@import "lists";
|
||||
@import "popover-list";
|
||||
@import "messages";
|
||||
@import "markdown";
|
||||
@import "text-editor-light";
|
||||
@import "select-list";
|
||||
@import "syntax";
|
||||
@import "text";
|
||||
@import "utilities";
|
||||
@import "octicons";
|
||||
|
||||
// Normalize + scaffolding
|
||||
@import "normalize";
|
||||
@import "scaffolding";
|
||||
|
||||
// Core components
|
||||
@import "cursors";
|
||||
@import "panels";
|
||||
@import "panes";
|
||||
@import "syntax";
|
||||
@import "text-editor-light";
|
||||
@import "workspace-view";
|
||||
|
||||
// Atom UI library
|
||||
@import "../node_modules/atom-ui/atom-ui.less";
|
||||
|
||||
@@ -1,65 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
.badge {
|
||||
display: inline-block;
|
||||
line-height: 1;
|
||||
vertical-align: middle;
|
||||
font-weight: normal;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
border-radius: 1em;
|
||||
|
||||
&:empty {
|
||||
display: none; // Hide when un-used
|
||||
}
|
||||
|
||||
|
||||
// Color ----------------------
|
||||
|
||||
.badge-color( @fg: @text-color-selected;
|
||||
@bg: @background-color-selected; ) {
|
||||
color: @fg;
|
||||
background-color: @bg;
|
||||
}
|
||||
.badge-color();
|
||||
&.badge-info { .badge-color(white, @background-color-info); }
|
||||
&.badge-success { .badge-color(white, @background-color-success); }
|
||||
&.badge-warning { .badge-color(white, @background-color-warning); }
|
||||
&.badge-error { .badge-color(white, @background-color-error); }
|
||||
|
||||
|
||||
// Size ----------------------
|
||||
|
||||
.badge-size( @size: @font-size; ) {
|
||||
@padding: round(@size/4);
|
||||
font-size: @size;
|
||||
min-width: @size + @padding*2;
|
||||
padding: @padding round(@padding*1.5);
|
||||
}
|
||||
.badge-size(); // default
|
||||
|
||||
// Fixed size
|
||||
&.badge-large { .badge-size(18px); }
|
||||
&.badge-medium { .badge-size(14px); }
|
||||
&.badge-small { .badge-size(10px); }
|
||||
|
||||
// Flexible size
|
||||
// The size changes depending on the parent element
|
||||
// Best used for larger sizes, since em's can cause rounding errors
|
||||
&.badge-flexible {
|
||||
@size: .8em;
|
||||
@padding: @size/2;
|
||||
font-size: @size;
|
||||
min-width: @size + @padding*2;
|
||||
padding: @padding @padding*1.5;
|
||||
}
|
||||
|
||||
|
||||
// Icon ----------------------
|
||||
|
||||
&.icon {
|
||||
font-size: round(@component-icon-size*0.8);
|
||||
padding: @component-icon-padding @component-icon-padding*2;
|
||||
}
|
||||
|
||||
}
|
||||
41
static/bootstrap-overrides.less
vendored
41
static/bootstrap-overrides.less
vendored
@@ -1,41 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
.nav {
|
||||
> li > a {
|
||||
border-radius: @component-border-radius;
|
||||
}
|
||||
> li > a:hover {
|
||||
background-color: @background-color-highlight;
|
||||
}
|
||||
|
||||
&.nav-pills > li.active > a {
|
||||
background-color: @background-color-selected;
|
||||
}
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: inherit; // inherit from themes
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: inherit; // inherit from html
|
||||
font-size: inherit; // inherit from html
|
||||
}
|
||||
|
||||
// Latest Bootstrap specifies the font properties again instead of inheriting
|
||||
.tooltip {
|
||||
font-family: @font-family;
|
||||
font-size: @font-size;
|
||||
}
|
||||
|
||||
// disable some <kbd> styling, will be styled in themes
|
||||
kbd {
|
||||
color: inherit;
|
||||
background-color: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
31
static/bootstrap.less
vendored
31
static/bootstrap.less
vendored
@@ -1,31 +0,0 @@
|
||||
// Core variables and mixins
|
||||
@import "../node_modules/bootstrap/less/variables.less";
|
||||
@import "../node_modules/bootstrap/less/mixins.less";
|
||||
|
||||
// Reset
|
||||
@import "../node_modules/bootstrap/less/normalize.less";
|
||||
|
||||
// Core CSS
|
||||
@import "../node_modules/bootstrap/less/scaffolding.less";
|
||||
@import "../node_modules/bootstrap/less/type.less";
|
||||
@import "../node_modules/bootstrap/less/code.less";
|
||||
@import "../node_modules/bootstrap/less/grid.less";
|
||||
@import "../node_modules/bootstrap/less/tables.less";
|
||||
@import "../node_modules/bootstrap/less/forms.less";
|
||||
@import "../node_modules/bootstrap/less/buttons.less";
|
||||
|
||||
// Components
|
||||
@import "../node_modules/bootstrap/less/button-groups.less";
|
||||
@import "../node_modules/bootstrap/less/input-groups.less";
|
||||
@import "../node_modules/bootstrap/less/navs.less";
|
||||
@import "../node_modules/bootstrap/less/labels.less";
|
||||
@import "../node_modules/bootstrap/less/alerts.less";
|
||||
@import "../node_modules/bootstrap/less/list-group.less";
|
||||
@import "../node_modules/bootstrap/less/thumbnails.less";
|
||||
@import "../node_modules/bootstrap/less/close.less";
|
||||
|
||||
// Components w/ JavaScript
|
||||
@import "../node_modules/bootstrap/less/tooltip.less";
|
||||
|
||||
// Utility classes
|
||||
@import "../node_modules/bootstrap/less/utilities.less";
|
||||
@@ -1,99 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
.btn {
|
||||
color: @text-color;
|
||||
border-radius: @component-border-radius;
|
||||
border: none;
|
||||
text-shadow: none;
|
||||
|
||||
height: @component-line-height + 2px;
|
||||
line-height: @component-line-height;
|
||||
|
||||
padding: 0 @component-padding;
|
||||
font-size: @font-size;
|
||||
z-index: 0;
|
||||
|
||||
background-color: @button-background-color;
|
||||
&:hover {
|
||||
background-color: @button-background-color-hover;
|
||||
}
|
||||
&.selected,
|
||||
&.selected:hover {
|
||||
// we want the selected button to behave like the :hover button; it's on top of the other buttons.
|
||||
z-index: 1;
|
||||
background-color: @button-background-color-selected;
|
||||
}
|
||||
}
|
||||
|
||||
.btn.btn-xs,
|
||||
.btn-group-xs > .btn {
|
||||
padding: @component-padding/4 @component-padding/2;
|
||||
font-size: @font-size - 2px;
|
||||
height: auto;
|
||||
line-height: 1.3em;
|
||||
&.icon:before {
|
||||
font-size: @font-size - 2px;
|
||||
}
|
||||
}
|
||||
.btn.btn-sm,
|
||||
.btn-group-sm > .btn {
|
||||
padding: @component-padding/4 @component-padding/2;
|
||||
height: auto;
|
||||
line-height: 1.3em;
|
||||
&.icon:before {
|
||||
font-size: @font-size + 1px;
|
||||
}
|
||||
}
|
||||
.btn.btn-lg,
|
||||
.btn-group-lg > .btn {
|
||||
font-size: @font-size + 2px;
|
||||
padding: @component-padding - 2px @component-padding + 2px;
|
||||
height: auto;
|
||||
line-height: 1.3em;
|
||||
&.icon:before {
|
||||
font-size: @font-size + 6px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-group > .btn {
|
||||
border-left: 1px solid @button-border-color;
|
||||
border-right: 1px solid @button-border-color;
|
||||
}
|
||||
.btn-group > .btn:first-child {
|
||||
border-left: none;
|
||||
border-top-left-radius: @component-border-radius;
|
||||
border-bottom-left-radius: @component-border-radius;
|
||||
}
|
||||
.btn-group > .btn:last-child,
|
||||
.btn-group > .btn.selected:last-child,
|
||||
.btn-group > .dropdown-toggle {
|
||||
border-right: none;
|
||||
border-top-right-radius: @component-border-radius;
|
||||
border-bottom-right-radius: @component-border-radius;
|
||||
}
|
||||
|
||||
// Icon buttons
|
||||
.btn.icon {
|
||||
&:before {
|
||||
width: initial;
|
||||
height: initial;
|
||||
margin-right: .3125em;
|
||||
}
|
||||
&:empty:before {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-toolbar {
|
||||
> .btn-group + .btn-group, > .btn-group + .btn, > .btn + .btn {
|
||||
float: none;
|
||||
display: inline-block;
|
||||
margin-left: 0;
|
||||
}
|
||||
> * {
|
||||
margin-right: @component-padding / 2;
|
||||
}
|
||||
> *:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
.icon::before {
|
||||
margin-right: @component-icon-padding;
|
||||
}
|
||||
|
||||
a.icon,
|
||||
button.icon {
|
||||
text-decoration: none;
|
||||
color: @text-color;
|
||||
&:hover{
|
||||
color: @text-color-highlight;
|
||||
}
|
||||
}
|
||||
@@ -70,15 +70,10 @@
|
||||
ModuleCache.register(loadSettings)
|
||||
ModuleCache.add(loadSettings.resourcePath)
|
||||
|
||||
// Start the crash reporter before anything else.
|
||||
require('electron').crashReporter.start({
|
||||
productName: 'Atom',
|
||||
companyName: 'GitHub',
|
||||
submitURL: 'http://54.249.141.255:1127/post',
|
||||
// By explicitly passing the app version here, we could save the call
|
||||
// of "require('remote').require('app').getVersion()".
|
||||
extra: {_version: loadSettings.appVersion}
|
||||
})
|
||||
// By explicitly passing the app version here, we could save the call
|
||||
// of "require('remote').require('app').getVersion()".
|
||||
var startCrashReporter = require('../src/crash-reporter-start')
|
||||
startCrashReporter({_version: loadSettings.appVersion})
|
||||
|
||||
setupVmCompatibility()
|
||||
setupCsonCache(CompileCache.getCacheDirectory())
|
||||
|
||||
@@ -1,19 +1,40 @@
|
||||
@import "ui-variables";
|
||||
@import "octicon-mixins";
|
||||
|
||||
#jasmine_content {
|
||||
position: fixed;
|
||||
right: 100%;
|
||||
html {
|
||||
background-color: @base-background-color;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: #fff;
|
||||
padding: 0;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.spec-reporter-container {
|
||||
position: fixed;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-end;
|
||||
z-index: 99999;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.spec-reporter {
|
||||
flex: 1 1 0;
|
||||
overflow-y: auto;
|
||||
font-size: 11px;
|
||||
line-height: 1.6em;
|
||||
color: #333;
|
||||
background-color: hsl(0, 0%, 98%);
|
||||
|
||||
// 578px initial window height, resize to see underlying editor
|
||||
@media (min-height: 578px) {
|
||||
flex: 0 1 75%;
|
||||
min-height: 578px;
|
||||
}
|
||||
|
||||
.list-unstyled {
|
||||
list-style: none;
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
a {
|
||||
cursor: pointer;
|
||||
color: @text-color-highlight;
|
||||
&:hover {
|
||||
color: @text-color-highlight;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
@@ -1,102 +0,0 @@
|
||||
@import "ui-variables";
|
||||
@import "octicon-mixins";
|
||||
|
||||
// This is a bootstrap override
|
||||
.list-group,
|
||||
.list-group .list-group-item {
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
position: static;
|
||||
}
|
||||
|
||||
.list-group,
|
||||
.list-tree {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
cursor: default;
|
||||
|
||||
li:not(.list-nested-item),
|
||||
li.list-nested-item > .list-item {
|
||||
line-height: @component-line-height;
|
||||
text-wrap: none;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
// The background highlight uses ::before rather than the item background so
|
||||
// it can span the entire width of the parent container rather than the size
|
||||
// of the list item.
|
||||
.selected::before {
|
||||
content: '';
|
||||
background-color: @background-color-selected;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: @component-line-height;
|
||||
}
|
||||
|
||||
// Make sure the background highlight is below the content.
|
||||
.selected > * {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.icon::before {
|
||||
margin-right: @component-icon-padding;
|
||||
position: relative;
|
||||
top: 1px;
|
||||
}
|
||||
.no-icon {
|
||||
padding-left: @component-icon-padding + @component-icon-size;
|
||||
}
|
||||
}
|
||||
|
||||
// Handle indentation of the tree. Assume disclosure arrows.
|
||||
.list-tree {
|
||||
.list-nested-item > .list-tree > li,
|
||||
.list-nested-item > .list-group > li {
|
||||
padding-left: @component-icon-size + @component-icon-padding;
|
||||
}
|
||||
|
||||
&.has-collapsable-children {
|
||||
@disclosure-arrow-padding: @disclosure-arrow-size + @component-icon-padding;
|
||||
li.list-item {
|
||||
margin-left: @disclosure-arrow-padding;
|
||||
}
|
||||
|
||||
.list-nested-item.collapsed > .list-group,
|
||||
.list-nested-item.collapsed > .list-tree {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Nested items always get disclosure arrows
|
||||
.list-nested-item > .list-item {
|
||||
.octicon(chevron-down, @disclosure-arrow-size);
|
||||
&::before{
|
||||
position: relative;
|
||||
top: -1px;
|
||||
margin-right: @component-icon-padding;
|
||||
}
|
||||
}
|
||||
.list-nested-item.collapsed > .list-item {
|
||||
.octicon(chevron-right, @disclosure-arrow-size);
|
||||
&::before{
|
||||
left: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
.list-nested-item > .list-tree > li,
|
||||
.list-nested-item > .list-group > li {
|
||||
padding-left: @disclosure-arrow-padding;
|
||||
}
|
||||
|
||||
// You want a subtree to be flat -- no collapsable children
|
||||
.has-flat-children,
|
||||
&.has-flat-children {
|
||||
li.list-item {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
.source.gfm {
|
||||
.markup.heading {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.italic {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.comment.quote {
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
.info-messages,
|
||||
.error-messages {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.error-messages {
|
||||
color: @text-color-error;
|
||||
}
|
||||
|
||||
ul.background-message {
|
||||
font-size: @font-size * 3;
|
||||
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
&.centered {
|
||||
display: -webkit-flex;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
|
||||
-webkit-align-items: center;
|
||||
text-align: center;
|
||||
|
||||
li {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
274
static/normalize.less
vendored
Normal file
274
static/normalize.less
vendored
Normal file
@@ -0,0 +1,274 @@
|
||||
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
|
||||
// Modified to Chrome only.
|
||||
|
||||
//
|
||||
// Remove default margin.
|
||||
//
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
// HTML5 display definitions
|
||||
// ==========================================================================
|
||||
|
||||
//
|
||||
// 1. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
|
||||
//
|
||||
|
||||
audio,
|
||||
canvas,
|
||||
progress,
|
||||
video {
|
||||
vertical-align: baseline; // 1
|
||||
}
|
||||
|
||||
//
|
||||
// Prevent modern browsers from displaying `audio` without controls.
|
||||
//
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Links
|
||||
// ==========================================================================
|
||||
|
||||
//
|
||||
// Improve readability of focused elements when they are also in an
|
||||
// active/hover state.
|
||||
//
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
// Text-level semantics
|
||||
// ==========================================================================
|
||||
|
||||
//
|
||||
// Address styling not present in IE 8/9/10/11, Safari, and Chrome.
|
||||
//
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: 1px dotted;
|
||||
}
|
||||
|
||||
//
|
||||
// Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
|
||||
//
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
//
|
||||
// Address styling not present in Safari and Chrome.
|
||||
//
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
//
|
||||
// Address variable `h1` font-size and margin within `section` and `article`
|
||||
// contexts in Firefox 4+, Safari, and Chrome.
|
||||
//
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
//
|
||||
// Address inconsistent and variable font size in all browsers.
|
||||
//
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
//
|
||||
// Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
||||
//
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
// Grouping content
|
||||
// ==========================================================================
|
||||
|
||||
//
|
||||
// Address differences between Firefox and other browsers.
|
||||
//
|
||||
|
||||
hr {
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
//
|
||||
// Contain overflow in all browsers.
|
||||
//
|
||||
|
||||
pre {
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
//
|
||||
// Address odd `em`-unit font size rendering in all browsers.
|
||||
//
|
||||
|
||||
code,
|
||||
kbd,
|
||||
pre,
|
||||
samp {
|
||||
font-family: monospace, monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
// Forms
|
||||
// ==========================================================================
|
||||
|
||||
//
|
||||
// Known limitation: by default, Chrome and Safari on OS X allow very limited
|
||||
// styling of `select`, unless a `border` property is set.
|
||||
//
|
||||
|
||||
//
|
||||
// 1. Correct color not being inherited.
|
||||
// Known issue: affects color of disabled elements.
|
||||
// 2. Correct font properties not being inherited.
|
||||
// 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
|
||||
//
|
||||
|
||||
button,
|
||||
input,
|
||||
optgroup,
|
||||
select,
|
||||
textarea {
|
||||
color: inherit; // 1
|
||||
font: inherit; // 2
|
||||
margin: 0; // 3
|
||||
}
|
||||
|
||||
//
|
||||
// Address inconsistent `text-transform` inheritance for `button` and `select`.
|
||||
// All other form control elements do not inherit `text-transform` values.
|
||||
//
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
//
|
||||
// 1. Improve usability and consistency of cursor style between image-type
|
||||
// `input` and others.
|
||||
//
|
||||
|
||||
button,
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
cursor: pointer; // 1
|
||||
}
|
||||
|
||||
//
|
||||
// Re-set default cursor for disabled elements.
|
||||
//
|
||||
|
||||
button[disabled],
|
||||
html input[disabled] {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
//
|
||||
// Fix the cursor style for Chrome's increment/decrement buttons. For certain
|
||||
// `font-size` values of the `input`, it causes the cursor style of the
|
||||
// decrement button to change from `default` to `text`.
|
||||
//
|
||||
|
||||
input[type="number"]::-webkit-inner-spin-button,
|
||||
input[type="number"]::-webkit-outer-spin-button {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
//
|
||||
// 1. Address `appearance` set to `searchfield` in Safari and Chrome.
|
||||
// 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
|
||||
//
|
||||
|
||||
input[type="search"] {
|
||||
-webkit-appearance: textfield; // 1
|
||||
box-sizing: content-box; //2
|
||||
}
|
||||
|
||||
//
|
||||
// Remove inner padding and search cancel button in Safari and Chrome on OS X.
|
||||
// Safari (but not Chrome) clips the cancel button when the search input has
|
||||
// padding (and `textfield` appearance).
|
||||
//
|
||||
|
||||
input[type="search"]::-webkit-search-cancel-button,
|
||||
input[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
//
|
||||
// Define consistent border, margin, and padding.
|
||||
//
|
||||
|
||||
fieldset {
|
||||
border: 1px solid;
|
||||
margin: 0 2px;
|
||||
padding: 0.35em 0.625em 0.75em;
|
||||
}
|
||||
|
||||
//
|
||||
// 1. Remove padding so people aren't caught out if they zero out fieldsets.
|
||||
//
|
||||
|
||||
legend {
|
||||
padding: 0; // 1
|
||||
}
|
||||
|
||||
//
|
||||
// Don't inherit the `font-weight` (applied by a rule above).
|
||||
// NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
|
||||
//
|
||||
|
||||
optgroup {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
// Tables
|
||||
// ==========================================================================
|
||||
|
||||
//
|
||||
// Remove most spacing between table cells.
|
||||
//
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
td,
|
||||
th {
|
||||
padding: 0;
|
||||
}
|
||||
@@ -1,48 +1,6 @@
|
||||
@import "ui-variables";
|
||||
|
||||
// Override bootstrap styles here.
|
||||
|
||||
.panel {
|
||||
border-radius: 0;
|
||||
border: none;
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
|
||||
&.bordered {
|
||||
.panel-heading {
|
||||
border-radius: @component-border-radius @component-border-radius 0 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// interstitial panels
|
||||
|
||||
.inset-panel {
|
||||
.panel-heading {
|
||||
border-radius: @component-border-radius @component-border-radius 0 0;
|
||||
}
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
margin: 0;
|
||||
padding: @component-padding;
|
||||
|
||||
border-radius: 0;
|
||||
|
||||
font-size: @font-size;
|
||||
line-height: 1;
|
||||
|
||||
.btn {
|
||||
@btn-height: @component-line-height - 5px;
|
||||
height: @btn-height;
|
||||
line-height: @btn-height;
|
||||
font-size: @font-size - 2px;
|
||||
position: relative;
|
||||
top: -5px;
|
||||
}
|
||||
}
|
||||
|
||||
// Tool panels
|
||||
// Atom panels
|
||||
|
||||
atom-panel-container.left,
|
||||
atom-panel-container.right {
|
||||
@@ -53,7 +11,6 @@ atom-panel-container.right {
|
||||
atom-panel {
|
||||
display: block;
|
||||
position: relative;
|
||||
background-color: @tool-panel-background-color;
|
||||
}
|
||||
|
||||
atom-panel-container > atom-panel.left,
|
||||
@@ -66,77 +23,3 @@ atom-panel-container > atom-panel.left > *,
|
||||
atom-panel-container > atom-panel.right > * {
|
||||
height: initial;
|
||||
}
|
||||
|
||||
// Modal panels
|
||||
|
||||
.overlay, // deprecated .overlay
|
||||
atom-panel.modal {
|
||||
position: absolute;
|
||||
display: block;
|
||||
left: 50%;
|
||||
width: 500px;
|
||||
margin-left: -250px;
|
||||
z-index: 9999;
|
||||
box-sizing: border-box;
|
||||
|
||||
color: @text-color;
|
||||
background-color: @overlay-background-color;
|
||||
|
||||
padding: 10px;
|
||||
|
||||
// shrink modals when window gets narrow
|
||||
@media (max-width: 500px) {
|
||||
& {
|
||||
width: 100%;
|
||||
left: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin-top: 0;
|
||||
color: @text-color-highlight;
|
||||
font-size: 1.6em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
atom-text-editor[mini] {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.message {
|
||||
padding-top: 5px;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
&.mini {
|
||||
width: 200px;
|
||||
margin-left: -100px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
// deprecated: from-top, from-bottom
|
||||
.overlay.from-top,
|
||||
atom-panel.modal {
|
||||
top: 0;
|
||||
border-top: none;
|
||||
border-top-left-radius: 0;
|
||||
border-top-right-radius: 0;
|
||||
}
|
||||
|
||||
// TODO: Remove these!
|
||||
.overlay.from-bottom {
|
||||
bottom: 0;
|
||||
border-bottom: none;
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.overlay.floating {
|
||||
left: auto;
|
||||
}
|
||||
|
||||
@@ -7,10 +7,12 @@ atom-pane-container {
|
||||
position: relative;
|
||||
display: -webkit-flex;
|
||||
-webkit-flex: 1;
|
||||
min-width: 0;
|
||||
|
||||
atom-pane-axis {
|
||||
display: -webkit-flex;
|
||||
-webkit-flex: 1;
|
||||
min-width: 0;
|
||||
|
||||
& > atom-pane-resize-handle {
|
||||
position: absolute;
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
.select-list.popover-list {
|
||||
width: 200px;
|
||||
min-width: 200px;
|
||||
margin-left: 0;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.select-list.popover-list ol.list-group {
|
||||
position: relative;
|
||||
overflow-y: scroll;
|
||||
max-height: 200px;
|
||||
}
|
||||
34
static/scaffolding.less
Normal file
34
static/scaffolding.less
Normal file
@@ -0,0 +1,34 @@
|
||||
@import "ui-variables";
|
||||
@import "octicon-mixins";
|
||||
|
||||
//
|
||||
// Octicon font
|
||||
// --------------------------------------------------
|
||||
|
||||
@font-face { .octicon-font(); }
|
||||
|
||||
|
||||
//
|
||||
// Scaffolding
|
||||
// --------------------------------------------------
|
||||
|
||||
*,
|
||||
*:before,
|
||||
*:after {
|
||||
box-sizing: border-box; // Reset the box-sizing
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
html {
|
||||
font-family: @font-family;
|
||||
font-size: @font-size;
|
||||
line-height: 1.428571429; // 20/14
|
||||
color: @text-color;
|
||||
background-color: @app-background-color;
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
section, .section {
|
||||
position: relative;
|
||||
margin-top: 0;
|
||||
&:last-child { margin-bottom: 0; }
|
||||
|
||||
&.bordered {
|
||||
margin: 0;
|
||||
padding: @component-padding*2 0;
|
||||
border-top: 1px solid @background-color-highlight;
|
||||
border-bottom: 1px solid @tool-panel-border-color;
|
||||
}
|
||||
|
||||
.section-heading:first-child {
|
||||
margin-top: 0;
|
||||
font-weight: bold;
|
||||
color: @text-color-highlight;
|
||||
}
|
||||
}
|
||||
|
||||
div > section:first-child,
|
||||
form > section:first-child,
|
||||
div > .section:first-child,
|
||||
form > .section:first-child {
|
||||
border-top: none;
|
||||
padding-top: 0;
|
||||
}
|
||||
div > section:last-child,
|
||||
form > section:last-child,
|
||||
div > .section:last-child,
|
||||
form > .section:last-child {
|
||||
border-bottom: none;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
@@ -1,40 +0,0 @@
|
||||
@import "ui-variables";
|
||||
@import "octicon-mixins";
|
||||
|
||||
.select-list {
|
||||
.loading {
|
||||
.loading-message {
|
||||
.octicon(hourglass);
|
||||
|
||||
&:before {
|
||||
font-size: 1.1em;
|
||||
width: 1.1em;
|
||||
height: 1.1em;
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.badge {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
ol.list-group {
|
||||
position: relative;
|
||||
overflow-y: auto;
|
||||
max-height: 312px;
|
||||
margin: @component-padding 0 0 0;
|
||||
padding: 0;
|
||||
|
||||
li {
|
||||
display: block;
|
||||
|
||||
.primary-line,
|
||||
.secondary-line {
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
.text-bits (@type) {
|
||||
@text-color-name: "text-color-@{type}";
|
||||
@bg-color-name: "background-color-@{type}";
|
||||
|
||||
@text-color: @@text-color-name;
|
||||
@bg-color: @@bg-color-name;
|
||||
|
||||
code {
|
||||
color: @text-color;
|
||||
background: fadeout(@bg-color, 80%);
|
||||
}
|
||||
|
||||
a, a code {
|
||||
text-decoration: underline;
|
||||
color: darken(@text-color, 10%);
|
||||
|
||||
&:hover {
|
||||
color: darken(@text-color, 15%);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.text-info {
|
||||
.text-bits(info);
|
||||
}
|
||||
|
||||
.text-success {
|
||||
.text-bits(success);
|
||||
}
|
||||
|
||||
.text-warning {
|
||||
.text-bits(warning);
|
||||
}
|
||||
|
||||
.text-error {
|
||||
.text-bits(error);
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
@import "ui-variables";
|
||||
|
||||
:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.pull-center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.padded {
|
||||
padding: @component-padding;
|
||||
}
|
||||
|
||||
// Blocks
|
||||
|
||||
// Must be div.block so as not to affect syntax highlighting.
|
||||
ul.block,
|
||||
div.block {
|
||||
margin-bottom: @component-padding;
|
||||
}
|
||||
div > ul.block:last-child,
|
||||
div > div.block:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
// Inline Blocks
|
||||
|
||||
.inline-block,
|
||||
.inline-block-tight {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.inline-block {
|
||||
margin-right: @component-padding;
|
||||
}
|
||||
.inline-block-tight {
|
||||
margin-right: @component-padding/2;
|
||||
}
|
||||
div > .inline-block:last-child,
|
||||
div > .inline-block-tight:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.inline-block .inline-block {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
// Use left margin when it's in a float: right element.
|
||||
// Sets the margin correctly when inline blocks are hidden and shown.
|
||||
.pull-right {
|
||||
.inline-block {
|
||||
margin-right: 0;
|
||||
margin-left: @component-padding;
|
||||
}
|
||||
.inline-block-tight {
|
||||
margin-right: 0;
|
||||
margin-left: @component-padding/2;
|
||||
}
|
||||
|
||||
> .inline-block:first-child,
|
||||
> .inline-block-tight:first-child {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
@@ -17,7 +17,7 @@
|
||||
@background-color-success: #17ca65;
|
||||
@background-color-warning: #ff4800;
|
||||
@background-color-error: #c00;
|
||||
@background-color-highlight: rgba(255, 255, 255, 0.10);
|
||||
@background-color-highlight: hsla(0,0%,0%,.1);
|
||||
@background-color-selected: @background-color-highlight;
|
||||
|
||||
@app-background-color: #fff;
|
||||
@@ -82,4 +82,4 @@
|
||||
|
||||
// Other
|
||||
|
||||
@font-family: '.SFNSText-Regular', 'SF UI Text', 'Lucida Grande', 'Segoe UI', Ubuntu, Cantarell, sans-serif;
|
||||
@font-family: 'BlinkMacSystemFont', 'Lucida Grande', 'Segoe UI', Ubuntu, Cantarell, sans-serif;
|
||||
|
||||
@@ -1,19 +1,4 @@
|
||||
@import "ui-variables";
|
||||
@import "octicon-mixins";
|
||||
|
||||
@font-face { .octicon-font(); }
|
||||
|
||||
html {
|
||||
font-family: @font-family;
|
||||
font-size: @font-size;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
atom-workspace {
|
||||
display: flex;
|
||||
@@ -28,7 +13,7 @@ atom-workspace {
|
||||
atom-workspace-axis {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
atom-workspace-axis.horizontal {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
|
||||
Reference in New Issue
Block a user