mirror of
https://github.com/pulsar-edit/pulsar.git
synced 2024-10-26 11:08:40 +03:00
modes plugin
This commit is contained in:
parent
eac9aaec3b
commit
10b6e50b11
3
plugins/modes/index.coffee
Normal file
3
plugins/modes/index.coffee
Normal file
@ -0,0 +1,3 @@
|
||||
exports.Modes = Modes = require 'modes/modes'
|
||||
|
||||
Modes.init()
|
35
plugins/modes/modes.coffee
Normal file
35
plugins/modes/modes.coffee
Normal file
@ -0,0 +1,35 @@
|
||||
_ = require 'underscore'
|
||||
|
||||
{ace} = require 'editor'
|
||||
|
||||
modeMap =
|
||||
js: 'javascript'
|
||||
c: 'c_cpp'
|
||||
cpp: 'c_cpp'
|
||||
h: 'c_cpp'
|
||||
m: 'c_cpp'
|
||||
md: 'markdown'
|
||||
cs: 'csharp'
|
||||
|
||||
modeForLanguage = (language) ->
|
||||
console.log "modeForLanguage(#{language})"
|
||||
language = language.toLowerCase()
|
||||
modeName = modeMap[language] or language
|
||||
|
||||
console.log "modeName: #{modeName}"
|
||||
try
|
||||
require("ace/mode/#{modeName}").Mode
|
||||
catch e
|
||||
null
|
||||
|
||||
setMode = ({filename}) ->
|
||||
console.log "setMode(#{filename})"
|
||||
if mode = modeForLanguage _.last filename.split '.'
|
||||
console.dir mode
|
||||
ace.getSession().setMode new mode
|
||||
|
||||
exports.init = ->
|
||||
ace.on 'open', setMode
|
||||
ace.on 'save', setMode
|
||||
|
||||
exports.modeMap = modeMap
|
@ -12,10 +12,6 @@ Chrome.addPane 'main', '<div id="editor"></div>'
|
||||
|
||||
exports.ace = editor = ace.edit "editor"
|
||||
editor.setTheme require "ace/theme/twilight"
|
||||
JavaScriptMode = require("ace/mode/javascript").Mode
|
||||
CoffeeMode = require("ace/mode/coffee").Mode
|
||||
HTMLMode = require("ace/mode/html").Mode
|
||||
editor.getSession().setMode new JavaScriptMode
|
||||
editor.getSession().setUseSoftTabs true
|
||||
editor.getSession().setTabSize 2
|
||||
|
||||
@ -30,7 +26,6 @@ editor.getSession().on 'change', ->
|
||||
Chrome.setDirty true
|
||||
save = ->
|
||||
File.write filename, editor.getSession().getValue()
|
||||
setMode()
|
||||
Chrome.setDirty false
|
||||
editor._emit 'save', { filename }
|
||||
exports.open = open = (path) ->
|
||||
@ -40,7 +35,6 @@ exports.open = open = (path) ->
|
||||
Process.cwd filename
|
||||
Chrome.title _.last filename.split '/'
|
||||
editor.getSession().setValue ""
|
||||
setMode()
|
||||
Chrome.setDirty false
|
||||
else
|
||||
if /png|jpe?g|gif/i.test filename
|
||||
@ -48,16 +42,8 @@ exports.open = open = (path) ->
|
||||
else
|
||||
Chrome.title _.last filename.split '/'
|
||||
editor.getSession().setValue File.read filename
|
||||
setMode()
|
||||
Chrome.setDirty false
|
||||
editor._emit 'open', { filename }
|
||||
setMode = ->
|
||||
if /\.js$/.test filename
|
||||
editor.getSession().setMode new JavaScriptMode
|
||||
else if /\.coffee$/.test filename
|
||||
editor.getSession().setMode new CoffeeMode
|
||||
else if /\.html/.test filename
|
||||
editor.getSession().setMode new HTMLMode
|
||||
editor._emit 'open', { filename }
|
||||
saveAs = ->
|
||||
if file = Chrome.savePanel()
|
||||
filename = file
|
||||
|
Loading…
Reference in New Issue
Block a user