Merge branch 'master' into chrome35

Conflicts:
	apm/package.json
	package.json
This commit is contained in:
Cheng Zhao
2014-07-24 17:12:32 +08:00
39 changed files with 159 additions and 287 deletions

View File

@@ -7,7 +7,7 @@ nbsp = String.fromCharCode(160)
describe "EditorComponent", ->
[contentNode, editor, wrapperView, wrapperNode, component, componentNode, verticalScrollbarNode, horizontalScrollbarNode] = []
[lineHeightInPixels, charWidth, delayAnimationFrames, nextAnimationFrame, runSetImmediateCallbacks, lineOverdrawMargin] = []
[lineHeightInPixels, charWidth, delayAnimationFrames, nextAnimationFrame, runSetImmediateCallbacks, hasSetImmediateCallbacks, lineOverdrawMargin] = []
beforeEach ->
lineOverdrawMargin = 2
@@ -41,6 +41,9 @@ describe "EditorComponent", ->
setImmediateFns.length = 0
fn() for fn in fns
hasSetImmediateCallbacks = ->
setImmediateFns.length isnt 0
spyOn(window, 'setImmediate').andCallFake (fn) -> setImmediateFns.push(fn)
contentNode = document.querySelector('#jasmine-content')
@@ -192,6 +195,10 @@ describe "EditorComponent", ->
for lineNode in lineNodes
expect(lineNode.style.width).toBe scrollViewWidth + 'px'
it "renders an nbsp on empty lines when no line-ending character is defined", ->
atom.config.set("editor.showInvisibles", false)
expect(component.lineNodeForScreenRow(10).textContent).toBe nbsp
describe "when showInvisibles is enabled", ->
invisibles = null
@@ -232,7 +239,15 @@ describe "EditorComponent", ->
expect(component.lineNodeForScreenRow(0).textContent).toBe "a line that ends with a carriage return#{invisibles.cr}#{invisibles.eol}"
it "renders invisible line-ending characters on empty lines", ->
expect(component.lineNodeForScreenRow(10).textContent).toBe nbsp + invisibles.eol
expect(component.lineNodeForScreenRow(10).textContent).toBe invisibles.eol
it "renders an nbsp on empty lines when the line-ending character is an empty string", ->
atom.config.set("editor.invisibles", eol: '')
expect(component.lineNodeForScreenRow(10).textContent).toBe nbsp
it "renders an nbsp on empty lines when no line-ending character is defined", ->
atom.config.set("editor.invisibles", eol: null)
expect(component.lineNodeForScreenRow(10).textContent).toBe nbsp
it "interleaves invisible line-ending characters with indent guides on empty lines", ->
component.setShowIndentGuide(true)
@@ -269,7 +284,6 @@ describe "EditorComponent", ->
describe "when indent guides are enabled", ->
beforeEach ->
component.setShowIndentGuide(true)
runSetImmediateCallbacks()
it "adds an 'indent-guide' class to spans comprising the leading whitespace", ->
line1LeafNodes = getLeafNodes(component.lineNodeForScreenRow(1))
@@ -346,7 +360,6 @@ describe "EditorComponent", ->
describe "when indent guides are disabled", ->
beforeEach ->
component.setShowIndentGuide(false)
runSetImmediateCallbacks()
it "does not render indent guides on lines containing only whitespace", ->
editor.getBuffer().insert([1, Infinity], '\n ')
@@ -563,7 +576,7 @@ describe "EditorComponent", ->
it "does not fold when the line number componentNode is clicked", ->
lineNumber = component.lineNumberNodeForScreenRow(1)
lineNumber.dispatchEvent(buildClickEvent(lineNumber))
runSetImmediateCallbacks()
expect(hasSetImmediateCallbacks()).toBe false
expect(lineNumberHasClass(1, 'folded')).toBe false
describe "cursor rendering", ->
@@ -1404,7 +1417,6 @@ describe "EditorComponent", ->
beforeEach ->
cursor = editor.getCursor()
cursor.setScreenPosition([0, 0])
runSetImmediateCallbacks()
it "adds the 'has-selection' class to the editor when there is a selection", ->
expect(componentNode.classList.contains('has-selection')).toBe false
@@ -1565,7 +1577,8 @@ describe "EditorComponent", ->
component.measureHeightAndWidth()
runSetImmediateCallbacks()
expect(horizontalScrollbarNode.scrollWidth).toBe gutterNode.offsetWidth + editor.getScrollWidth()
expect(horizontalScrollbarNode.scrollWidth).toBe editor.getScrollWidth()
expect(horizontalScrollbarNode.style.left).toBe '0px'
describe "mousewheel events", ->
beforeEach ->
@@ -1651,7 +1664,7 @@ describe "EditorComponent", ->
wheelEvent = new WheelEvent('mousewheel', wheelDeltaX: 0, wheelDeltaY: 10)
Object.defineProperty(wheelEvent, 'target', get: -> lineNode)
componentNode.dispatchEvent(wheelEvent)
runSetImmediateCallbacks()
expect(hasSetImmediateCallbacks()).toBe false
expect(editor.getScrollTop()).toBe 0
@@ -1668,7 +1681,7 @@ describe "EditorComponent", ->
wheelEvent = new WheelEvent('mousewheel', wheelDeltaX: 0, wheelDeltaY: 100) # goes nowhere, we're already at scrollTop 0
Object.defineProperty(wheelEvent, 'target', get: -> lineNode)
componentNode.dispatchEvent(wheelEvent)
runSetImmediateCallbacks()
expect(hasSetImmediateCallbacks()).toBe false
expect(component.mouseWheelScreenRow).toBe 0
editor.insertText("hello")
@@ -1766,7 +1779,7 @@ describe "EditorComponent", ->
it "does not handle input events when input is disabled", ->
component.setInputEnabled(false)
componentNode.dispatchEvent(buildTextInputEvent(data: 'x', target: inputNode))
runSetImmediateCallbacks()
expect(hasSetImmediateCallbacks()).toBe false
expect(editor.lineForBufferRow(0)).toBe 'var quicksort = function () {'
describe "when IME composition is used to insert international characters", ->
@@ -1884,7 +1897,6 @@ describe "EditorComponent", ->
hiddenParent.style.display = 'block'
advanceClock(component.domPollingInterval)
runSetImmediateCallbacks()
expect(componentNode.querySelectorAll('.line').length).toBeGreaterThan 0
@@ -1894,7 +1906,6 @@ describe "EditorComponent", ->
initialLineHeightInPixels = editor.getLineHeightInPixels()
component.setLineHeight(2)
runSetImmediateCallbacks()
expect(editor.getLineHeightInPixels()).toBe initialLineHeightInPixels
wrapperView.show()
@@ -1907,7 +1918,6 @@ describe "EditorComponent", ->
initialCharWidth = editor.getDefaultCharWidth()
component.setFontSize(22)
runSetImmediateCallbacks()
expect(editor.getLineHeightInPixels()).toBe initialLineHeightInPixels
expect(editor.getDefaultCharWidth()).toBe initialCharWidth
@@ -1919,7 +1929,6 @@ describe "EditorComponent", ->
wrapperView.hide()
component.setFontSize(22)
runSetImmediateCallbacks()
wrapperView.show()
editor.setCursorBufferPosition([0, Infinity])
@@ -1936,7 +1945,6 @@ describe "EditorComponent", ->
initialCharWidth = editor.getDefaultCharWidth()
component.setFontFamily('sans-serif')
runSetImmediateCallbacks()
expect(editor.getDefaultCharWidth()).toBe initialCharWidth
wrapperView.show()
@@ -1946,7 +1954,6 @@ describe "EditorComponent", ->
wrapperView.hide()
component.setFontFamily('sans-serif')
runSetImmediateCallbacks()
wrapperView.show()
editor.setCursorBufferPosition([0, Infinity])

