diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..ac09dc3e8 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,20 @@ +# :rotating_light: Contributing to Atom :rotating_light: + +## Issues + * Include screenshots and animated GIFs whenever possible, they are immensely + helpful + * Include the behavior you expected to happen and other places you've seen + that behavior such as Emacs, vi, Xcode, etc. + * Check the Console app for stack traces to include if reporting a crash + * Check the Dev tools (`alt-cmd-i`) for errors and stack traces to include + +## Code + * Follow the [JavaScript](https://github.com/styleguide/javascript), + [CSS](https://github.com/styleguide/css), + and [Objective-C](https://github.com/github/objective-c-conventions) + styleguides + * Include thoughtfully worded [Jasmine](http://pivotal.github.com/jasmine/) + specs + * New packages go in `src/packages/` + * Add 3rd-party packages by submoduling in `vendor/packages/` + * Commit messages are in the present tense diff --git a/docs/configuring-and-extending.md b/docs/configuring-and-extending.md index 7ecd60a04..35ece3c59 100644 --- a/docs/configuring-and-extending.md +++ b/docs/configuring-and-extending.md @@ -55,8 +55,8 @@ Or you can use `observeConfig` to track changes from a view object. ```coffeescript class MyView extends View initialize: -> - @observeConfig 'editor.lineHeight', (lineHeight) => - @adjustLineHeight(lineHeight) + @observeConfig 'editor.fontSize', () => + @adjustFontSize() ``` The `observeConfig` method will call the given callback immediately with the diff --git a/docs/packages/intro.md b/docs/packages/intro.md index 4f37c9446..7e4d20bfd 100644 --- a/docs/packages/intro.md +++ b/docs/packages/intro.md @@ -18,9 +18,9 @@ my-package/ index.coffee ``` -**NOTE: NPM behavior is partially implemented until we get a working Node.js +**NOTE:** NPM behavior is partially implemented until we get a working Node.js API built into Atom. The goal is to make Atom packages be a superset of NPM -packages** +packages #### package.json diff --git a/native/atom_cef_client.cpp b/native/atom_cef_client.cpp index 38c25470b..3acb53951 100644 --- a/native/atom_cef_client.cpp +++ b/native/atom_cef_client.cpp @@ -141,6 +141,8 @@ bool AtomCefClient::OnKeyEvent(CefRefPtr browser, ToggleDevTools(browser); } else if (event.modifiers == EVENTFLAG_COMMAND_DOWN && event.unmodified_character == '`') { FocusNextWindow(); + } else if (event.modifiers == (EVENTFLAG_COMMAND_DOWN | EVENTFLAG_SHIFT_DOWN) && event.unmodified_character == '~') { + FocusPreviousWindow(); } else { return false; diff --git a/native/atom_cef_client.h b/native/atom_cef_client.h index 75b787138..d1961d8d3 100644 --- a/native/atom_cef_client.h +++ b/native/atom_cef_client.h @@ -105,6 +105,7 @@ class AtomCefClient : public CefClient, bool m_HandlePasteboardCommands = false; void FocusNextWindow(); + void FocusPreviousWindow(); void Open(std::string path); void Open(); void OpenUnstable(std::string path); diff --git a/native/atom_cef_client_mac.mm b/native/atom_cef_client_mac.mm index c20bd5fbe..be4879d97 100644 --- a/native/atom_cef_client_mac.mm +++ b/native/atom_cef_client_mac.mm @@ -23,6 +23,24 @@ void AtomCefClient::FocusNextWindow() { } } +void AtomCefClient::FocusPreviousWindow() { + NSArray *windows = [NSApp windows]; + int count = [windows count]; + int start = [windows indexOfObject:[NSApp keyWindow]]; + + int i = start; + while (true) { + i = i - 1; + if (i == 0) i = count -1; + if (i == start) break; + NSWindow *window = [windows objectAtIndex:i]; + if ([window isVisible] && ![window isExcludedFromWindowsMenu]) { + [window makeKeyAndOrderFront:nil]; + break; + } + } +} + void AtomCefClient::Open(std::string path) { NSString *pathString = [NSString stringWithCString:path.c_str() encoding:NSUTF8StringEncoding]; [(AtomApplication *)[AtomApplication sharedApplication] open:pathString]; diff --git a/script/fix-author b/script/fix-author new file mode 100755 index 000000000..bbbd3b3da --- /dev/null +++ b/script/fix-author @@ -0,0 +1,17 @@ +#!/bin/sh + +usage() { + echo "usage: $0 sha name email" + exit 1 +} + +if [ ! $3 ]; then + usage +fi + +git filter-branch -f --env-filter " +export GIT_AUTHOR_NAME='$2' +export GIT_AUTHOR_EMAIL='$3' +export GIT_COMMITTER_NAME='$2' +export GIT_COMMITTER_EMAIL='$3' +" -- $1..HEAD \ No newline at end of file diff --git a/spec/app/editor-spec.coffee b/spec/app/editor-spec.coffee index bfac68462..1831bbbba 100644 --- a/spec/app/editor-spec.coffee +++ b/spec/app/editor-spec.coffee @@ -516,14 +516,61 @@ describe "Editor", -> editor.getBuffer().saveAs(path) expect(editor.getGrammar().name).toBe 'Plain Text' - describe "font size", -> - it "sets the initial font size based on the value from config", -> - config.set("editor.fontSize", 20) - newEditor = editor.splitRight() - expect(editor.css('font-size')).toBe '20px' - expect(newEditor.css('font-size')).toBe '20px' + describe "font family", -> + beforeEach -> + expect(editor.css('font-family')).not.toBe 'Courier' + + it "sets the initial font family based on the value from config", -> + expect($("head style.font-family")).toExist() + expect($("head style.font-family").text()).toMatch "{font-family: #{config.get('editor.fontFamily')}}" + + describe "when the font family changes", -> + it "updates the font family on new and existing editors", -> + rootView.attachToDom() + rootView.height(200) + rootView.width(200) + + config.set("editor.fontFamily", "Courier") + newEditor = editor.splitRight() + + expect($("head style.font-family").text()).toMatch "{font-family: Courier}" + expect(editor.css('font-family')).toBe 'Courier' + expect(newEditor.css('font-family')).toBe 'Courier' + + it "updates the font family of editors and recalculates dimensions critical to cursor positioning", -> + rootView.attachToDom() + rootView.height(200) + rootView.width(200) + + lineHeightBefore = editor.lineHeight + charWidthBefore = editor.charWidth + config.set("editor.fontFamily", "Courier") + editor.setCursorScreenPosition [5, 6] + expect(editor.charWidth).not.toBe charWidthBefore + expect(editor.getCursorView().position()).toEqual { top: 5 * editor.lineHeight, left: 6 * editor.charWidth } + expect(editor.verticalScrollbarContent.height()).toBe buffer.getLineCount() * editor.lineHeight + + describe "font size", -> + beforeEach -> + expect(editor.css('font-size')).not.toBe "20px" + + it "sets the initial font size based on the value from config", -> + expect($("head style.font-size")).toExist() + expect($("head style.font-size").text()).toMatch "{font-size: #{config.get('editor.fontSize')}px}" + + describe "when the font size changes", -> + it "updates the font family on new and existing editors", -> + rootView.attachToDom() + rootView.height(200) + rootView.width(200) + + config.set("editor.fontSize", 20) + newEditor = editor.splitRight() + + expect($("head style.font-size").text()).toMatch "{font-size: 20px}" + expect(editor.css('font-size')).toBe '20px' + expect(newEditor.css('font-size')).toBe '20px' - describe "when the font size changes on the view", -> it "updates the font sizes of editors and recalculates dimensions critical to cursor positioning", -> rootView.attachToDom() rootView.height(200) diff --git a/spec/app/point-spec.coffee b/spec/app/point-spec.coffee index 322bac5f2..d4d78715c 100644 --- a/spec/app/point-spec.coffee +++ b/spec/app/point-spec.coffee @@ -25,3 +25,9 @@ describe "Point", -> expect(new Point(5, 0).compare(new Point(6, 1))).toBe -1 expect(new Point(5, 5).compare(new Point(4, 1))).toBe 1 expect(new Point(5, 5).compare(new Point(5, 3))).toBe 1 + + describe ".translate(other)", -> + it "returns a translated point", -> + expect(new Point(1,2).translate([2,4])).toEqual [3,6] + expect(new Point(1,2).translate([-1])).toEqual [0,2] + expect(new Point(1,2).translate([0,-2])).toEqual [1,0] diff --git a/spec/app/range-spec.coffee b/spec/app/range-spec.coffee index 780962a5f..c73111ace 100644 --- a/spec/app/range-spec.coffee +++ b/spec/app/range-spec.coffee @@ -32,3 +32,8 @@ describe "Range", -> expect(new Range([2, 1], [3, 10]).union(new Range([1, 1], [2, 10]))).toEqual [[1, 1], [3, 10]] expect(new Range([2, 1], [3, 10]).union(new Range([2, 5], [3, 1]))).toEqual [[2, 1], [3, 10]] expect(new Range([2, 5], [3, 1]).union(new Range([2, 1], [3, 10]))).toEqual [[2, 1], [3, 10]] + + describe ".translate(startPoint, endPoint)", -> + it "returns a range translates by the specified start and end points", -> + expect(new Range([1, 1], [2, 10]).translate([1])).toEqual [[2, 1], [3, 10]] + expect(new Range([1, 1], [2, 10]).translate([1,2], [3,4])).toEqual [[2, 3], [5, 14]] diff --git a/spec/app/root-view-spec.coffee b/spec/app/root-view-spec.coffee index 20b5bca36..b046bef30 100644 --- a/spec/app/root-view-spec.coffee +++ b/spec/app/root-view-spec.coffee @@ -567,9 +567,9 @@ describe "RootView", -> editor = null beforeEach -> editor = rootView.getActiveEditor() + editor.attachToDom() it "increases/decreases font size when increase/decrease-font-size events are triggered", -> - editor = rootView.getActiveEditor() fontSizeBefore = editor.getFontSize() rootView.trigger 'window:increase-font-size' expect(editor.getFontSize()).toBe fontSizeBefore + 1 diff --git a/src/app/edit-session.coffee b/src/app/edit-session.coffee index e7f3165b7..f9adc3f1b 100644 --- a/src/app/edit-session.coffee +++ b/src/app/edit-session.coffee @@ -350,7 +350,7 @@ class EditSession foldedRows = [] rows = [selection.start.row..selection.end.row] if selection.start.row isnt selection.end.row and selection.end.column is 0 - rows.pop() unless @isFoldedAtScreenRow(@screenPositionForBufferPosition(selection.end).row) + rows.pop() unless @isFoldedAtBufferRow(selection.end.row) for row in rows screenRow = @screenPositionForBufferPosition([row]).row if @isFoldedAtScreenRow(screenRow) @@ -371,9 +371,7 @@ class EditSession @foldBufferRow(foldedRow) for foldedRow in foldedRows - newStartPosition = [selection.start.row - 1, selection.start.column] - newEndPosition = [selection.end.row - 1, selection.end.column] - @setSelectedBufferRange([newStartPosition, newEndPosition], preserveFolds: true) + @setSelectedBufferRange(selection.translate([-1]), preserveFolds: true) moveLineDown: -> selection = @getSelectedBufferRange() @@ -385,7 +383,7 @@ class EditSession foldedRows = [] rows = [selection.end.row..selection.start.row] if selection.start.row isnt selection.end.row and selection.end.column is 0 - rows.shift() unless @isFoldedAtScreenRow(@screenPositionForBufferPosition(selection.end).row) + rows.shift() unless @isFoldedAtBufferRow(selection.end.row) for row in rows screenRow = @screenPositionForBufferPosition([row]).row if @isFoldedAtScreenRow(screenRow) @@ -410,9 +408,7 @@ class EditSession @foldBufferRow(foldedRow) for foldedRow in foldedRows - newStartPosition = [selection.start.row + 1, selection.start.column] - newEndPosition = [selection.end.row + 1, selection.end.column] - @setSelectedBufferRange([newStartPosition, newEndPosition], preserveFolds: true) + @setSelectedBufferRange(selection.translate([1]), preserveFolds: true) mutateSelectedText: (fn) -> diff --git a/src/app/editor.coffee b/src/app/editor.coffee index 1c3bb4334..fcc9a9409 100644 --- a/src/app/editor.coffee +++ b/src/app/editor.coffee @@ -14,12 +14,13 @@ _ = require 'underscore' module.exports = class Editor extends View @configDefaults: + fontFamily: "Inconsolata, Monaco, Courier" fontSize: 20 showInvisibles: false autosave: false autoIndent: true autoIndentOnPaste: false - nonWordCharacters: "./\\()\"’-_:,.;<>~!@#$%^&*|+=[]{}`~?" + nonWordCharacters: "./\\()\"'-_:,.;<>~!@#$%^&*|+=[]{}`~?" @content: (params) -> @div class: @classes(params), tabindex: -1, => @@ -341,6 +342,7 @@ class Editor extends View @observeConfig 'editor.showInvisibles', (showInvisibles) => @setShowInvisibles(showInvisibles) @observeConfig 'editor.invisibles', (invisibles) => @setInvisibles(invisibles) @observeConfig 'editor.fontSize', (fontSize) => @setFontSize(fontSize) + @observeConfig 'editor.fontFamily', (fontFamily) => @setFontFamily(fontFamily) handleEvents: -> @on 'focus', => @@ -681,16 +683,37 @@ class Editor extends View autosave: -> @save() if @getPath()? - setFontSize: (@fontSize) -> - if fontSize? - @css('font-size', fontSize + 'px') - return unless @attached - @calculateDimensions() - @updatePaddingOfRenderedLines() - @updateLayerDimensions() - @requestDisplayUpdate() + setFontSize: (fontSize) -> + headTag = $("head") + styleTag = headTag.find("style.font-size") + if styleTag.length == 0 + styleTag = $$ -> @style class: 'font-size' + headTag.append styleTag - getFontSize: -> @fontSize + styleTag.text(".editor {font-size: #{fontSize}px}") + @redraw() + + getFontSize: -> + parseInt(@css("font-size")) + + setFontFamily: (fontFamily) -> + headTag = $("head") + styleTag = headTag.find("style.font-family") + if styleTag.length == 0 + styleTag = $$ -> @style class: 'font-family' + headTag.append styleTag + + styleTag.text(".editor {font-family: #{fontFamily}}") + @redraw() + + getFontFamily: -> @css("font-family") + + redraw: -> + return unless @attached + @calculateDimensions() + @updatePaddingOfRenderedLines() + @updateLayerDimensions() + @requestDisplayUpdate() newSplitEditor: (editSession) -> new Editor { editSession: editSession ? @activeEditSession.copy() } diff --git a/src/app/point.coffee b/src/app/point.coffee index b740027f6..e471ad6c6 100644 --- a/src/app/point.coffee +++ b/src/app/point.coffee @@ -34,6 +34,10 @@ class Point new Point(row, column) + translate: (other) -> + other = Point.fromObject(other) + new Point(@row + other.row, @column + other.column) + splitAt: (column) -> if @row == 0 rightColumn = @column - column diff --git a/src/app/range.coffee b/src/app/range.coffee index 3464a3bce..136f52f15 100644 --- a/src/app/range.coffee +++ b/src/app/range.coffee @@ -48,6 +48,9 @@ class Range add: (point) -> new Range(@start.add(point), @end.add(point)) + translate: (startPoint, endPoint=startPoint) -> + new Range(@start.translate(startPoint), @end.translate(endPoint)) + intersectsWith: (otherRange) -> if @start.isLessThanOrEqual(otherRange.start) @end.isGreaterThanOrEqual(otherRange.start) diff --git a/src/packages/command-logger/index.coffee b/src/packages/command-logger/index.coffee index 39dd9ad68..027035980 100644 --- a/src/packages/command-logger/index.coffee +++ b/src/packages/command-logger/index.coffee @@ -1,4 +1,5 @@ DeferredAtomPackage = require 'deferred-atom-package' +$ = require 'jquery' module.exports = class CommandLogger extends DeferredAtomPackage @@ -7,4 +8,25 @@ class CommandLogger extends DeferredAtomPackage instanceClass: 'command-logger/src/command-logger-view' - onLoadEvent: (event, instance) -> instance.toggle() + activate: (rootView, state={})-> + super + + @eventLog = state.eventLog ? {} + rootView.command 'command-logger:clear-data', => @eventLog = {} + + registerTriggeredEvent = (eventName) => + eventNameLog = @eventLog[eventName] + unless eventNameLog + eventNameLog = + count: 0 + name: eventName + @eventLog[eventName] = eventNameLog + eventNameLog.count++ + eventNameLog.lastRun = new Date().getTime() + originalTrigger = $.fn.trigger + $.fn.trigger = (eventName) -> + eventName = eventName.type if eventName.type + registerTriggeredEvent(eventName) if $(this).events()[eventName] + originalTrigger.apply(this, arguments) + + onLoadEvent: (event, instance) -> instance.toggle(@eventLog) diff --git a/src/packages/command-logger/src/command-logger-view.coffee b/src/packages/command-logger/src/command-logger-view.coffee index 01496a2d0..4a5f89df5 100644 --- a/src/packages/command-logger/src/command-logger-view.coffee +++ b/src/packages/command-logger/src/command-logger-view.coffee @@ -1,12 +1,11 @@ {$$$} = require 'space-pen' ScrollView = require 'scroll-view' -$ = require 'jquery' _ = require 'underscore' module.exports = class CommandLoggerView extends ScrollView @activate: (rootView, state) -> - @instance = new CommandLoggerView(rootView, state?.eventLog) + @instance = new CommandLoggerView(rootView) @content: (rootView) -> @div class: 'command-logger', tabindex: -1, => @@ -31,29 +30,12 @@ class CommandLoggerView extends ScrollView 'tree-view:directory-modified' ] - initialize: (@rootView, @eventLog={}) -> + initialize: (@rootView) -> super - @rootView.command 'command-logger:clear-data', => @eventLog = {} @command 'core:cancel', => @detach() - registerEvent = (eventName) => - eventNameLog = @eventLog[eventName] - unless eventNameLog - eventNameLog = - count: 0 - name: eventName - @eventLog[eventName] = eventNameLog - eventNameLog.count++ - eventNameLog.lastRun = new Date().getTime() - - originalTrigger = $.fn.trigger - $.fn.trigger = (eventName) -> - eventName = eventName.type if eventName.type - registerEvent(eventName) if $(this).events()[eventName] - originalTrigger.apply(this, arguments) - - toggle: -> + toggle: (@eventLog={}) -> if @hasParent() @detach() else diff --git a/src/packages/command-panel/src/command-panel-view.coffee b/src/packages/command-panel/src/command-panel-view.coffee index 7ccb74a48..d27711a70 100644 --- a/src/packages/command-panel/src/command-panel-view.coffee +++ b/src/packages/command-panel/src/command-panel-view.coffee @@ -51,7 +51,7 @@ class CommandPanelView extends View @previewList.hide() @previewCount.hide() @errorMessages.hide() - @prompt.iconSize(@miniEditor.fontSize) + @prompt.iconSize(@miniEditor.getFontSize()) serialize: -> text: @miniEditor.getText() diff --git a/src/packages/snippets/keymaps/snippets-1.cson b/src/packages/snippets/keymaps/snippets-1.cson index c8bf63c51..ce982b6a2 100644 --- a/src/packages/snippets/keymaps/snippets-1.cson +++ b/src/packages/snippets/keymaps/snippets-1.cson @@ -1,2 +1,2 @@ -window.keymap.bindKeys '.editor' +'.editor': 'tab': 'snippets:expand' diff --git a/src/packages/snippets/keymaps/snippets-2.cson b/src/packages/snippets/keymaps/snippets-2.cson index 6b660c6fd..9cf7b49e5 100644 --- a/src/packages/snippets/keymaps/snippets-2.cson +++ b/src/packages/snippets/keymaps/snippets-2.cson @@ -1,6 +1,6 @@ # it's critical that these bindings be loaded after those snippets-1 so they # are later in the cascade, hence breaking the keymap into 2 files -window.keymap.bindKeys '.editor' +'.editor': 'tab': 'snippets:next-tab-stop' 'shift-tab': 'snippets:previous-tab-stop' diff --git a/src/packages/tabs/spec/tabs-spec.coffee b/src/packages/tabs/spec/tabs-spec.coffee index c3055d081..c36922a38 100644 --- a/src/packages/tabs/spec/tabs-spec.coffee +++ b/src/packages/tabs/spec/tabs-spec.coffee @@ -5,7 +5,7 @@ Tabs = require 'tabs' fs = require 'fs' describe "Tabs", -> - [rootView, editor, statusBar, buffer, tabs] = [] + [rootView, editor, buffer, tabs] = [] beforeEach -> rootView = new RootView(require.resolve('fixtures/sample.js')) @@ -118,3 +118,21 @@ describe "Tabs", -> tabs.find('.tab .close-icon:eq(1)').click() expect(editor.getActiveEditSessionIndex()).toBe 0 expect(editor.activeEditSession).toBe firstSession + + describe "when two tabs have the same file name", -> + [tempPath] = [] + + beforeEach -> + tempPath = '/tmp/sample.js' + fs.write(tempPath, 'sample') + + afterEach -> + fs.remove(tempPath) if fs.exists(tempPath) + + it "displays the parent folder name after the file name", -> + expect(tabs.find('.tab:eq(0) .file-name').text()).toBe 'sample.js' + rootView.open(tempPath) + expect(tabs.find('.tab:eq(0) .file-name').text()).toBe 'sample.js - fixtures' + expect(tabs.find('.tab:last .file-name').text()).toBe 'sample.js - tmp' + editor.destroyActiveEditSession() + expect(tabs.find('.tab:eq(0) .file-name').text()).toBe 'sample.js' diff --git a/src/packages/tabs/src/tab.coffee b/src/packages/tabs/src/tab.coffee index 6a26a114f..6a8ba4338 100644 --- a/src/packages/tabs/src/tab.coffee +++ b/src/packages/tabs/src/tab.coffee @@ -1,4 +1,5 @@ {View} = require 'space-pen' +fs = require 'fs' module.exports = class Tab extends View @@ -7,12 +8,14 @@ class Tab extends View @span class: 'file-name', outlet: 'fileName' @span class: 'close-icon' - initialize: (@editSession) -> + initialize: (@editSession, @editor) -> @buffer = @editSession.buffer @subscribe @buffer, 'path-changed', => @updateFileName() @subscribe @buffer, 'contents-modified', => @updateModifiedStatus() @subscribe @buffer, 'saved', => @updateModifiedStatus() @subscribe @buffer, 'git-status-changed', => @updateModifiedStatus() + @subscribe @editor, 'editor:edit-session-added', => @updateFileName() + @subscribe @editor, 'editor:edit-session-removed', => @updateFileName() @updateFileName() @updateModifiedStatus() @@ -25,4 +28,14 @@ class Tab extends View @isModified = false updateFileName: -> - @fileName.text(@editSession.buffer.getBaseName() ? 'untitled') + fileNameText = @editSession.buffer.getBaseName() + if fileNameText? + duplicates = @editor.getEditSessions().filter (session) -> fileNameText is session.buffer.getBaseName() + if duplicates.length > 1 + directory = fs.base(fs.directory(@editSession.getPath())) + fileNameText = "#{fileNameText} - #{directory}" if directory + else + fileNameText = 'untitled' + + @fileName.text(fileNameText) + @fileName.attr('title', @editSession.getPath()) diff --git a/src/packages/tabs/src/tabs-view.coffee b/src/packages/tabs/src/tabs-view.coffee index e7322dc64..d2b21fa7c 100644 --- a/src/packages/tabs/src/tabs-view.coffee +++ b/src/packages/tabs/src/tabs-view.coffee @@ -34,7 +34,7 @@ class Tabs extends View false addTabForEditSession: (editSession) -> - @append(new Tab(editSession)) + @append(new Tab(editSession, @editor)) setActiveTab: (index) -> @find(".tab.active").removeClass('active') diff --git a/static/editor.css b/static/editor.css index bdd9f2825..0b8cfb452 100644 --- a/static/editor.css +++ b/static/editor.css @@ -103,4 +103,4 @@ position: absolute; pointer-events: none; z-index: -1; -} \ No newline at end of file +} diff --git a/themes/Atom - Dark/editor.css b/themes/Atom - Dark/editor.css index d15b4a7e0..b2daa3586 100644 --- a/themes/Atom - Dark/editor.css +++ b/themes/Atom - Dark/editor.css @@ -53,10 +53,11 @@ } .editor .fold-marker:before { - content: '\f25e'; + content: '\f060'; + -webkit-transform: rotate(90deg); font-family: 'Octicons Regular'; display: inline-block; - margin-left: .5em; + margin-left: .3em; margin-top: .1em; line-height: .8em; -webkit-font-smoothing: antialiased; diff --git a/themes/Atom - Light/editor.css b/themes/Atom - Light/editor.css index 14e16fbc5..26dec9cb1 100644 --- a/themes/Atom - Light/editor.css +++ b/themes/Atom - Light/editor.css @@ -56,10 +56,11 @@ } .editor .fold-marker:before { - content: '\f25e'; + content: '\f060'; + -webkit-transform: rotate(90deg); font-family: 'Octicons Regular'; display: inline-block; - margin-left: .5em; + margin-left: .3em; margin-top: .1em; line-height: .8em; -webkit-font-smoothing: antialiased;