Comparar commits

...

77 Commits

Autor SHA1 Mensagem Data
Kevin Sawicki 0adae86b4d Don't set line height on mini editors 2014-03-25 10:55:32 -07:00
Kevin Sawicki 92283cabfa Prepare 0.78.0 release 2014-03-25 10:27:28 -07:00
Kevin Sawicki a4774ada84 Upgrade to emissary 1.2 2014-03-25 10:00:46 -07:00
Kevin Sawicki e6bcf7ec6e Upgrade to text-buffer 1.4.5 2014-03-25 09:51:05 -07:00
Kevin Sawicki 27ef1f8749 Upgrade to pathwatcher 1.1 2014-03-25 09:50:52 -07:00
Kevin Sawicki 8ee1c2b591 Upgrade to symbols-view@0.46.0 2014-03-25 09:48:29 -07:00
Kevin Sawicki f6f659aec6 Upgrade to snippets@0.40.0 2014-03-25 09:47:44 -07:00
Kevin Sawicki 61372241f7 Upgrade to markdown-preview@0.51.0 2014-03-25 09:46:50 -07:00
Kevin Sawicki d398d89de9 Upgrade to dev-live-reload@0.30.0 2014-03-25 09:45:57 -07:00
Kevin Sawicki af4a2340c4 Upgrade to archive-view@0.30.0 2014-03-25 09:44:53 -07:00
Kevin Sawicki 2d9791d61a Upgrade to language-objective-c@0.11.0 2014-03-25 09:29:46 -07:00
Kevin Sawicki f874ec7cb6 Upgrade to language-ruby@0.17.0 2014-03-25 09:29:46 -07:00
Cheng Zhao 9e4baad701 Merge pull request #1796 from atom/atom-shell-v0.11.3
Upgrade to atom-shell@0.11.3
2014-03-25 12:20:40 +00:00
Cheng Zhao 59b711447c Upgrade to atom-shell@0.11.3 2014-03-25 20:11:28 +08:00
Cheng Zhao 2bb4866e1a Merge pull request #1789 from atom/linux-package
Add task to create .deb package
2014-03-25 07:42:01 +00:00
Cheng Zhao 72ceaf772d 🐧 Use startup notification. 2014-03-25 15:41:00 +08:00
Cheng Zhao 2da9ee0cee 🐧 Add icon file in deb package. 2014-03-25 15:41:00 +08:00
Cheng Zhao 9c070cd71d 🐧 Add desktop file. 2014-03-25 15:40:59 +08:00
Cheng Zhao 6f068f14fd Do not hard code build dir. 2014-03-25 15:40:59 +08:00
Cheng Zhao 67d8db8b9a 🐧 Add mkdeb task to create debian package. 2014-03-25 15:40:59 +08:00
Cheng Zhao 03b9a25897 Add description field to package.json.
It would be used when generating packages.
2014-03-25 15:40:59 +08:00
Cheng Zhao 645fc1511a Do not add parameter in shebang string.
On Linux "#!/usr/bin/env node --harmony_collections" is unfortunately
not recognized by system.
2014-03-25 15:40:43 +08:00
Cheng Zhao ae1d3b1e80 🐧 Search atom from installed position. 2014-03-25 15:40:43 +08:00
Cheng Zhao 627a839779 Fix grunt install. 2014-03-25 15:40:43 +08:00
Cheng Zhao 5151faea3d Use unix style install. 2014-03-25 15:40:43 +08:00
Cheng Zhao eb1bed118f No need to parse args before passing to nslog. 2014-03-25 15:40:43 +08:00
Kevin Sawicki e9f4820dd4 Upgrade to symbols-view@0.45.0 2014-03-24 17:17:46 -07:00
Kevin Sawicki 03d4fdb890 Upgrade to snippets@0.39.0 2014-03-24 16:49:19 -07:00
Nathan Sobo 1cdec9386c Modernize serialization docs 2014-03-24 16:19:06 -06:00
Kevin Sawicki ba8f6bccec Upgrade to snippets@0.38.0 2014-03-24 15:13:53 -07:00
Kevin Sawicki 22c8746ed6 Upgrade to status-bar@0.37.0 2014-03-24 14:27:32 -07:00
Nathan Sobo 96503f74e4 Upgrade to atom-keymap@0.11.0 for better native! handling
We weren't clearing the queued keystrokes when aborting partial match
due to encountering a native! binding.
2014-03-24 14:55:35 -06:00
Justin Palmer 7fb3396f65 Merge pull request #1795 from atom/line-height-config
Line height config option
2014-03-24 13:42:41 -07:00
Kevin Sawicki 66fa40b29e Upgrade to language-xml@0.9.0 2014-03-24 13:35:03 -07:00
Kevin Sawicki b5aefc6f5e Upgrade to language-gfm@0.25.0 2014-03-24 12:53:50 -07:00
Justin Palmer cf590685b9 remove lineHeight getter
Nothing is using it and we can add it back once the need arises.
2014-03-24 12:52:01 -07:00
Justin Palmer a604bfcdf1 remove trailing whitespace 2014-03-24 11:42:32 -07:00
Justin Palmer c389bccfa0 update editor view specs to account for lineHeight 2014-03-24 11:37:58 -07:00
Justin Palmer ce02dcf5a5 clarify docs around lineHeight 2014-03-24 11:37:38 -07:00
Justin Palmer d3d38c0312 rename editorLineHeight to lineHeight 2014-03-24 11:28:15 -07:00
Justin Palmer 95d097dd7b 1.3 best represents the previous default line height 2014-03-24 10:59:19 -07:00
Justin Palmer 47f3b562b5 add getter for editorLineHeight 2014-03-24 10:58:58 -07:00
Justin Palmer 5eb12e671b add config option for explicitly setting the editor line height 2014-03-24 10:58:26 -07:00
Kevin Sawicki 023cb2ea55 Prepare 0.77.0 release 2014-03-24 10:54:56 -07:00
probablycorey 98ea42d808 Update docs on window:reloading 2014-03-24 09:38:40 -07:00
probablycorey 4e3a46ee71 Use correct keybinding for window:reload 2014-03-24 09:12:59 -07:00
Cheng Zhao 9ebc5fa30e Merge pull request #1786 from atom/atom-shell-v0.11.2
Upgrade to atom-shell@0.11.2
2014-03-24 09:58:16 +00:00
Cheng Zhao 810ca750cd Upgrade to atom-shell@0.11.2 2014-03-24 17:51:56 +08:00
Nathan Sobo 424652e27c Also ensure editor is *visible* before recalculating dimensions 2014-03-21 17:33:39 -06:00
Nathan Sobo 831beceaac Upgrade to keybinding-resolver@0.12.0 to improve typing performance 2014-03-21 13:58:47 -06:00
Nathan Sobo 2daf026967 Merge pull request #1777 from atom/ns-optimize-editor-rendering
Remove extra reflow and options object allocation from editor view updates
2014-03-21 13:12:54 -06:00
Nathan Sobo dbd6a98bbe Upgrade to atom-keymap@0.10.0 for better 'native!' handling
If a native! binding is encountered, we honor it even if there are
partially matching multi-stroke bindings.
2014-03-21 11:31:57 -06:00
Kevin Sawicki a4ffdeb842 Upgrade to oniguruma 1.0.4 2014-03-21 10:26:37 -07:00
Kevin Sawicki 9b6194c5a4 Upgrade to language-html@0.15.0 2014-03-21 10:11:56 -07:00
Nathan Sobo 8e4573677d Upgrade to atom-dark-ui@0.26.0 for scrollbar styling 2014-03-21 10:48:47 -06:00
Nathan Sobo 61e9befbe7 Favor the most recent matching binding when selecting app menu shortcuts
We sending every binding matching the `body` selector to the browser
process, but it only selects the first. Since we scan the bindings in
chronological order, we need to unshift bindings to the front of the
array so the most recently defined bindings are loaded first.
2014-03-21 10:42:04 -06:00
Kevin Sawicki 0f50c40a93 Upgrade to markdown-preview@0.50.0 2014-03-21 09:34:00 -07:00
Kevin Sawicki 907f8c34ac Upgrade to language-gfm@0.24.0 2014-03-21 09:32:49 -07:00
Kevin Sawicki c178d4c874 Upgrade to apm 0.36.0 2014-03-21 08:29:41 -07:00
Kevin Sawicki 233fd44b01 Upgrade to language-gfm@0.23.0 2014-03-20 17:57:24 -07:00
Kevin Sawicki ab88edaa02 Merge pull request #1774 from atom/ks-support-submodules
Support submodules in Git class
2014-03-20 17:32:16 -07:00
Nathan Sobo 50c25d9e44 Read scrollView width prior to touching the DOM to prevent reflow 2014-03-20 18:02:04 -06:00
Nathan Sobo 9be593d390 Eliminate options object for suppressAutoscroll
It's a single option used only internally. Let's not allocate an object
for it.
2014-03-20 18:02:04 -06:00
Kevin Sawicki 318c43931c Upgrade to git-utils 1.1.1 2014-03-20 17:01:53 -07:00
Kevin Sawicki 244fc33f49 Support submodules inside submodules from isSubmodule 2014-03-20 16:36:10 -07:00
Kevin Sawicki f83f5263a9 💄 Reorder keys 2014-03-20 16:10:10 -07:00
Kevin Sawicki 3266dde2e3 📝 Add missing d 2014-03-20 16:10:10 -07:00
Kevin Sawicki 3428ee335a 💄 2014-03-20 16:10:10 -07:00
Kevin Sawicki db6b4d7b81 Support submodules in more methods 2014-03-20 16:10:10 -07:00
Kevin Sawicki 1c195987c1 Load submodule statuses in handler 2014-03-20 16:10:09 -07:00
Kevin Sawicki 4913714a61 Fall back to root repo for submodule check 2014-03-20 16:10:09 -07:00
Kevin Sawicki 8e2856465c Handle submodules in getDiffStats/isSubmodule 2014-03-20 16:10:09 -07:00
Kevin Sawicki 868c7a3908 Compute status of submodules 2014-03-20 16:10:09 -07:00
Kevin Sawicki afaf91ebde Add path argument to handle submodules correct 2014-03-20 16:10:09 -07:00
Kevin Sawicki c92fe1452b Upgrade to git-utils 1.1 2014-03-20 16:10:09 -07:00
Kevin Sawicki 2bde128fed Make serialization version independent of app version
Previously when deserializing the version of the serialized state
was compared to the app version causing the serialized state be discarded
each time Atom was updated.