Binary file not shown.

Before

Width:  |  Height:  |  Size: 392 B

1
spec/fixtures/js vendored
View File

@@ -1 +0,0 @@
this tests files with no extensions

View File

@@ -1,18 +0,0 @@
'fileTypes': ['package-with-infinite-loop-grammar']
'name': 'package-with-infinite-loop-grammar'
'scopeName': 'source.package-with-infinite-loop-grammar'
# This grammar should loop forever if the line contains an `a`
'patterns': [
{
'name': 'start'
'begin': '^'
'end': '$'
'patterns': [
{
name: 'negative-look-ahead'
match: "(?!a)"
}
]
}
]

View File

@@ -1 +0,0 @@
This is a hidden file. Don't even try to load it as a snippet

View File

@@ -1 +0,0 @@
This file isn't CSON, but shouldn't be a big deal

View File

@@ -1,4 +0,0 @@
".test":
"Test Snippet":
prefix: "test"
body: "testing 123"

View File

@@ -1,3 +0,0 @@
@import "stylesheets/first";
@import "stylesheets/second";
@import "stylesheets/last";

View File

@@ -1,3 +0,0 @@
{
"theme": "ui"
}

View File

@@ -1,7 +0,0 @@
.editor {
padding-top: 101px;
padding-right: 101px;
padding-bottom: 101px;
color: red;
}

