diff --git a/Rakefile b/Rakefile index 3f3c926eb..f4fa7f69e 100644 --- a/Rakefile +++ b/Rakefile @@ -41,7 +41,7 @@ task "bootstrap" do end desc "Copies Atom.app to /Applications and creates `atom` cli app" -task :install => [:clean, :build] do +task :install => [:build] do path = application_path() exit 1 if not path @@ -84,7 +84,7 @@ task :clean do output = `xcodebuild clean` `rm -rf #{application_path()}` `rm -rf #{BUILD_DIR}` - `rm -rf /tmp/atom-compiled-scripts` + `rm -rf /tmp/atom-coffee-cache` `rm -rf node_modules` `rm -rf cef` end diff --git a/atom.gyp b/atom.gyp index 12e5a54f3..e3ceb2326 100644 --- a/atom.gyp +++ b/atom.gyp @@ -1,5 +1,6 @@ { 'variables': { + 'version': '2.0.CFBundlePackageType APPL CFBundleShortVersionString - 2.0 + $VERSION CFBundleSignature ???? CFBundleVersion - 2.0 + $VERSION LSApplicationCategoryType public.app-category.developer-tools NSMainNibFile diff --git a/native/mac/helper-info.plist b/native/mac/helper-info.plist index a90b9f27c..f61887e28 100644 --- a/native/mac/helper-info.plist +++ b/native/mac/helper-info.plist @@ -4,6 +4,10 @@ CFBundleDevelopmentRegion en + CFBundleShortVersionString + $VERSION + CFBundleVersion + $VERSION CFBundleDisplayName ${EXECUTABLE_NAME} CFBundleExecutable diff --git a/package.json b/package.json index c5ba41b71..61c45b630 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "ctags": "0.3.0", "oniguruma": "0.8.0", "mkdirp": "0.3.5", - "git-utils": "0.8.0", + "git-utils": "0.11.0", "underscore": "1.4.4", "d3": "3.0.8", "coffee-cache": "0.1.0", diff --git a/spec/app/atom-spec.coffee b/spec/app/atom-spec.coffee index 8b32d3d79..df2ff94d0 100644 --- a/spec/app/atom-spec.coffee +++ b/spec/app/atom-spec.coffee @@ -249,7 +249,7 @@ describe "the `atom` global", -> versionHandler.callCount > 0 runs -> - expect(versionHandler.argsForCall[0][0]).toMatch /^\d+\.\d+(\.\d+)?$/ + expect(versionHandler.argsForCall[0][0]).toMatch /^\d+\.\d+\.\w+$/ describe "modal native dialogs", -> beforeEach -> diff --git a/spec/app/editor-spec.coffee b/spec/app/editor-spec.coffee index 885981485..bbfa1ba99 100644 --- a/spec/app/editor-spec.coffee +++ b/spec/app/editor-spec.coffee @@ -572,6 +572,20 @@ describe "Editor", -> expect(range.start).toEqual({row: 4, column: 10}) expect(range.end).toEqual({row: 4, column: 10}) + it "ignores ctrl-click and drags", -> + editor.attachToDom() + editor.css(position: 'absolute', top: 10, left: 10) + + event = mousedownEvent(editor: editor, point: [4, 10]) + event.ctrlKey = true + editor.renderedLines.trigger(event) + $(document).trigger mousemoveEvent(editor: editor, point: [5, 27]) + $(document).trigger 'mouseup' + + range = editor.getSelection().getScreenRange() + expect(range.start).toEqual({row: 4, column: 10}) + expect(range.end).toEqual({row: 4, column: 10}) + describe "double-click and drag", -> it "selects the word under the cursor, then continues to select by word in either direction as the mouse is dragged", -> expect(editor.getCursorScreenPosition()).toEqual(row: 0, column: 0) @@ -2031,23 +2045,40 @@ describe "Editor", -> event.originalEvent = {detail: 1} event.shiftKey = true editor.gutter.find(".line-number:eq(1)").trigger event - expect(editor.getSelection().getScreenRange()).toEqual [[0,0], [1,0]] + expect(editor.getSelection().getScreenRange()).toEqual [[0,0], [2,0]] describe "when mousing down and then moving across multiple lines before mousing up", -> - it "selects the lines", -> - mousedownEvent = $.Event("mousedown") - mousedownEvent.pageY = editor.gutter.find(".line-number:eq(1)").offset().top - mousedownEvent.originalEvent = {detail: 1} - editor.gutter.find(".line-number:eq(1)").trigger mousedownEvent + describe "when selecting from top to bottom", -> + it "selects the lines", -> + mousedownEvent = $.Event("mousedown") + mousedownEvent.pageY = editor.gutter.find(".line-number:eq(1)").offset().top + mousedownEvent.originalEvent = {detail: 1} + editor.gutter.find(".line-number:eq(1)").trigger mousedownEvent - mousemoveEvent = $.Event("mousemove") - mousemoveEvent.pageY = editor.gutter.find(".line-number:eq(5)").offset().top - mousemoveEvent.originalEvent = {detail: 1} - editor.gutter.find(".line-number:eq(5)").trigger mousemoveEvent + mousemoveEvent = $.Event("mousemove") + mousemoveEvent.pageY = editor.gutter.find(".line-number:eq(5)").offset().top + mousemoveEvent.originalEvent = {detail: 1} + editor.gutter.find(".line-number:eq(5)").trigger mousemoveEvent - $(document).trigger 'mouseup' + $(document).trigger 'mouseup' - expect(editor.getSelection().getScreenRange()).toEqual [[1,0], [5,30]] + expect(editor.getSelection().getScreenRange()).toEqual [[1,0], [6,0]] + + describe "when selecting from bottom to top", -> + it "selects the lines", -> + mousedownEvent = $.Event("mousedown") + mousedownEvent.pageY = editor.gutter.find(".line-number:eq(5)").offset().top + mousedownEvent.originalEvent = {detail: 1} + editor.gutter.find(".line-number:eq(5)").trigger mousedownEvent + + mousemoveEvent = $.Event("mousemove") + mousemoveEvent.pageY = editor.gutter.find(".line-number:eq(1)").offset().top + mousemoveEvent.originalEvent = {detail: 1} + editor.gutter.find(".line-number:eq(1)").trigger mousemoveEvent + + $(document).trigger 'mouseup' + + expect(editor.getSelection().getScreenRange()).toEqual [[1,0], [6,0]] describe "when clicking below the last line", -> beforeEach -> diff --git a/spec/app/tex-buffer-spec.coffee b/spec/app/text-buffer-spec.coffee similarity index 98% rename from spec/app/tex-buffer-spec.coffee rename to spec/app/text-buffer-spec.coffee index 63d50b797..0bf327d4c 100644 --- a/spec/app/tex-buffer-spec.coffee +++ b/spec/app/text-buffer-spec.coffee @@ -724,6 +724,14 @@ describe 'Buffer', -> expect(buffer.characterIndexForPosition([1, 0])).toBe 30 expect(buffer.characterIndexForPosition([2, 0])).toBe 61 expect(buffer.characterIndexForPosition([12, 2])).toBe 408 + expect(buffer.characterIndexForPosition([Infinity])).toBe 408 + + describe "when the buffer contains crlf line endings", -> + it "returns the total number of characters that precede the given position", -> + buffer.setText("line1\r\nline2\nline3\r\nline4") + expect(buffer.characterIndexForPosition([1])).toBe 7 + expect(buffer.characterIndexForPosition([2])).toBe 13 + expect(buffer.characterIndexForPosition([3])).toBe 20 describe ".positionForCharacterIndex(position)", -> it "returns the position based on character index", -> @@ -734,6 +742,13 @@ describe 'Buffer', -> expect(buffer.positionForCharacterIndex(61)).toEqual [2, 0] expect(buffer.positionForCharacterIndex(408)).toEqual [12, 2] + describe "when the buffer contains crlf line endings", -> + it "returns the position based on character index", -> + buffer.setText("line1\r\nline2\nline3\r\nline4") + expect(buffer.positionForCharacterIndex(7)).toEqual [1, 0] + expect(buffer.positionForCharacterIndex(13)).toEqual [2, 0] + expect(buffer.positionForCharacterIndex(20)).toEqual [3, 0] + describe "markers", -> describe "marker creation", -> it "allows markers to be created with ranges and positions", -> diff --git a/spec/app/text-mate-grammar-spec.coffee b/spec/app/text-mate-grammar-spec.coffee index 276a96496..c23bfd6b8 100644 --- a/spec/app/text-mate-grammar-spec.coffee +++ b/spec/app/text-mate-grammar-spec.coffee @@ -298,3 +298,13 @@ describe "TextMateGrammar", -> grammar = syntax.selectGrammar("style.scss") {tokens} = grammar.tokenizeLine("@mixin x() { -moz-selector: whatever; }") expect(tokens[9]).toEqual value: "-moz-selector", scopes: ["source.css.scss", "meta.property-list.scss", "meta.property-name.scss"] + + describe "when a line has more tokens than `maxTokensPerLine`", -> + it "creates a final token with the remaining text and resets the ruleStack to match the begining of the line", -> + grammar = syntax.selectGrammar("hello.js") + spyOn(grammar, 'getMaxTokensPerLine').andCallFake -> 5 + originalRuleStack = [grammar.initialRule, grammar.initialRule, grammar.initialRule] + {tokens, ruleStack} = grammar.tokenizeLine("one(two(three(four(five(_param_)))))", originalRuleStack) + expect(tokens.length).toBe 5 + expect(tokens[4].value).toBe "three(four(five(_param_)))))" + expect(ruleStack).toEqual originalRuleStack diff --git a/spec/stdlib/fs-utils-spec.coffee b/spec/stdlib/fs-utils-spec.coffee index 1e214e1dc..5317be474 100644 --- a/spec/stdlib/fs-utils-spec.coffee +++ b/spec/stdlib/fs-utils-spec.coffee @@ -130,9 +130,9 @@ describe "fs", -> expect(paths).toContain project.resolve('coffee.coffee') expect(paths).toContain project.resolve('two-hundred.txt') - it "returns undefined for paths that aren't directories or don't exist", -> - expect(fs.list(project.resolve('sample.js'))).toBeUndefined() - expect(fs.list('/non/existent/directory')).toBeUndefined() + it "returns an empty array for paths that aren't directories or don't exist", -> + expect(fs.list(project.resolve('sample.js'))).toEqual [] + expect(fs.list('/non/existent/directory')).toEqual [] it "can filter the paths by an optional array of file extensions", -> paths = fs.list(project.getPath(), ['.css', 'coffee']) diff --git a/src/app/atom-theme.coffee b/src/app/atom-theme.coffee index 06f765118..3fab3f9e7 100644 --- a/src/app/atom-theme.coffee +++ b/src/app/atom-theme.coffee @@ -16,7 +16,9 @@ class AtomTheme extends Theme if fs.isFile(metadataPath) stylesheetNames = CSON.readObject(metadataPath)?.stylesheets if stylesheetNames - @loadStylesheet(fs.join(@path, name)) for name in stylesheetNames + for name in stylesheetNames + filename = fs.resolveExtension(fs.join(@path, name), ['.css', '.less', '']) + @loadStylesheet(filename) else @loadStylesheet(stylesheetPath) for stylesheetPath in fs.list(@path, ['.css', '.less']) diff --git a/src/app/editor.coffee b/src/app/editor.coffee index 9377de760..42effb3a7 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -373,7 +373,7 @@ class Editor extends View else if clickCount == 3 @activeEditSession.selectLine() unless e.shiftKey - @selectOnMousemoveUntilMouseup() unless e.originalEvent.which > 1 + @selectOnMousemoveUntilMouseup() unless e.ctrlKey or e.originalEvent.which > 1 @renderedLines.on 'mousedown', onMouseDown @@ -393,10 +393,6 @@ class Editor extends View @gutter.widthChanged = (newWidth) => @scrollView.css('left', newWidth + 'px') - @gutter.on 'mousedown', (e) => - e.pageX = @renderedLines.offset().left - onMouseDown(e) - @scrollView.on 'scroll', => if @scrollView.scrollLeft() == 0 @gutter.removeClass('drop-shadow') diff --git a/src/app/gutter.coffee b/src/app/gutter.coffee index 2e19e09c6..da97e6e89 100644 --- a/src/app/gutter.coffee +++ b/src/app/gutter.coffee @@ -1,5 +1,6 @@ {View, $$, $$$} = require 'space-pen' Range = require 'range' +$ = require 'jquery' _ = require 'underscore' module.exports = @@ -16,21 +17,42 @@ class Gutter extends View return if @attached or not onDom @attached = true - editor = @editor() highlightLines = => @highlightLines() - editor.on 'cursor:moved', highlightLines - editor.on 'selection:changed', highlightLines + @getEditor().on 'cursor:moved', highlightLines + @getEditor().on 'selection:changed', highlightLines + @on 'mousedown', (e) => @handleMouseEvents(e) - editor: -> + getEditor: -> @parentView + beforeRemove: -> + $(document).off(".gutter-#{@getEditor().id}") + + handleMouseEvents: (e) -> + editor = @getEditor() + startRow = editor.screenPositionFromMouseEvent(e).row + if e.shiftKey + editor.selectToScreenPosition([startRow + 1, 0]) + return + else + editor.getSelection().setScreenRange([[startRow, 0], [startRow, 0]]) + + moveHandler = (e) => + start = startRow + end = editor.screenPositionFromMouseEvent(e).row + if end > start then end++ else start++ + editor.getSelection().setScreenRange([[start, 0], [end, 0]]) + + $(document).on "mousemove.gutter-#{@getEditor().id}", moveHandler + $(document).one "mouseup.gutter-#{@getEditor().id}", => $(document).off 'mousemove', moveHandler + setShowLineNumbers: (showLineNumbers) -> if showLineNumbers then @lineNumbers.show() else @lineNumbers.hide() updateLineNumbers: (changes, renderFrom, renderTo) -> if renderFrom < @firstScreenRow or renderTo > @lastScreenRow performUpdate = true - else if @editor().getLastScreenRow() < @lastScreenRow + else if @getEditor().getLastScreenRow() < @lastScreenRow performUpdate = true else for change in changes @@ -41,7 +63,7 @@ class Gutter extends View @renderLineNumbers(renderFrom, renderTo) if performUpdate renderLineNumbers: (startScreenRow, endScreenRow) -> - editor = @editor() + editor = @getEditor() maxDigits = editor.getLineCount().toString().length rows = editor.bufferRowsForScreenRows(startScreenRow, endScreenRow) @@ -81,8 +103,8 @@ class Gutter extends View @highlightedLineNumbers.push(highlightedLineNumber) highlightLines: -> - if @editor().getSelection().isEmpty() - row = @editor().getCursorScreenPosition().row + if @getEditor().getSelection().isEmpty() + row = @getEditor().getCursorScreenPosition().row rowRange = new Range([row, 0], [row, 0]) return if @selectionEmpty and @highlightedRows?.isEqual(rowRange) @@ -91,7 +113,7 @@ class Gutter extends View @highlightedRows = rowRange @selectionEmpty = true else - selectedRows = @editor().getSelection().getScreenRange() + selectedRows = @getEditor().getSelection().getScreenRange() endRow = selectedRows.end.row endRow-- if selectedRows.end.column is 0 selectedRows = new Range([selectedRows.start.row, 0], [endRow, 0]) diff --git a/src/app/keymap.coffee b/src/app/keymap.coffee index 71be30cec..23e585ee7 100644 --- a/src/app/keymap.coffee +++ b/src/app/keymap.coffee @@ -38,7 +38,7 @@ class Keymap @loadDirectory(fs.join(config.configDirPath, 'keymaps')) loadDirectory: (directoryPath) -> - @load(filePath) for filePath in fs.list(directoryPath, ['.cson', '.json']) ? [] + @load(filePath) for filePath in fs.list(directoryPath, ['.cson', '.json']) load: (path) -> @add(path, CSON.readObject(path)) diff --git a/src/app/text-buffer.coffee b/src/app/text-buffer.coffee index 2c5c623e3..bd06299d2 100644 --- a/src/app/text-buffer.coffee +++ b/src/app/text-buffer.coffee @@ -145,6 +145,9 @@ class Buffer lineLengthForRow: (row) -> @lines[row].length + lineEndingLengthForRow: (row) -> + (@lineEndingForRow(row) ? '').length + rangeForRow: (row, { includeNewline } = {}) -> if includeNewline and row < @getLastRow() new Range([row, 0], [row + 1, 0]) @@ -165,15 +168,16 @@ class Buffer new Point(lastRow, @lineLengthForRow(lastRow)) characterIndexForPosition: (position) -> - position = Point.fromObject(position) + position = @clipPosition(position) index = 0 - index += @lineLengthForRow(row) + 1 for row in [0...position.row] + for row in [0...position.row] + index += @lineLengthForRow(row) + Math.max(@lineEndingLengthForRow(row), 1) index + position.column positionForCharacterIndex: (index) -> row = 0 - while index >= (lineLength = @lineLengthForRow(row) + 1) + while index >= (lineLength = @lineLengthForRow(row) + Math.max(@lineEndingLengthForRow(row), 1)) index -= lineLength row++ @@ -358,7 +362,7 @@ class Buffer @scanInRange(regex, @getRange(), iterator) scanInRange: (regex, range, iterator, reverse=false) -> - range = Range.fromObject(range) + range = @clipRange(range) global = regex.global flags = "gm" flags += "i" if regex.ignoreCase diff --git a/src/app/text-mate-grammar.coffee b/src/app/text-mate-grammar.coffee index 93fe9559f..03b35b6ca 100644 --- a/src/app/text-mate-grammar.coffee +++ b/src/app/text-mate-grammar.coffee @@ -26,6 +26,7 @@ class TextMateGrammar repository: null initialRule: null firstLineRegex: null + maxTokensPerLine: 100 constructor: ({ @name, @fileTypes, @scopeName, patterns, repository, @foldingStopMarker, firstLineMatch}) -> @initialRule = new Rule(this, {@scopeName, patterns}) @@ -38,6 +39,7 @@ class TextMateGrammar @repository[name] = new Rule(this, data) tokenizeLine: (line, ruleStack=[@initialRule], firstLine=false) -> + originalRuleStack = ruleStack ruleStack = new Array(ruleStack...) # clone ruleStack tokens = [] position = 0 @@ -46,6 +48,12 @@ class TextMateGrammar previousRuleStackLength = ruleStack.length previousPosition = position + if tokens.length >= (@getMaxTokensPerLine() - 1) + token = new Token(value: line[position..], scopes: scopes) + tokens.push token + ruleStack = originalRuleStack + break + if line.length == 0 tokens = [new Token(value: "", scopes: scopes)] return { tokens, ruleStack } @@ -79,6 +87,9 @@ class TextMateGrammar ruleStack.forEach (rule) -> rule.clearAnchorPosition() { tokens, ruleStack } + getMaxTokensPerLine: -> + @maxTokensPerLine + class Rule grammar: null scopeName: null diff --git a/src/app/window.coffee b/src/app/window.coffee index f6c513c2d..84a6764d9 100644 --- a/src/app/window.coffee +++ b/src/app/window.coffee @@ -1,5 +1,6 @@ fs = require 'fs-utils' $ = require 'jquery' +_ = require 'underscore' {less} = require 'less' {spawn} = require 'child_process' require 'jquery-extensions' @@ -36,12 +37,9 @@ window.setUpEnvironment = -> # This method is only called when opening a real application window window.startup = -> - if fs.isDirectory('/opt/boxen') - installAtomCommand('/opt/boxen/bin/atom') - else if fs.isDirectory('/opt/github') - installAtomCommand('/opt/github/bin/atom') - else if fs.isDirectory('/usr/local') - installAtomCommand('/usr/local/bin/atom') + directory = _.find ['/opt/boxen', '/opt/github', '/usr/local'], (dir) -> fs.isDirectory(dir) + if directory + installAtomCommand(fs.join(directory, 'bin/atom')) else console.warn "Failed to install `atom` binary" diff --git a/src/packages/tree-view/lib/directory-view.coffee b/src/packages/tree-view/lib/directory-view.coffee index c6f561c1d..6120d9c8e 100644 --- a/src/packages/tree-view/lib/directory-view.coffee +++ b/src/packages/tree-view/lib/directory-view.coffee @@ -11,7 +11,7 @@ class DirectoryView extends View @div outlet: 'header', class: 'header', => @span class: 'disclosure-arrow', outlet: 'disclosureArrow' @span directory.getBaseName(), class: 'name', outlet: 'directoryName' - @span "", class: 'highlight' + @span class: 'highlight' directory: null entries: null diff --git a/src/packages/tree-view/lib/file-view.coffee b/src/packages/tree-view/lib/file-view.coffee index 5f264a15f..1ff73c910 100644 --- a/src/packages/tree-view/lib/file-view.coffee +++ b/src/packages/tree-view/lib/file-view.coffee @@ -9,7 +9,7 @@ class FileView extends View @content: ({file} = {}) -> @li class: 'file entry', => @span file.getBaseName(), class: 'name', outlet: 'fileName' - @span '', class: 'highlight' + @span class: 'highlight' file: null diff --git a/src/packages/tree-view/lib/tree-view.coffee b/src/packages/tree-view/lib/tree-view.coffee index 18475fa06..c7e72221e 100644 --- a/src/packages/tree-view/lib/tree-view.coffee +++ b/src/packages/tree-view/lib/tree-view.coffee @@ -56,6 +56,7 @@ class TreeView extends ScrollView afterAttach: (onDom) -> @focus() if @focusAfterAttach @scrollTop(@scrollTopAfterAttach) if @scrollTopAfterAttach > 0 + @find('.selected > .highlight').width(@treeViewList[0].scrollWidth) serialize: -> directoryExpansionStates: @root?.serializeEntryExpansionStates() @@ -304,10 +305,11 @@ class TreeView extends ScrollView entry = entry.view() unless entry instanceof View @selectedPath = entry.getPath() @deselect() + entry.children('.highlight').width(@treeViewList[0].scrollWidth) entry.addClass('selected') deselect: -> - @treeViewList.find('.selected').removeClass('selected') + @treeViewList.find('.selected').removeClass('selected').children('.highlight').width('') scrollTop: (top) -> if top diff --git a/src/stdlib/fs-utils.coffee b/src/stdlib/fs-utils.coffee index 1acf41169..a422f1e10 100644 --- a/src/stdlib/fs-utils.coffee +++ b/src/stdlib/fs-utils.coffee @@ -90,7 +90,7 @@ module.exports = # Returns an array with all the names of files contained # in the directory path. list: (rootPath, extensions) -> - return unless @isDirectory(rootPath) + return [] unless @isDirectory(rootPath) paths = fs.readdirSync(rootPath) paths = @filterExtensions(paths, extensions) if extensions paths = paths.map (path) => @join(rootPath, path) diff --git a/themes/atom-dark-ui/atom.css b/themes/atom-dark-ui/atom.less similarity index 100% rename from themes/atom-dark-ui/atom.css rename to themes/atom-dark-ui/atom.less diff --git a/themes/atom-dark-ui/blurred.css b/themes/atom-dark-ui/blurred.less similarity index 100% rename from themes/atom-dark-ui/blurred.css rename to themes/atom-dark-ui/blurred.less diff --git a/themes/atom-dark-ui/command-logger.css b/themes/atom-dark-ui/command-logger.less similarity index 100% rename from themes/atom-dark-ui/command-logger.css rename to themes/atom-dark-ui/command-logger.less diff --git a/themes/atom-dark-ui/command-panel.css b/themes/atom-dark-ui/command-panel.less similarity index 100% rename from themes/atom-dark-ui/command-panel.css rename to themes/atom-dark-ui/command-panel.less diff --git a/themes/atom-dark-ui/editor.css b/themes/atom-dark-ui/editor.less similarity index 100% rename from themes/atom-dark-ui/editor.css rename to themes/atom-dark-ui/editor.less diff --git a/themes/atom-dark-ui/package.cson b/themes/atom-dark-ui/package.cson index 53831688d..7aa632dc4 100644 --- a/themes/atom-dark-ui/package.cson +++ b/themes/atom-dark-ui/package.cson @@ -1,11 +1,11 @@ 'stylesheets': [ - 'atom.css' - 'editor.css' - 'select-list.css' - 'tree-view.css' - 'tabs.css' - 'status-bar.css' - 'command-panel.css' - 'command-logger.css' - 'blurred.css' + 'atom' + 'editor' + 'select-list' + 'tree-view' + 'tabs' + 'status-bar' + 'command-panel' + 'command-logger' + 'blurred' ] diff --git a/themes/atom-dark-ui/select-list.css b/themes/atom-dark-ui/select-list.less similarity index 91% rename from themes/atom-dark-ui/select-list.css rename to themes/atom-dark-ui/select-list.less index 41740ab83..bbe192765 100644 --- a/themes/atom-dark-ui/select-list.css +++ b/themes/atom-dark-ui/select-list.less @@ -4,7 +4,7 @@ } .select-list li .label { - color: #ddd; + color: #bbb; } .select-list .key-binding { @@ -17,8 +17,8 @@ line-height: 100%; } -.select-list li:hover { - background-color: #2c2c2c; +.select-list li:hover .label { + color: #fff; } .select-list ol .selected { diff --git a/themes/atom-dark-ui/status-bar.css b/themes/atom-dark-ui/status-bar.less similarity index 100% rename from themes/atom-dark-ui/status-bar.css rename to themes/atom-dark-ui/status-bar.less diff --git a/themes/atom-dark-ui/tabs.css b/themes/atom-dark-ui/tabs.less similarity index 100% rename from themes/atom-dark-ui/tabs.css rename to themes/atom-dark-ui/tabs.less diff --git a/themes/atom-dark-ui/tree-view.css b/themes/atom-dark-ui/tree-view.less similarity index 100% rename from themes/atom-dark-ui/tree-view.css rename to themes/atom-dark-ui/tree-view.less diff --git a/themes/atom-light-ui/atom.css b/themes/atom-light-ui/atom.less similarity index 100% rename from themes/atom-light-ui/atom.css rename to themes/atom-light-ui/atom.less diff --git a/themes/atom-light-ui/blurred.css b/themes/atom-light-ui/blurred.less similarity index 100% rename from themes/atom-light-ui/blurred.css rename to themes/atom-light-ui/blurred.less diff --git a/themes/atom-light-ui/command-logger.css b/themes/atom-light-ui/command-logger.less similarity index 100% rename from themes/atom-light-ui/command-logger.css rename to themes/atom-light-ui/command-logger.less diff --git a/themes/atom-light-ui/command-panel.css b/themes/atom-light-ui/command-panel.less similarity index 100% rename from themes/atom-light-ui/command-panel.css rename to themes/atom-light-ui/command-panel.less diff --git a/themes/atom-light-ui/editor.css b/themes/atom-light-ui/editor.less similarity index 100% rename from themes/atom-light-ui/editor.css rename to themes/atom-light-ui/editor.less diff --git a/themes/atom-light-ui/overlay.css b/themes/atom-light-ui/overlay.less similarity index 100% rename from themes/atom-light-ui/overlay.css rename to themes/atom-light-ui/overlay.less diff --git a/themes/atom-light-ui/package.cson b/themes/atom-light-ui/package.cson index 18cff697d..7f3d899c5 100644 --- a/themes/atom-light-ui/package.cson +++ b/themes/atom-light-ui/package.cson @@ -1,12 +1,12 @@ 'stylesheets': [ - 'atom.css' - 'editor.css' - 'overlay.css' - 'select-list.css' - 'tree-view.css' - 'tabs.css' - 'status-bar.css' - 'command-panel.css' - 'command-logger.css' - 'blurred.css' + 'atom' + 'editor' + 'overlay' + 'select-list' + 'tree-view' + 'tabs' + 'status-bar' + 'command-panel' + 'command-logger' + 'blurred' ] diff --git a/themes/atom-light-ui/select-list.css b/themes/atom-light-ui/select-list.less similarity index 100% rename from themes/atom-light-ui/select-list.css rename to themes/atom-light-ui/select-list.less diff --git a/themes/atom-light-ui/status-bar.css b/themes/atom-light-ui/status-bar.less similarity index 100% rename from themes/atom-light-ui/status-bar.css rename to themes/atom-light-ui/status-bar.less diff --git a/themes/atom-light-ui/tabs.css b/themes/atom-light-ui/tabs.less similarity index 100% rename from themes/atom-light-ui/tabs.css rename to themes/atom-light-ui/tabs.less diff --git a/themes/atom-light-ui/tree-view.css b/themes/atom-light-ui/tree-view.less similarity index 100% rename from themes/atom-light-ui/tree-view.css rename to themes/atom-light-ui/tree-view.less