Initial javascript startup code.
This commit is contained in:
parent
a7516f3da5
commit
ef2056c3f5
5 changed files with 52 additions and 7 deletions
3
atom.gyp
3
atom.gyp
|
@ -6,6 +6,7 @@
|
||||||
'app/atom_main.cc',
|
'app/atom_main.cc',
|
||||||
],
|
],
|
||||||
'coffee_sources': [
|
'coffee_sources': [
|
||||||
|
'browser/api/lib/atom.coffee',
|
||||||
'browser/atom/atom.coffee',
|
'browser/atom/atom.coffee',
|
||||||
],
|
],
|
||||||
'lib_sources': [
|
'lib_sources': [
|
||||||
|
@ -84,7 +85,7 @@
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
'destination': '<(PRODUCT_DIR)/<(product_name).app/Contents/Resources',
|
'destination': '<(PRODUCT_DIR)/<(product_name).app/Contents/Resources/browser',
|
||||||
'files': [
|
'files': [
|
||||||
'browser/default_app',
|
'browser/default_app',
|
||||||
],
|
],
|
||||||
|
|
1
browser/api/lib/atom.coffee
Normal file
1
browser/api/lib/atom.coffee
Normal file
|
@ -0,0 +1 @@
|
||||||
|
module.exports = global.__atom
|
|
@ -1,7 +1,40 @@
|
||||||
|
fs = require 'fs'
|
||||||
|
path = require 'path'
|
||||||
|
|
||||||
|
# Provide default Content API implementations.
|
||||||
|
atom = {}
|
||||||
|
|
||||||
|
atom.browserMainParts =
|
||||||
|
preMainMessageLoopRun: ->
|
||||||
|
# This is the start of the whole application, usually we should initialize
|
||||||
|
# the main window here.
|
||||||
|
|
||||||
|
# Store atom object in global scope, apps can just override methods of it to
|
||||||
|
# implement various logics.
|
||||||
|
global.__atom = atom
|
||||||
|
|
||||||
|
# Add Atom.app/Contents/Resources/browser/api/lib to require's search paths,
|
||||||
|
# which contains javascript of Atom's built-in libraries.
|
||||||
|
require('module').globalPaths.push path.join(__dirname, '..', 'api', 'lib')
|
||||||
|
|
||||||
# Don't quit on fatal error.
|
# Don't quit on fatal error.
|
||||||
process.on "uncaughtException", (error) ->
|
process.on 'uncaughtException', (error) ->
|
||||||
console.error "uncaughtException:"
|
# TODO Show error in GUI.
|
||||||
if error.stack?
|
message = error.stack ? "#{error.name}: #{error.message}"
|
||||||
console.error error.stack
|
console.error 'uncaughtException:'
|
||||||
else
|
console.error message
|
||||||
console.error error.name + ": " + error.message
|
|
||||||
|
# Now we try to load app's package.json.
|
||||||
|
packageJson = null
|
||||||
|
|
||||||
|
packagePath = path.join __dirname, '..', '..', 'app'
|
||||||
|
try
|
||||||
|
# First we try to load Atom.app/Contents/Resources/app
|
||||||
|
packageJson = JSON.parse(fs.readFileSync(path.join(packagePath, 'package.json')))
|
||||||
|
catch error
|
||||||
|
# If not found then we load Atom.app/Contents/Resources/browser/default_app
|
||||||
|
packagePath = path.join __dirname, '..', 'default_app'
|
||||||
|
packageJson = JSON.parse(fs.readFileSync(path.join(packagePath, 'package.json')))
|
||||||
|
|
||||||
|
# Finally load app's main.js and transfer control to C++.
|
||||||
|
require path.join(packagePath, packageJson.main)
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
var atom = require('atom');
|
||||||
|
|
||||||
|
atom.browserMainParts.preMainMessageLoopRun = function() {
|
||||||
|
console.log('Create new window');
|
||||||
|
}
|
5
browser/default_app/package.json
Normal file
5
browser/default_app/package.json
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
"name" : "atom",
|
||||||
|
"version" : "0.1.0",
|
||||||
|
"main" : "main.js"
|
||||||
|
}
|
Loading…
Reference in a new issue