fixed autocomplete issue related to switching the programming language

This commit is contained in:
Dominik Kundel 2014-07-02 20:52:16 +02:00
parent 3f57644b0b
commit 004a14ae3c
3 changed files with 11 additions and 9 deletions

View file

@ -93,7 +93,7 @@ module.exports = class SpellPaletteView extends View
tabbify = count >= 10 tabbify = count >= 10
@entries = [] @entries = []
Backbone.Mediator.publish 'tome:update-snippets', propGroups: propGroups, allDocs: allDocs Backbone.Mediator.publish 'tome:update-snippets', propGroups: propGroups, allDocs: allDocs, language: @options.language
for owner, props of propGroups for owner, props of propGroups
for prop in props for prop in props

View file

@ -96,6 +96,7 @@ module.exports = class SpellView extends View
@aceSession.selection.on 'changeCursor', @onCursorActivity @aceSession.selection.on 'changeCursor', @onCursorActivity
$(@ace.container).find('.ace_gutter').on 'click', '.ace_error, .ace_warning, .ace_info', @onAnnotationClick $(@ace.container).find('.ace_gutter').on 'click', '.ace_error, .ace_warning, .ace_info', @onAnnotationClick
@zatanna = new Zatanna @ace, @zatanna = new Zatanna @ace,
liveCompletion: aceConfig.liveCompletion ? true liveCompletion: aceConfig.liveCompletion ? true
completers: completers:
keywords: false keywords: false
@ -180,16 +181,17 @@ module.exports = class SpellView extends View
return (owner is 'this' or owner is 'more') and (not doc.owner? or doc.owner is 'this') return (owner is 'this' or owner is 'more') and (not doc.owner? or doc.owner is 'this')
console.log 'could not find doc for', prop, 'from', e.allDocs['__' + prop], 'for', owner, 'of', e.propGroups unless doc console.log 'could not find doc for', prop, 'from', e.allDocs['__' + prop], 'for', owner, 'of', e.propGroups unless doc
doc ?= prop doc ?= prop
if doc.snippets?[@spell.language] if doc.snippets?[e.language]
entry = entry =
content: doc.snippets[@spell.language].code content: doc.snippets[e.language].code
name: doc.name name: doc.name
tabTrigger: doc.snippets[@spell.language].tab tabTrigger: doc.snippets[e.language].tab
snippetEntries.push entry snippetEntries.push entry
window.zatanna = @zatanna # window.zatanna = @zatanna
window.snippetEntries = snippetEntries # window.snippetEntries = snippetEntries
@zatanna.addSnippets snippetEntries, @spell.language lang = @editModes[e.language].substr 'ace/mode/'.length
@zatanna.addSnippets snippetEntries, lang
onMultiplayerChanged: -> onMultiplayerChanged: ->
if @session.get('multiplayer') if @session.get('multiplayer')
@ -652,7 +654,7 @@ module.exports = class SpellView extends View
onChangeLanguage: (e) -> onChangeLanguage: (e) ->
return unless @spell.canWrite() return unless @spell.canWrite()
@aceSession.setMode @editModes[e.language] @aceSession.setMode @editModes[e.language]
@zatanna.set 'language', @editModes[e.language].substr('ace/mode/') # @zatanna.set 'language', @editModes[e.language].substr('ace/mode/')
wasDefault = @getSource() is @spell.originalSource wasDefault = @getSource() is @spell.originalSource
@spell.setLanguage e.language @spell.setLanguage e.language
@reloadCode true if wasDefault @reloadCode true if wasDefault

View file

@ -44,7 +44,7 @@
"bootstrap": "~3.1.1", "bootstrap": "~3.1.1",
"validated-backbone-mediator": "~0.1.3", "validated-backbone-mediator": "~0.1.3",
"jquery.browser": "~0.0.6", "jquery.browser": "~0.0.6",
"zatanna": "~0.0.1" "zatanna": "~0.0.2"
}, },
"overrides": { "overrides": {
"backbone": { "backbone": {