Now the cached app version variable is different than the serialization
version allow them to drift accordingly without loss of serialized state.
2014-03-20 16:09:16 -07:00
Kevin Sawicki 89461505b5 Prepare 0.76.0 release 2014-03-20 15:54:42 -07:00
24 arquivos alterados com 280 adições e 93 exclusões
+5 -2
Ver Arquivo
@@ -66,14 +66,17 @@ if [ $OS == 'Mac' ]; then
open -a "$ATOM_PATH/$ATOM_APP_NAME" -n --args --executed-from="$(pwd)" --pid=$$ "$@"
fi
elif [ $OS == 'Linux' ]; then
ATOM_PATH='/opt/Atom/atom'
SCRIPT=`readlink -f "$0"`
USR_DIRECTORY=`readlink -f $(dirname $SCRIPT)/..`
ATOM_PATH="$USR_DIRECTORY/share/atom/atom"
[ -x "$ATOM_PATH" ] || ATOM_PATH='/tmp/atom-build/Atom/atom'
if [ $EXPECT_OUTPUT ]; then
"$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@"
exit $?
else
nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > /dev/null &
nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > /dev/null 2>&1 &
fi
fi
+3 -5
Ver Arquivo
@@ -39,35 +39,33 @@ module.exports = (grunt) ->
if process.platform is 'win32'
appName = 'Atom'
tmpDir = os.tmpdir()
installRoot = process.env.ProgramFiles
buildDir = grunt.option('build-dir') ? path.join(tmpDir, 'atom-build')
symbolsDir = path.join(buildDir, 'Atom.breakpad.syms')
shellAppDir = path.join(buildDir, appName)
contentsDir = shellAppDir
appDir = path.join(shellAppDir, 'resources', 'app')
atomShellDownloadDir = path.join(os.tmpdir(), 'atom-cached-atom-shells')
installDir = path.join(process.env.ProgramFiles, appName)
else if process.platform is 'darwin'
appName = 'Atom.app'
tmpDir = '/tmp'
installRoot = '/Applications'
buildDir = grunt.option('build-dir') ? path.join(tmpDir, 'atom-build')
symbolsDir = path.join(buildDir, 'Atom.breakpad.syms')
shellAppDir = path.join(buildDir, appName)
contentsDir = path.join(shellAppDir, 'Contents')
appDir = path.join(contentsDir, 'Resources', 'app')
atomShellDownloadDir = '/tmp/atom-cached-atom-shells'
installDir = path.join('/Applications', appName)
else
appName = 'Atom'
tmpDir = '/tmp'
installRoot = '/opt'
buildDir = grunt.option('build-dir') ? path.join(tmpDir, 'atom-build')
symbolsDir = path.join(buildDir, 'Atom.breakpad.syms')
shellAppDir = path.join(buildDir, appName)
contentsDir = shellAppDir
appDir = path.join(shellAppDir, 'resources', 'app')
atomShellDownloadDir = '/tmp/atom-cached-atom-shells'
installDir = path.join(installRoot, appName)
installDir = process.env.INSTALL_PREFIX ? '/usr/local'
coffeeConfig =
options:
+10 -1
Ver Arquivo
@@ -15,7 +15,16 @@ module.exports = (grunt) ->
createShortcut = path.resolve 'script', 'create-shortcut.cmd'
runas('cmd', ['/c', createShortcut, path.join(installDir, 'atom.exe'), 'Atom'])
else
else if process.platform is 'darwin'
rm installDir
mkdir path.dirname(installDir)
cp shellAppDir, installDir
else
binDir = path.join(installDir, 'bin')
shareDir = path.join(installDir, 'share', 'atom')
mkdir binDir
cp 'atom.sh', path.join(binDir, 'atom')
rm shareDir
mkdir path.dirname(shareDir)
cp shellAppDir, shareDir
+31
Ver Arquivo
@@ -0,0 +1,31 @@
fs = require 'fs'
path = require 'path'
_ = require 'underscore-plus'
fillTemplate = (filePath, data) ->
template = _.template(String(fs.readFileSync(filePath + '.in')))
filled = template(data)
fs.writeFileSync(filePath, filled)
module.exports = (grunt) ->
{spawn} = require('./task-helpers')(grunt)
grunt.registerTask 'mkdeb', 'Create debian package', ->
done = @async()
{name, version, description} = grunt.file.readJSON('package.json')
section = 'devel'
arch = 'amd64'
maintainer = 'GitHub <support@github.com>'
data = {name, version, description, section, arch, maintainer}
control = path.join('resources', 'linux', 'debian', 'control')
fillTemplate(control, data)
desktop = path.join('resources', 'linux', 'Atom.desktop')
fillTemplate(desktop, data)
icon = path.join('resources', 'atom.png')
buildDir = grunt.config.get('atom.buildDir')
cmd = path.join('script', 'mkdeb')
args = [version, control, desktop, icon, buildDir]
spawn({cmd, args}, done)
+9 -7
Ver Arquivo
@@ -19,7 +19,7 @@ module.exports =
activate: (state) ->
@myObject =
if state
deserialize(state)
atom.deserializers.deserialize(state)
else
new MyObject("Hello")
@@ -31,7 +31,8 @@ module.exports =
```coffee-script
class MyObject
registerDeserializer(this)
atom.deserializers.add(this)
@deserialize: ({data}) -> new MyObject(data)
constructor: (@data) ->
serialize: -> { deserializer: 'MyObject', data: @data }
@@ -50,8 +51,8 @@ class-level method on the same class that implements `serialize`. This method's
job is to convert a state object returned from a previous call `serialize` back
into a genuine object.
#### registerDeserializer(klass)
You need to call the global `registerDeserializer` method with your class in
#### atom.deserializers.add(klass)
You need to call the `atom.deserializers.add` method with your class in
order to make it available to the deserialization system. Now you can call the
global `deserialize` method with state returned from `serialize`, and your
class's `deserialize` method will be selected automatically.
@@ -60,14 +61,15 @@ class's `deserialize` method will be selected automatically.
```coffee-script
class MyObject
atom.deserializers.add(this)
@version: 2
@deserialize: (state) -> ...
serialize: -> { version: MyObject.version, ... }
serialize: -> { version: @constructor.version, ... }
```
Your serializable class can optionally have a class-level `@version` property
and include a `version` key in its serialized state. When deserializing, Atom
will only attempt to call deserialize if the two versions match, and otherwise
return undefined. We plan on implementing a migration system in the future, but
this at least protects you from improperly deserializing old state. If you find
yourself in dire need of the migration system, let us know.
this at least protects you from improperly deserializing old state.
+1 -1
Ver Arquivo
@@ -51,7 +51,7 @@ editor such as comments, strings and the line numbers in the gutter.
As an example, let's make the `.gutter` `background-color` into `@red`.
Reload Atom by pressing `cmd-alt-option-L` to see the changes you made reflected
Reload Atom by pressing `cmd-alt-ctrl-l` to see the changes you made reflected
in your Atom window. Pretty neat!
__Tip:__ You can avoid reloading to see changes you make by opening an atom
+22 -21
Ver Arquivo
@@ -1,7 +1,8 @@
{
"name": "atom",
"productName": "Atom",
"version": "0.75.0",
"version": "0.78.0",
"description": "A hackable text editor for the 21st Century.",
"main": "./src/browser/main.js",
"repository": {
"type": "git",
@@ -11,21 +12,21 @@
"url": "https://github.com/atom/atom/issues"
},
"license": "All Rights Reserved",
"atomShellVersion": "0.11.1",
"atomShellVersion": "0.11.3",
"dependencies": {
"async": "0.2.6",
"atom-keymap": "^0.9.0",
"atom-keymap": "^0.11.0",
"bootstrap": "git://github.com/atom/bootstrap.git#6af81906189f1747fd6c93479e3d998ebe041372",
"clear-cut": "0.4.0",
"coffee-script": "1.7.0",
"coffeestack": "0.7.0",
"delegato": "1.x",
"emissary": "1.x",
"emissary": "^1.2",
"first-mate": ">=1.4.2 <2.0",
"fs-plus": ">=2.0.4 < 3.0",
"fstream": "0.1.24",
"fuzzaldrin": "~1.1",
"git-utils": "^1.0.1",
"git-utils": "^1.1.1",
"guid": "0.0.10",
"jasmine-tagged": ">=1.1.1 <2.0",
"mkdirp": "0.3.5",
@@ -33,9 +34,9 @@
"less-cache": "0.12.0",
"mixto": "1.x",
"nslog": "0.5.0",
"oniguruma": ">=1.0.3 <2.0",
"oniguruma": "^1.0.4",
"optimist": "0.4.0",
"pathwatcher": "^1.0.0",
"pathwatcher": "^1.1",
"property-accessors": "1.x",
"q": "^1.0.1",
"random-words": "0.0.1",
@@ -47,20 +48,20 @@
"serializable": "1.x",
"space-pen": "3.1.1",
"temp": "0.5.0",
"text-buffer": "^1.4.4",
"text-buffer": "^1.4.5",
"theorist": "1.x",
"underscore-plus": ">=1.0.5 <2.0",
"vm-compatibility-layer": "0.1.0"
},
"packageDependencies": {
"atom-dark-syntax": "0.15.0",
"atom-dark-ui": "0.25.0",
"atom-dark-ui": "0.26.0",
"atom-light-syntax": "0.16.0",
"atom-light-ui": "0.23.0",
"base16-tomorrow-dark-theme": "0.13.0",
"solarized-dark-syntax": "0.14.0",
"solarized-light-syntax": "0.7.0",
"archive-view": "0.29.0",
"archive-view": "0.30.0",
"autocomplete": "0.27.0",
"autoflow": "0.15.0",
"autosave": "0.13.0",
@@ -68,7 +69,7 @@
"bookmarks": "0.22.0",
"bracket-matcher": "0.26.0",
"command-palette": "0.19.0",
"dev-live-reload": "0.29.0",
"dev-live-reload": "0.30.0",
"exception-reporting": "0.17.0",
"feedback": "0.28.0",
"find-and-replace": "0.92.0",
@@ -77,19 +78,19 @@
"go-to-line": "0.18.0",
"grammar-selector": "0.23.0",
"image-view": "0.32.0",
"keybinding-resolver": "0.11.0",
"keybinding-resolver": "0.12.0",
"link": "0.20.0",
"markdown-preview": "0.49.0",
"markdown-preview": "0.51.0",
"metrics": "0.32.0",
"open-on-github": "0.23.0",
"package-generator": "0.30.0",
"release-notes": "0.26.0",
"settings-view": "0.97.0",
"snippets": "0.37.0",
"snippets": "0.40.0",
"spell-check": "0.28.0",
"status-bar": "0.36.0",
"status-bar": "0.37.0",
"styleguide": "0.26.0",
"symbols-view": "0.44.0",
"symbols-view": "0.46.0",
"tabs": "0.31.0",
"timecop": "0.17.0",
"tree-view": "0.83.0",
@@ -100,22 +101,22 @@
"language-c": "0.13.0",
"language-coffee-script": "0.16.0",
"language-css": "0.13.0",
"language-gfm": "0.22.0",
"language-gfm": "0.25.0",
"language-git": "0.9.0",
"language-go": "0.7.0",
"language-html": "0.14.0",
"language-html": "0.15.0",
"language-hyperlink": "0.9.0",
"language-java": "0.9.0",
"language-javascript": "0.21.0",
"language-json": "0.8.0",
"language-less": "0.6.0",
"language-make": "0.9.0",
"language-objective-c": "0.10.0",
"language-objective-c": "0.11.0",
"language-perl": "0.8.0",
"language-php": "0.13.0",
"language-property-list": "0.7.0",
"language-python": "0.12.0",
"language-ruby": "0.16.0",
"language-ruby": "0.17.0",
"language-ruby-on-rails": "0.12.0",
"language-sass": "0.8.0",
"language-shellscript": "0.8.0",
@@ -124,7 +125,7 @@
"language-text": "0.6.0",
"language-todo": "0.9.0",
"language-toml": "0.12.0",
"language-xml": "0.8.0",
"language-xml": "0.9.0",
"language-yaml": "0.6.0"
},
"private": true,
+8
Ver Arquivo
@@ -0,0 +1,8 @@
[Desktop Entry]
Name=Atom
Comment=<%= description %>
Exec=/usr/share/atom/atom %U
Icon=atom
Type=Application
StartupNotify=true
Categories=GNOME;GTK;Utility;TextEditor;
+8
Ver Arquivo
@@ -0,0 +1,8 @@
Package: <%= name %>
Version: <%= version %>
Section: <%= section %>
Priority: optional
Architecture: <%= arch %>
Installed-Size: `du -ks usr|cut -f 1`
Maintainer: <%= maintainer %>
Description: <%= description %>
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var nodeMinorVersion = process.versions.node.split('.')[1]
if (nodeMinorVersion !== '10') {
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var cp = require('./utils/child-process-wrapper.js');
var path = require('path');
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var cp = require('./utils/child-process-wrapper.js');
var fs = require('fs');
var path = require('path');
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var cp = require('./utils/child-process-wrapper.js');
var path = require('path');
var os = require('os');
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var cp = require('./utils/child-process-wrapper.js');
var path = require('path');
Arquivo executável
+31
Ver Arquivo
@@ -0,0 +1,31 @@
#!/bin/bash
# mkdeb version control-file-path deb-file-path
SCRIPT=`readlink -f "$0"`
ROOT=`readlink -f $(dirname $SCRIPT)/..`
cd $ROOT
VERSION="$1"
CONTROL_FILE="$2"
DESKTOP_FILE="$3"
ICON_FILE="$4"
DEB_PATH="$5"
TARGET_ROOT="`mktemp -d`"
TARGET="$TARGET_ROOT/atom-$VERSION"
mkdir -p "$TARGET/usr"
env INSTALL_PREFIX="$TARGET/usr" script/grunt install
mkdir -p "$TARGET/DEBIAN"
mv "$CONTROL_FILE" "$TARGET/DEBIAN/control"
mkdir -p "$TARGET/usr/share/applications"
mv "$DESKTOP_FILE" "$TARGET/usr/share/applications"
mkdir -p "$TARGET/usr/share/pixmaps"
cp "$ICON_FILE" "$TARGET/usr/share/pixmaps"
dpkg-deb -b "$TARGET"
mv "$TARGET_ROOT/atom-$VERSION.deb" "$DEB_PATH"
rm -rf $TARGET_ROOT
+1 -1
Ver Arquivo
@@ -1,4 +1,4 @@
#!/usr/bin/env node --harmony_collections
#!/usr/bin/env node
var safeExec = require('./utils/child-process-wrapper.js').safeExec;
var path = require('path');
+4 -4
Ver Arquivo
@@ -2937,14 +2937,14 @@ describe "EditorView", ->
.editor { line-height: 2; }
"""
expect(editorView.pixelPositionForScreenPosition([1, 3])).toEqual {top: 32, left: 30}
expect(editorView.getCursorView().position()).toEqual {top: 32, left: 30}
expect(editorView.pixelPositionForScreenPosition([1, 3])).toEqual {top: 20, left: 30}
expect(editorView.getCursorView().position()).toEqual {top: 20, left: 30}
atom.themes.applyStylesheet 'char-width', """
.editor { letter-spacing: 2px; }
"""
expect(editorView.pixelPositionForScreenPosition([1, 3])).toEqual {top: 32, left: 36}
expect(editorView.getCursorView().position()).toEqual {top: 32, left: 36}
expect(editorView.pixelPositionForScreenPosition([1, 3])).toEqual {top: 20, left: 36}
expect(editorView.getCursorView().position()).toEqual {top: 20, left: 36}
describe "when the editor contains hard tabs", ->
it "correctly calculates the the position left for a column", ->
+5 -3
Ver Arquivo
@@ -34,6 +34,8 @@ WindowEventHandler = require './window-event-handler'
# * `atom.workspaceView` - A {WorkspaceView} instance
module.exports =
class Atom extends Model
@version: 1 # Increment this when the serialization format changes
# Public: Load or create the Atom environment in the given mode.
#
# - mode: Pass 'editor' or 'spec' depending on the kind of environment you
@@ -41,11 +43,11 @@ class Atom extends Model
#
# Returns an Atom instance, fully initialized
@loadOrCreate: (mode) ->
@deserialize(@loadState(mode)) ? new this({mode, version: @getVersion()})
@deserialize(@loadState(mode)) ? new this({mode, @version})
# Deserializes the Atom environment from a state object
@deserialize: (state) ->
new this(state) if state?.version is @getVersion()
new this(state) if state?.version is @version
# Loads and returns the serialized state corresponding to this window
# if it exists; otherwise returns undefined.
@@ -110,7 +112,7 @@ class Atom extends Model
# Get the version of the Atom application.
@getVersion: ->
@version ?= @getLoadSettings().appVersion
@appVersion ?= @getLoadSettings().appVersion
# Determine whether the current version is an official release.
@isReleasedVersion: ->
+1 -6
Ver Arquivo
@@ -9,12 +9,7 @@ optimist = require 'optimist'
nslog = require 'nslog'
dialog = require 'dialog'
console.log = (args...) ->
# TODO: Make NSLog work as expected
output = args.map((arg) -> JSON.stringify(arg)).join(" ")
nslog(output)
if process.platform isnt 'darwin'
fs.writeFileSync('debug.log', output, flag: 'a')
console.log = nslog
process.on 'uncaughtException', (error={}) ->
nslog(error.message) if error.message?
+27 -12
Ver Arquivo
@@ -44,6 +44,7 @@ class EditorView extends View
@configDefaults:
fontFamily: ''
fontSize: 16
lineHeight: 1.3
showInvisibles: false
showIndentGuide: false
showLineNumbers: true
@@ -340,6 +341,8 @@ class EditorView extends View
@subscribe atom.config.observe 'editor.invisibles', (invisibles) => @setInvisibles(invisibles)
@subscribe atom.config.observe 'editor.fontSize', (fontSize) => @setFontSize(fontSize)
@subscribe atom.config.observe 'editor.fontFamily', (fontFamily) => @setFontFamily(fontFamily)
@subscribe atom.config.observe 'editor.lineHeight', (lineHeight) => @setLineHeight(lineHeight)
handleEvents: ->
@on 'focus', =>
@@ -747,6 +750,17 @@ class EditorView extends View
# Returns a {String} identifying the CSS `font-family`.
getFontFamily: -> @css("font-family")
# Public: Sets the line height of the editor.
#
# Calling this method has no effect when called on a mini editor.
#
# lineHeight - A {Number} without a unit suffix identifying the CSS
# `line-height`.
setLineHeight: (lineHeight) ->
return if @mini
@css('line-height', lineHeight)
@redraw()
# Public: Redraw the editor
redraw: ->
return unless @hasParent()
@@ -885,7 +899,7 @@ class EditorView extends View
@setHeightInLines()
recalculateDimensions: ->
return unless @attached
return unless @attached and @isVisible()
oldCharWidth = @charWidth
oldLineHeight = @lineHeight
@@ -896,7 +910,7 @@ class EditorView extends View
@clearCharacterWidthCache()
@requestDisplayUpdate()
updateLayerDimensions: ->
updateLayerDimensions: (scrollViewWidth) ->
height = @lineHeight * @editor.getScreenLineCount()
unless @layerHeight == height
@layerHeight = height
@@ -906,7 +920,7 @@ class EditorView extends View
@verticalScrollbarContent.height(@layerHeight)
@scrollBottom(height) if @scrollBottom() > height
minWidth = Math.max(@charWidth * @editor.getMaxScreenLineLength() + 20, @scrollView.width())
minWidth = Math.max(@charWidth * @editor.getMaxScreenLineLength() + 20, scrollViewWidth)
unless @layerMinWidth == minWidth
@renderedLines.css('min-width', minWidth)
@underlayer.css('min-width', minWidth)
@@ -940,7 +954,7 @@ class EditorView extends View
@setSoftWrap(@editor.getSoftWrap())
@newCursors = @editor.getCursors()
@newSelections = @editor.getSelections()
@updateDisplay(suppressAutoScroll: true)
@updateDisplay(suppressAutoscroll: true)
requestDisplayUpdate: ->
return if @pendingDisplayUpdate
@@ -950,19 +964,20 @@ class EditorView extends View
@updateDisplay()
@pendingDisplayUpdate = false
updateDisplay: (options={}) ->
updateDisplay: (options) ->
return unless @attached and @editor
return if @editor.isDestroyed()
unless @isOnDom() and @isVisible()
@redrawOnReattach = true
return
@updateRenderedLines()
scrollViewWidth = @scrollView.width()
@updateRenderedLines(scrollViewWidth)
@updatePlaceholderText()
@highlightCursorLine()
@updateCursorViews()
@updateSelectionViews()
@autoscroll(options)
@autoscroll(options?.suppressAutoscroll ? false)
@trigger 'editor:display-updated'
updateCursorViews: ->
@@ -1005,14 +1020,14 @@ class EditorView extends View
syncCursorAnimations: ->
cursorView.resetBlinking() for cursorView in @getCursorViews()
autoscroll: (options={}) ->
autoscroll: (suppressAutoscroll) ->
for cursorView in @getCursorViews()
if !options.suppressAutoScroll and cursorView.needsAutoscroll()
if !suppressAutoscroll and cursorView.needsAutoscroll()
@scrollToPixelPosition(cursorView.getPixelPosition())
cursorView.clearAutoscroll()
for selectionView in @getSelectionViews()
if !options.suppressAutoScroll and selectionView.needsAutoscroll()
if !suppressAutoscroll and selectionView.needsAutoscroll()
@scrollToPixelPosition(selectionView.getCenterPixelPosition(), center: true)
selectionView.highlight()
selectionView.clearAutoscroll()
@@ -1028,7 +1043,7 @@ class EditorView extends View
else
@underlayer.append($('<span/>', class: 'placeholder-text', text: @placeholderText))
updateRenderedLines: ->
updateRenderedLines: (scrollViewWidth) ->
firstVisibleScreenRow = @getFirstVisibleScreenRow()
lastScreenRowToRender = firstVisibleScreenRow + @heightInLines - 1
lastScreenRow = @editor.getLastScreenRow()
@@ -1052,7 +1067,7 @@ class EditorView extends View
@fillDirtyRanges(intactRanges, renderFrom, renderTo)
@firstRenderedScreenRow = renderFrom
@lastRenderedScreenRow = renderTo
@updateLayerDimensions()
@updateLayerDimensions(scrollViewWidth)
@updatePaddingOfRenderedLines()
computeSurroundingEmptyLineChanges: (change) ->
+88 -17
Ver Arquivo
@@ -10,6 +10,18 @@ GitUtils = require 'git-utils'
# `atom.project` global and calling `getRepo()`. Note that this will only be
# available when the project is backed by a Git repository.
#
# This class handles submodules automically by taking a `path` argument to many
# of the methods. This `path` argument will determine which underlying
# repository is used.
#
# For a repository with submodules this would have the following outcome:
#
# ```coffee
# repo = atom.project.getRepo()
# repo.getShortHead() # 'master'
# repo.getShortHead('vendor/path/to/a/submodule') # 'dead1234'
# ```
#
# ## Example
#
# ```coffeescript
@@ -89,10 +101,11 @@ class Git
@unsubscribe()
# Returns the corresponding {Repository}
getRepo: ->
unless @repo?
getRepo: (path) ->
if @repo?
@repo.submoduleForPath(path) ? @repo
else
throw new Error("Repository has been destroyed")
@repo
# Reread the index to update any values that have changed since the
# last time the index was read.
@@ -113,7 +126,8 @@ class Git
# {::isStatusModified} or {::isStatusNew} to get more information.
getPathStatus: (path) ->
currentPathStatus = @statuses[path] ? 0
pathStatus = @getRepo().getStatus(@relativize(path)) ? 0
repo = @getRepo(path)
pathStatus = repo.getStatus(repo.relativize(path)) ? 0
if pathStatus > 0
@statuses[path] = pathStatus
else
@@ -153,8 +167,11 @@ class Git
# `refs/remotes`. It also shortens the SHA-1 of a detached `HEAD` to 7
# characters.
#
# path - An optional {String} path in the repository to get this information
# for, only needed if the repository contains submodules.
#
# Returns a {String}.
getShortHead: -> @getRepo().getShortHead()
getShortHead: (path) -> @getRepo(path).getShortHead()
# Public: Restore the contents of a path in the working directory and index
# to the version at `HEAD`.
@@ -170,7 +187,8 @@ class Git
#
# Returns a {Boolean} that's true if the method was successful.
checkoutHead: (path) ->
headCheckedOut = @getRepo().checkoutHead(@relativize(path))
repo = @getRepo(path)
headCheckedOut = repo.checkoutHead(repo.relativize(path))
@getPathStatus(path) if headCheckedOut
headCheckedOut
@@ -194,14 +212,22 @@ class Git
# Returns an {Object} with the following keys:
# :added - The {Number} of added lines.
# :deleted - The {Number} of deleted lines.
getDiffStats: (path) -> @getRepo().getDiffStats(@relativize(path))
getDiffStats: (path) ->
repo = @getRepo(path)
repo.getDiffStats(repo.relativize(path))
# Public: Is the given path a submodule in the repository?
#
# path - The {String} path to check.
#
# Returns a {Boolean}.
isSubmodule: (path) -> @getRepo().isSubmodule(@relativize(path))
isSubmodule: (path) ->
repo = @getRepo(path)
if repo.isSubmodule(repo.relativize(path))
true
else
# Check if the path is a working directory in a repo that isn't the root.
path is repo.getWorkingDirectory() and repo isnt @getRepo()
# Public: Get the status of a directory in the repository's working directory.
#
@@ -232,34 +258,69 @@ class Git
# Ignore eol of line differences on windows so that files checked in as
# LF don't report every line modified when the text contains CRLF endings.
options = ignoreEolWhitespace: process.platform is 'win32'
@getRepo().getLineDiffs(@relativize(path), text, options)
repo = @getRepo(path)
repo.getLineDiffs(repo.relativize(path), text, options)
# Public: Returns the git configuration value specified by the key.
getConfigValue: (key) -> @getRepo().getConfigValue(key)
#
# path - An optional {String} path in the repository to get this information
# for, only needed if the repository has submodules.
getConfigValue: (key, path) -> @getRepo(path).getConfigValue(key)
# Public: Returns the origin url of the repository.
getOriginUrl: -> @getConfigValue('remote.origin.url')
#
# path - An optional {String} path in the repository to get this information
# for, only needed if the repository has submodules.
getOriginUrl: (path) -> @getConfigValue('remote.origin.url', path)
# Public: Returns the upstream branch for the current HEAD, or null if there
# is no upstream branch for the current HEAD.
#
# path - An optional {String} path in the repo to get this information for,
# only needed if the repository contains submodules.
#
# Returns a {String} branch name such as `refs/remotes/origin/master`.
getUpstreamBranch: -> @getRepo().getUpstreamBranch()
getUpstreamBranch: (path) -> @getRepo(path).getUpstreamBranch()
# Public: Returns the current SHA for the given reference.
getReferenceTarget: (reference) -> @getRepo().getReferenceTarget(reference)
#
# reference - The {String} reference to get the target of.
# path - An optional {String} path in the repo to get the reference target
# for. Only needed if the repository contains submodules.
getReferenceTarget: (reference, path) ->
@getRepo(path).getReferenceTarget(reference)
# Public: Gets all the local and remote references.
#
# path - An optional {String} path in the repository to get this information
# for, only needed if the repository has submodules.
#
# Returns an {Object} with the following keys:
# :heads - An {Array} of head reference names.
# :remotes - An {Array} of remote reference names.
# :tags - An {Array} of tag reference names.
getReferences: -> @getRepo().getReferences()
getReferences: (path) -> @getRepo(path).getReferences()
# Public: Returns the number of commits behind the current branch is from the
# its upstream remote branch.
getAheadBehindCount: (reference) -> @getRepo().getAheadBehindCount(reference)
#
# reference - The {String} branch reference name.
# path - The {String} path in the repository to get this information for,
# only needed if the repository contains submodules.
getAheadBehindCount: (reference, path) ->
@getRepo(path).getAheadBehindCount(reference)
# Public: Get the cached ahead/behind commit counts for the current branch's
# upstream branch.
#
# path - An optional {String} path in the repository to get this information
# for, only needed if the repository has submodules.
#
# Returns an {Object} with the following keys:
# :ahead - The {Number} of commits ahead.
# :behind - The {Number} of commits behind.
getCachedUpstreamAheadBehindCount: (path) ->
@getRepo(path).upstream ? @upstream
# Public: Returns true if the given branch exists.
hasBranch: (branch) -> @getReferenceTarget("refs/heads/#{branch}")?
@@ -267,9 +328,19 @@ class Git
# Refreshes the current git status in an outside process and asynchronously
# updates the relevant properties.
refreshStatus: ->
@statusTask = Task.once require.resolve('./repository-status-handler'), @getPath(), ({statuses, upstream, branch}) =>
statusesUnchanged = _.isEqual(statuses, @statuses) and _.isEqual(upstream, @upstream) and _.isEqual(branch, @branch)
handlerPath = require.resolve('./repository-status-handler')
@statusTask = Task.once handlerPath, @getPath(), ({statuses, upstream, branch, submodules}) =>
statusesUnchanged = _.isEqual(statuses, @statuses) and
_.isEqual(upstream, @upstream) and
_.isEqual(branch, @branch) and
_.isEqual(submodules, @submodules)
@statuses = statuses
@upstream = upstream
@branch = branch
@submodules = submodules
for submodulePath, submoduleRepo of @getRepo().submodules
submoduleRepo.upstream = submodules[submodulePath].upstream
@emit 'statuses-changed' unless statusesUnchanged
+1 -1
Ver Arquivo
@@ -77,7 +77,7 @@ class MenuManager
keystrokesByCommand = {}
for binding in atom.keymap.getKeyBindings() when @includeSelector(binding.selector)
keystrokesByCommand[binding.command] ?= []
keystrokesByCommand[binding.command].push binding.keystroke
keystrokesByCommand[binding.command].unshift binding.keystroke
@sendToBrowserProcess(@template, keystrokesByCommand)
loadPlatformItems: ->
+19 -6
Ver Arquivo
@@ -3,17 +3,30 @@ path = require 'path'
module.exports = (repoPath) ->
repo = Git.open(repoPath)
upstream = {}
statuses = {}
submodules = {}
branch = null
if repo?
# Statuses in main repo
workingDirectoryPath = repo.getWorkingDirectory()
statuses = {}
for filePath, status of repo.getStatus()
statuses[path.join(workingDirectoryPath, filePath)] = status
# Statuses in submodules
for submodulePath, submoduleRepo of repo.submodules
submodules[submodulePath] =
branch: submoduleRepo.getHead()
upstream: submoduleRepo.getAheadBehindCount()
workingDirectoryPath = submoduleRepo.getWorkingDirectory()
for filePath, status of submoduleRepo.getStatus()
statuses[path.join(workingDirectoryPath, filePath)] = status
upstream = repo.getAheadBehindCount()
branch = repo.getHead()
repo.release()
else
upstream = {}
statuses = {}
branch = null
{statuses, upstream, branch}
{statuses, upstream, branch, submodules}
externo
+1 -1
Submodule vendor/apm updated: b85d052154...3f0003c60e