View File

@@ -1,5 +0,0 @@
.editor {
/* padding-top: 103px;
padding-right: 103px;*/
padding-bottom: 103px;
}

View File

@@ -1,9 +0,0 @@
@import "ui-variables";
@number: 102px;
.editor {
/* padding-top: 102px;*/
padding-right: @number;
padding-bottom: @number;
}

View File

@@ -1,75 +0,0 @@
// Variables different from the original are marked 'Changed'
@text-color: #333;
@text-color-subtle: #777;
@text-color-highlight: #111;
@text-color-selected: @text-color-highlight;
@text-color-info: #5293d8;
@text-color-success: #1fe977;
@text-color-warning: #f78a46;
@text-color-error: #c00;
@background-color-info: #0098ff;
@background-color-success: #17ca65;
@background-color-warning: #ff4800;
@background-color-error: #c00;
@background-color-highlight: rgba(255, 255, 255, 0.10);
@background-color-selected: @background-color-highlight;
@app-background-color: #00f; // Changed
@base-background-color: #fff;
@base-border-color: #eee;
@pane-item-background-color: @base-background-color;
@pane-item-border-color: @base-border-color;
@input-background-color: #f00; // Changed
@input-border-color: @base-border-color;
@tool-panel-background-color: #f4f4f4;
@tool-panel-border-color: @base-border-color;
@inset-panel-background-color: #eee;
@inset-panel-border-color: @base-border-color;
@panel-heading-background-color: #ddd;
@panel-heading-border-color: transparent;
@overlay-background-color: #f4f4f4;
@overlay-border-color: @base-border-color;
@button-background-color: #ccc;
@button-background-color-hover: lighten(@button-background-color, 5%);
@button-background-color-selected: @button-background-color-hover;
@button-border-color: #aaa;
@tab-bar-background-color: #fff;
@tab-bar-border-color: darken(@tab-background-color-active, 10%);
@tab-background-color: #f4f4f4;
@tab-background-color-active: #fff;
@tab-border-color: @base-border-color;
@tree-view-background-color: @tool-panel-background-color;
@tree-view-border-color: @tool-panel-border-color;
@ui-site-color-1: @background-color-success; // green
@ui-site-color-2: @background-color-info; // blue
@ui-site-color-3: @background-color-warning; // orange
@ui-site-color-4: #db2ff4; // purple
@ui-site-color-5: #f5e11d; // yellow
@font-size: 12px;
@disclosure-arrow-size: 12px;
@component-padding: 150px;
@component-icon-padding: 5px;
@component-icon-size: 16px;
@component-line-height: 25px;
@component-border-radius: 2px;
@tab-height: 30px;
@font-family: Arial;

View File

@@ -1 +0,0 @@
Hello World!

View File

@@ -1 +0,0 @@
Goodbye World!

View File

@@ -1 +0,0 @@
Hello World!

View File

@@ -1 +0,0 @@
Goodbye World!

View File

@@ -1 +0,0 @@
#header {

View File

@@ -1,71 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>fileTypes</key>
<array>
<string>txt</string>
</array>
<key>keyEquivalent</key>
<string>^~P</string>
<key>name</key>
<string>Plain Text</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.item.text</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(•).*$\n?</string>
<key>name</key>
<string>meta.bullet-point.strong.text</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.item.text</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(·).*$\n?</string>
<key>name</key>
<string>meta.bullet-point.light.text</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.item.text</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(\*).*$\n?</string>
<key>name</key>
<string>meta.bullet-point.star.text</string>
</dict>
<dict>
<key>begin</key>
<string>^([ \t]*)(?=\S)</string>
<key>contentName</key>
<string>meta.paragraph.text</string>
<key>end</key>
<string>^(?!\1(?=\S))</string>
</dict>
</array>
<key>scopeName</key>
<string>text.plain</string>
<key>uuid</key>
<string>3130E4FA-B10E-11D9-9F75-000D93589AF6</string>
</dict>
</plist>

View File

@@ -1 +0,0 @@
dir

View File

@@ -1 +0,0 @@
sample.js

1
spec/fixtures/zed/a vendored
View File

@@ -1 +0,0 @@
a