merge conflict

Esse commit está contido em:
Kirill Nikitin
2014-05-16 11:45:43 +04:00
20 arquivos alterados com 130 adições e 52 exclusões
+1 -1
Ver Arquivo
@@ -6,6 +6,6 @@
"url": "https://github.com/atom/atom.git"
},
"dependencies": {
"atom-package-manager": "0.52.0"
"atom-package-manager": "0.53.0"
}
}
+24
Ver Arquivo
@@ -0,0 +1,24 @@
## Developing Node Modules
Atom contains a number of packages that are Node modules instead of Atom packages. If you want to
make changes to the Node modules, for instance `atom-keymap`, you have to link them into the
development environment differently than you would a normal Atom package.
### Linking a Node Module Into Your Atom Dev Environment
Here are the steps to run a local version of a node module *not an apm* within Atom. We're using
`atom-keymap` as an example:
```bash
$ git clone https://github.com/atom/atom-keymap.git
$ cd atom-keymap
$ npm install
$ npm link
$ apm rebuild # This is the special step, it makes the npm work with Atom's version of Node
$ cd WHERE-YOU-CLONED-ATOM
$ npm link atom-keymap
$ atom # Should work!
```
After this, you'll have to `npm install` and `apm rebuild` when you make a change to the node
module's code.
-13
Ver Arquivo
@@ -21,16 +21,3 @@ Ubuntu LTS 12.04 64-bit is the recommended platform.
```
## Troubleshooting
### Ubuntu 14.04
* On Ubuntu 14.04 LTS if `libudev.so.0` does not exist you will get an error message
```sh
/usr/local/share/atom/atom: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory
```
On x64 systems you can solve this error by making a symlink
```sh
sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0
```
+1 -1
Ver Arquivo
@@ -49,4 +49,4 @@ the editor to see it in action!
[plist]: http://en.wikipedia.org/wiki/Property_list
[R]: http://en.wikipedia.org/wiki/R_(programming_language)
[TextMate]: http://macromates.com
[TextMateOrg]: https://github.com/textmate/r.tmbundle
[TextMateOrg]: https://github.com/textmate
+1
Ver Arquivo
@@ -12,6 +12,7 @@
### Advanced Topics
* [Configuration](advanced/configuration.md)
* [Developing Node Modules](advanced/node-modules.md)
* [Keymaps](advanced/keymaps.md)
* [Serialization](advanced/serialization.md)
* [View System](advanced/view-system.md)
+2
Ver Arquivo
@@ -67,6 +67,8 @@
'ctrl-shift-right': 'editor:select-to-end-of-word'
'ctrl-backspace': 'editor:delete-to-beginning-of-word'
'ctrl-delete': 'editor:delete-to-end-of-word'
'ctrl-home': 'core:move-to-top'
'ctrl-end': 'core:move-to-bottom'
# Sublime Parity
'ctrl-a': 'core:select-all'
+8 -1
Ver Arquivo
@@ -1,4 +1,8 @@
'body':
# Platform Bindings
'ctrl-pageup': 'pane:show-previous-item'
'ctrl-pagedown': 'pane:show-next-item'
# Atom Specific
'enter': 'core:confirm'
'escape': 'core:cancel'
@@ -10,6 +14,7 @@
'ctrl-alt-i': 'window:toggle-dev-tools'
'ctrl-alt-p': 'window:run-package-specs'
'ctrl-alt-s': 'application:run-all-specs'
'F11': 'window:toggle-full-screen'
# Sublime Parity
'ctrl-N': 'application:new-window'
@@ -64,7 +69,9 @@
'ctrl-shift-left': 'editor:select-to-beginning-of-word'
'ctrl-shift-right': 'editor:select-to-end-of-word'
'ctrl-backspace': 'editor:delete-to-beginning-of-word'
'ctrl-delete': 'editor:delete-to-beginning-of-word'
'ctrl-delete': 'editor:delete-to-end-of-word'
'ctrl-home': 'core:move-to-top'
'ctrl-end': 'core:move-to-bottom'
# Sublime Parity
'ctrl-a': 'core:select-all'
+1
Ver Arquivo
@@ -185,6 +185,7 @@
{
label: 'Help'
submenu: [
{ label: 'Terms of Use', command: 'application:open-terms-of-use' }
{ label: 'Documentation', command: 'application:open-documentation' }
{ type: 'separator' }
]
+1
Ver Arquivo
@@ -145,6 +145,7 @@
{
label: '&Help'
submenu: [
{ label: 'View &Terms of Use', command: 'application:open-terms-of-use' }
{ label: 'View &License', command: 'application:open-license' }
{ label: "VERSION", enabled: false }
{ type: 'separator' }
+1
Ver Arquivo
@@ -165,6 +165,7 @@
label: '&Help'
submenu: [
{ label: '&About Atom...', command: 'application:about' }
{ label: 'View &Terms of Use', command: 'application:open-terms-of-use' }
{ label: 'View &License', command: 'application:open-license' }
{ label: "VERSION", enabled: false }
{ label: "Install &update", command: 'application:install-update', visible: false }
+19 -19
Ver Arquivo
@@ -1,7 +1,7 @@
{
"name": "atom",
"productName": "Atom",
"version": "0.95.0",
"version": "0.96.0",
"description": "A hackable text editor for the 21st Century.",
"main": "./src/browser/main.js",
"repository": {
@@ -17,7 +17,7 @@
"url": "http://github.com/atom/atom/raw/master/LICENSE.md"
}
],
"atomShellVersion": "0.12.3",
"atomShellVersion": "0.12.4",
"dependencies": {
"async": "0.2.6",
"atom-keymap": "^0.19.0",
@@ -28,7 +28,7 @@
"delegato": "^1",
"emissary": "^1.2.1",
"first-mate": "^1.5.3",
"fs-plus": "^2.2.2",
"fs-plus": "^2.2.3",
"fstream": "0.1.24",
"fuzzaldrin": "^1.1",
"git-utils": "^1.3",
@@ -41,7 +41,7 @@
"nslog": "0.5.0",
"oniguruma": "^1.0.6",
"optimist": "0.4.0",
"pathwatcher": "^1.2.4",
"pathwatcher": "^1.3.1",
"property-accessors": "^1",
"q": "^1.0.1",
"random-words": "0.0.1",
@@ -69,27 +69,27 @@
"base16-tomorrow-dark-theme": "0.15.0",
"solarized-dark-syntax": "0.14.0",
"solarized-light-syntax": "0.7.0",
"archive-view": "0.30.0",
"archive-view": "0.31.0",
"autocomplete": "0.27.0",
"autoflow": "0.16.0",
"autoflow": "0.17.0",
"autosave": "0.13.0",
"background-tips": "0.13.0",
"bookmarks": "0.22.0",
"bracket-matcher": "0.33.0",
"bracket-matcher": "0.34.0",
"command-palette": "0.21.0",
"deprecation-cop": "0.5.0",
"dev-live-reload": "0.30.0",
"exception-reporting": "0.17.0",
"feedback": "0.33.0",
"find-and-replace": "0.101.0",
"fuzzy-finder": "0.50.0",
"find-and-replace": "0.105.0",
"fuzzy-finder": "0.51.0",
"git-diff": "0.28.0",
"go-to-line": "0.19.0",
"go-to-line": "0.20.0",
"grammar-selector": "0.26.0",
"image-view": "0.33.0",
"keybinding-resolver": "0.17.0",
"link": "0.22.0",
"markdown-preview": "0.70.0",
"markdown-preview": "0.71.0",
"metrics": "0.32.0",
"open-on-github": "0.28.0",
"package-generator": "0.30.0",
@@ -99,24 +99,24 @@
"spell-check": "0.35.0",
"status-bar": "0.40.0",
"styleguide": "0.29.0",
"symbols-view": "0.51.0",
"symbols-view": "0.52.0",
"tabs": "0.39.0",
"timecop": "0.18.0",
"tree-view": "0.92.0",
"update-package-dependencies": "0.6.0",
"welcome": "0.13.0",
"welcome": "0.14.0",
"whitespace": "0.22.0",
"wrap-guide": "0.18.0",
"language-c": "0.15.0",
"language-coffee-script": "0.22.0",
"language-css": "0.16.0",
"language-gfm": "0.35.0",
"language-gfm": "0.37.0",
"language-git": "0.9.0",
"language-go": "0.11.0",
"language-html": "0.19.0",
"language-html": "0.22.0",
"language-hyperlink": "0.9.0",
"language-java": "0.10.0",
"language-javascript": "0.25.0",
"language-javascript": "0.26.0",
"language-json": "0.8.0",
"language-less": "0.9.0",
"language-make": "0.10.0",
@@ -125,9 +125,9 @@
"language-php": "0.14.0",
"language-property-list": "0.7.0",
"language-python": "0.15.0",
"language-ruby": "0.23.0",
"language-ruby-on-rails": "0.12.0",
"language-sass": "0.10.0",
"language-ruby": "0.24.0",
"language-ruby-on-rails": "0.14.0",
"language-sass": "0.11.0",
"language-shellscript": "0.8.0",
"language-source": "0.7.0",
"language-sql": "0.8.0",
+5 -3
Ver Arquivo
@@ -1,8 +1,10 @@
#!/usr/bin/env node
var nodeMinorVersion = process.versions.node.split('.')[1]
if (nodeMinorVersion !== '10') {
console.warn("You must run script/bootstrap and script/build with node v0.10.x");
var nodeVersion = process.versions.node.split('.')
var nodeMajorVersion = +nodeVersion[0]
var nodeMinorVersion = +nodeVersion[1]
if (nodeMajorVersion === 0 && nodeMinorVersion < 10) {
console.warn("You must run script/bootstrap and script/build with node v0.10 or above");
process.exit(1);
}
+30 -3
Ver Arquivo
@@ -2063,17 +2063,44 @@ describe "Editor", ->
describe ".copySelectedText()", ->
it "copies selected text onto the clipboard", ->
editor.setSelectedBufferRanges([[[0,4], [0,13]], [[1,6], [1, 10]], [[2,8], [2, 13]]])
editor.copySelectedText()
expect(buffer.lineForRow(0)).toBe "var quicksort = function () {"
expect(buffer.lineForRow(1)).toBe " var sort = function(items) {"
expect(clipboard.readText()).toBe 'quicksort\nsort'
expect(buffer.lineForRow(2)).toBe " if (items.length <= 1) return items;"
expect(clipboard.readText()).toBe 'quicksort\nsort\nitems'
expect(atom.clipboard.readWithMetadata().metadata.selections).toEqual([
'quicksort'
'sort'
'items'
])
describe ".pasteText()", ->
it "pastes text into the buffer", ->
atom.clipboard.write('first')
editor.pasteText()
expect(editor.buffer.lineForRow(0)).toBe "var first = function () {"
expect(buffer.lineForRow(1)).toBe " var first = function(items) {"
expect(editor.lineForBufferRow(0)).toBe "var first = function () {"
expect(editor.lineForBufferRow(1)).toBe " var first = function(items) {"
describe 'when the clipboard has many selections', ->
it "pastes each selection separately into the buffer", ->
atom.clipboard.write('first\nsecond', {selections: ['first', 'second'] })
editor.pasteText()
expect(editor.lineForBufferRow(0)).toBe "var first = function () {"
expect(editor.lineForBufferRow(1)).toBe " var second = function(items) {"
describe 'and the selections count does not match', ->
it "pastes the whole text into the buffer", ->
atom.clipboard.write('first\nsecond\nthird', {selections: ['first', 'second', 'third'] })
editor.pasteText()
expect(editor.lineForBufferRow(0)).toBe "var first"
expect(editor.lineForBufferRow(1)).toBe "second"
expect(editor.lineForBufferRow(2)).toBe "third = function () {"
expect(editor.lineForBufferRow(3)).toBe " var first"
expect(editor.lineForBufferRow(4)).toBe "second"
expect(editor.lineForBufferRow(5)).toBe "third = function(items) {"
describe ".indentSelectedRows()", ->
describe "when nothing is selected", ->
+1
Ver Arquivo
@@ -146,6 +146,7 @@ class AtomApplication
atomWindow?.browserWindow.inspectElement(x, y)
@on 'application:open-documentation', -> shell.openExternal('https://atom.io/docs/latest/?app')
@on 'application:open-terms-of-use', -> shell.openExternal('https://atom.io/terms')
@on 'application:install-update', -> @autoUpdateManager.install()
@on 'application:check-for-update', => @autoUpdateManager.check()
+1 -1
Ver Arquivo
@@ -42,7 +42,7 @@ start = ->
app.removeListener 'open-url', addUrlToOpen
args.pathsToOpen = args.pathsToOpen.map (pathToOpen) ->
path.resolve(args.executedFrom ? process.cwd(), pathToOpen)
path.resolve(args.executedFrom ? process.cwd(), pathToOpen.toString())
require('coffee-script').register()
if args.devMode
+5 -3
Ver Arquivo
@@ -222,11 +222,13 @@ class Config
#
# keyPath - The {String} name of the key to observe
# options - An optional {Object} containing the `callNow` key.
# callback - The {Function} that fires when the. It is given a single argument, `value`,
# which is the new value of `keyPath`.
# callback - The {Function} to call when the value of the key changes.
# The first argument will be the new value of the key and the
#   second argument will be an {Object} with a `previous` property
# that is the prior value of the key.
#
# Returns an {Object} with the following keys:
# :off - A {Function} that unobserves the `keyPath` with called.
# :off - A {Function} that unobserves the `keyPath` when called.
observe: (keyPath, options={}, callback) ->
if _.isFunction(options)
callback = options
+2 -2
Ver Arquivo
@@ -50,7 +50,7 @@ class EditorView extends View
showLineNumbers: true
autoIndent: true
normalizeIndentOnPaste: true
nonWordCharacters: "./\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-"
nonWordCharacters: "/\\()\"':,.;<>~!@#$%^&*|+=[]{}`?-"
preferredLineLength: 80
tabLength: 2
softWrap: false
@@ -387,7 +387,7 @@ class EditorView extends View
screenPosition = @screenPositionFromMouseEvent(e)
if clickCount == 1
if e.metaKey
if e.metaKey or (process.platform isnt 'darwin' and e.ctrlKey)
@editor.addCursorAtScreenPosition(screenPosition)
else if e.shiftKey
@editor.selectToScreenPosition(screenPosition)
+13 -2
Ver Arquivo
@@ -748,13 +748,24 @@ class Editor extends Model
# Public: For each selection, replace the selected text with the contents of
# the clipboard.
#
# If the clipboard contains the same number of selections as the current
# editor, each selection will be replaced with the content of the
# corresponding clipboard selection text.
#
# options - See {Selection::insertText}.
pasteText: (options={}) ->
{text, metadata} = atom.clipboard.readWithMetadata()
containsNewlines = text.indexOf('\n') isnt -1
if atom.config.get('editor.normalizeIndentOnPaste') and metadata
if metadata?.selections? and metadata.selections.length is @getSelections().length
@mutateSelectedText (selection, index) ->
text = metadata.selections[index]
selection.insertText(text, options)
return
else if atom.config.get("editor.normalizeIndentOnPaste") and metadata?.indentBasis?
if !@getCursor().hasPrecedingCharactersOnLine() or containsNewlines
options.indentBasis ?= metadata.indentBasis
@@ -1030,7 +1041,7 @@ class Editor extends Model
#
# fn - A {Function} that will be called with each {Selection}.
mutateSelectedText: (fn) ->
@transact => fn(selection) for selection in @getSelections()
@transact => fn(selection,index) for selection,index in @getSelections()
replaceSelectedText: (options={}, fn) ->
{selectWordIfEmpty} = options
+1 -2
Ver Arquivo
@@ -44,8 +44,7 @@ class PackageManager
# Public: Get the path to the apm command
getApmPath: ->
commandName = 'apm'
if process.platform == 'win32'
commandName += '.cmd'
commandName += '.cmd' if process.platform is 'win32'
@apmPath ?= path.resolve(__dirname, '..', 'apm', 'node_modules', 'atom-package-manager', 'bin', commandName)
# Public: Get the paths being used to look for packages.
+13 -1
Ver Arquivo
@@ -513,11 +513,23 @@ class Selection extends Model
@delete()
# Public: Copies the current selection to the clipboard.
#
# If the `maintainClipboard` is set to `true`, a specific metadata property
# is created to store each content copied to the clipboard. The clipboard
# `text` still contains the concatenation of the clipboard with the
# current selection.
copy: (maintainClipboard=false) ->
return if @isEmpty()
text = @editor.buffer.getTextInRange(@getBufferRange())
if maintainClipboard
text = "#{atom.clipboard.read()}\n#{text}"
{text: clipboardText, metadata} = atom.clipboard.readWithMetadata()
if metadata?.selections?
metadata.selections.push(text)
else
metadata = { selections: [clipboardText, text] }
text = "" + (clipboardText) + "\n" + text
else
metadata = { indentBasis: @editor.indentationForBufferRow(@getBufferRange().start.row) }