mirror of
https://github.com/atom/atom.git
synced 2026-01-23 13:58:08 -05:00
Merge remote-tracking branch 'origin/router'
Conflicts: src/atom/project.coffee
This commit is contained in:
@@ -7,7 +7,7 @@ Extension = require 'extension'
|
||||
|
||||
module.exports =
|
||||
class CompileCoffee extends Editor
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
running: true
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Browser = require 'browser'
|
||||
|
||||
module.exports =
|
||||
class Docs extends Browser
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
running: true
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ ModalSelector = require 'modal-selector'
|
||||
|
||||
module.exports =
|
||||
class FindInProject extends Browser
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
running: true
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ Base64 = require 'gist/base64'
|
||||
|
||||
module.exports =
|
||||
class Gist extends Editor
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
settings:
|
||||
username: ''
|
||||
|
||||
@@ -9,7 +9,7 @@ converter = new Showdown.converter
|
||||
|
||||
module.exports =
|
||||
class Markdownpreview extends Browser
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
running: true
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Browser = require 'browser'
|
||||
|
||||
module.exports =
|
||||
class Showkeybindings extends Browser
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
constructor: ->
|
||||
@running = true
|
||||
|
||||
@@ -6,7 +6,7 @@ Resource = require 'resource'
|
||||
# browser:close (browser) -> Called when a browser is closed.
|
||||
module.exports =
|
||||
class Browser extends Resource
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
open: (url) ->
|
||||
return false if not /^https?:/.test url
|
||||
|
||||
@@ -12,7 +12,7 @@ EditorPane = require 'editor-pane'
|
||||
# editor:close (editor) -> Called when an editor is closed.
|
||||
module.exports =
|
||||
class Editor extends Resource
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
dirty: false
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ Resource = require 'resource'
|
||||
# in a project.
|
||||
module.exports =
|
||||
class Project extends Resource
|
||||
window.resourceTypes.push this
|
||||
atom.router.add this
|
||||
|
||||
settings:
|
||||
# Regexp used to ignore paths.
|
||||
@@ -54,17 +54,11 @@ class Project extends Resource
|
||||
@setActiveResource resource
|
||||
resource.show()
|
||||
true
|
||||
else
|
||||
# Try to open all others
|
||||
for resourceType in window.resourceTypes
|
||||
resource = new resourceType
|
||||
break if success = resource.open url
|
||||
|
||||
if success
|
||||
@resources[url] = resource
|
||||
atom.trigger 'project:resource:open', this, resource
|
||||
@setActiveResource resource
|
||||
true
|
||||
else if resource = atom.router.open url
|
||||
@resources[url] = resource
|
||||
atom.trigger 'project:resource:open', this, resource
|
||||
@setActiveResource resource
|
||||
true
|
||||
|
||||
close: (url) ->
|
||||
if url
|
||||
|
||||
15
src/atom/router.coffee
Normal file
15
src/atom/router.coffee
Normal file
@@ -0,0 +1,15 @@
|
||||
module.exports =
|
||||
class Router
|
||||
resources: []
|
||||
|
||||
add: (resource) ->
|
||||
@resources.unshift resource
|
||||
|
||||
open: (url) ->
|
||||
success = false
|
||||
|
||||
for resourceType in @resources
|
||||
resource = new resourceType
|
||||
break if success = resource.open url
|
||||
|
||||
resource if success
|
||||
@@ -7,19 +7,13 @@ _ = require 'underscore'
|
||||
# Events:
|
||||
# window:load - Same as window.onLoad. Final event of app startup.
|
||||
windowAdditions =
|
||||
resourceTypes: []
|
||||
|
||||
url: $atomController.url?.toString()
|
||||
|
||||
startup: ->
|
||||
atom.trigger 'window:load', this
|
||||
|
||||
success = false
|
||||
for resourceType in @resourceTypes.reverse()
|
||||
@resource = new resourceType
|
||||
break if success = @resource.open @url
|
||||
|
||||
throw "I DON'T KNOW ABOUT #{@url}" if not success
|
||||
if not @resource = atom.router.open @url
|
||||
throw "I DON'T KNOW ABOUT #{@url}"
|
||||
|
||||
shutdown: ->
|
||||
$atomController.close
|
||||
|
||||
@@ -4,14 +4,11 @@ require 'window'
|
||||
window.atom = {}
|
||||
|
||||
App = require 'app'
|
||||
Browser = require 'browser'
|
||||
Editor = require 'editor'
|
||||
Event = require 'event'
|
||||
ExtensionManager = require 'extension-manager'
|
||||
KeyBinder = require 'key-binder'
|
||||
Native = require 'native'
|
||||
Project = require 'project'
|
||||
Resource = require 'resource'
|
||||
Router = require 'router'
|
||||
Settings = require 'settings'
|
||||
Storage = require 'storage'
|
||||
|
||||
@@ -23,8 +20,13 @@ for name, method of atom.event
|
||||
atom.native = new Native
|
||||
atom.storage = new Storage
|
||||
atom.keybinder = new KeyBinder
|
||||
atom.router = new Router
|
||||
atom.settings = new Settings
|
||||
|
||||
Browser = require 'browser'
|
||||
Editor = require 'editor'
|
||||
Project = require 'project'
|
||||
|
||||
atom.extensions = {}
|
||||
atom.extensionManager = new ExtensionManager
|
||||
|
||||
|
||||
Reference in New Issue
Block a user