Merge branch 'cashew'

This commit is contained in:
Rob 2016-01-06 12:03:49 -08:00
commit 86d9b081c1
16 changed files with 25 additions and 7 deletions

View file

@ -240,6 +240,7 @@ codeLanguages =
python: 'ace/mode/python'
clojure: 'ace/mode/clojure'
lua: 'ace/mode/lua'
java: 'ace/mode/java'
io: 'ace/mode/text'
class CodeLanguagesObjectTreema extends TreemaNode.nodeMap.object

View file

@ -252,7 +252,7 @@ module.exports.getPrepaidCodeAmount = getPrepaidCodeAmount = (price=0, users=0,
module.exports.filterMarkdownCodeLanguages = (text) ->
return '' unless text
currentLanguage = me.get('aceConfig')?.language or 'python'
excludedLanguages = _.without ['javascript', 'python', 'coffeescript', 'clojure', 'lua', 'io'], currentLanguage
excludedLanguages = _.without ['javascript', 'python', 'coffeescript', 'clojure', 'lua', 'java', 'io'], currentLanguage
exclusionRegex = new RegExp "```(#{excludedLanguages.join('|')})\n[^`]+```\n?", 'gm'
text.replace exclusionRegex, ''
@ -260,9 +260,11 @@ module.exports.aceEditModes = aceEditModes =
'javascript': 'ace/mode/javascript'
'coffeescript': 'ace/mode/coffee'
'python': 'ace/mode/python'
'java': 'ace/mode/java'
'clojure': 'ace/mode/clojure'
'lua': 'ace/mode/lua'
'io': 'ace/mode/text'
'java': 'ace/mode/java'
module.exports.initializeACE = (el, codeLanguage) ->
contents = $(el).text().trim()

View file

@ -117,7 +117,7 @@ _.extend UserSchema.properties,
colorConfig: c.object {additionalProperties: c.colorConfig()}
aceConfig: c.object { default: { language: 'python', keyBindings: 'default', invisibles: false, indentGuides: false, behaviors: false, liveCompletion: true }},
language: {type: 'string', 'enum': ['python', 'javascript', 'coffeescript', 'clojure', 'lua', 'io']}
language: {type: 'string', 'enum': ['python', 'javascript', 'coffeescript', 'clojure', 'lua', 'java', 'io']}
keyBindings: {type: 'string', 'enum': ['default', 'vim', 'emacs']}
invisibles: {type: 'boolean' }
indentGuides: {type: 'boolean' }

View file

@ -396,6 +396,8 @@ $heroCanvasHeight: 275px
background-image: url(/images/common/code_languages/clojure_small.png)
&[data-value="lua"]
background-image: url(/images/common/code_languages/lua_small.png)
&[data-value="java"]
background-image: url(/images/common/code_languages/java_small.png)
&[data-value="io"]
background-image: url(/images/common/code_languages/io_small.png)

View file

@ -102,6 +102,7 @@ module.exports = class LadderPlayModal extends ModalView
{id: 'coffeescript', name: 'CoffeeScript (Experimental)'}
{id: 'clojure', name: 'Clojure (Experimental)'}
{id: 'lua', name: 'Lua'}
{id: 'java', name: 'Java'}
#{id: 'io', name: 'Io (Experimental)'}
]
ctx.league = @options.league

View file

@ -20,6 +20,7 @@ module.exports = class SimulateTabView extends CocoView
require 'vendor/aether-python'
require 'vendor/aether-coffeescript'
require 'vendor/aether-lua'
require 'vendor/aether-java'
require 'vendor/aether-clojure'
require 'vendor/aether-io'

View file

@ -404,8 +404,10 @@ module.exports = class PlayLevelView extends RootView
require 'vendor/aether-python'
require 'vendor/aether-coffeescript'
require 'vendor/aether-lua'
require 'vendor/aether-java'
require 'vendor/aether-clojure'
require 'vendor/aether-io'
require 'vendor/aether-java'
@simulateNextGame()
simulateNextGame: ->

View file

@ -52,6 +52,7 @@ module.exports = class DocFormatter
@doc.owner ?= 'this'
ownerName = @doc.ownerName = if @doc.owner isnt 'this' then @doc.owner else switch @options.language
when 'python', 'lua' then 'self'
when 'java' then 'hero'
when 'coffeescript' then '@'
else 'this'
if @doc.type is 'function'

View file

@ -44,7 +44,7 @@ module.exports = class SpellPaletteView extends CocoView
c.defaultGroupSlug = @defaultGroupSlug
c.showsHelp = @showsHelp
c.tabs = @tabs # For hero-based, non-this-owned tabs like Vector, Math, etc.
c.thisName = {coffeescript: '@', lua: 'self', python: 'self'}[@options.language] or 'this'
c.thisName = {coffeescript: '@', lua: 'self', python: 'self', java: 'hero'}[@options.language] or 'this'
c._ = _
c

View file

@ -218,7 +218,7 @@ module.exports = class SpellView extends CocoView
disableSpaces = @options.level.get('disableSpaces') or false
aceConfig = me.get('aceConfig') ? {}
disableSpaces = false if aceConfig.keyBindings and aceConfig.keyBindings isnt 'default' # Not in vim/emacs mode
disableSpaces = false if @spell.language in ['clojure', 'lua', 'coffeescript', 'io'] # Don't disable for more advanced/experimental languages
disableSpaces = false if @spell.language in ['clojure', 'lua', 'java', 'coffeescript', 'io'] # Don't disable for more advanced/experimental languages
if not disableSpaces or (_.isNumber(disableSpaces) and disableSpaces < me.level())
return @ace.execCommand 'insertstring', ' '
line = @aceDoc.getLine @ace.getCursorPosition().row

View file

@ -116,6 +116,9 @@ module.exports = class PlayHeroesModal extends ModalView
#{id: 'io', name: "Io (#{$.i18n.t('choose_hero.experimental')})"}
]
if me.isAdmin() or not application.isProduction()
@codeLanguageList.push {id: 'java', name: "Java (#{$.i18n.t('choose_hero.experimental')})"}
onHeroChanged: (e) ->
direction = e.direction # 'left' or 'right'
heroItem = $(e.relatedTarget)

View file

@ -132,3 +132,4 @@ commentStarts =
clojure: '; '
lua: '-- '
io: '// '
java: '// '

View file

@ -32,7 +32,7 @@
"firepad": "~0.1.2",
"marked": "~0.3.0",
"moment": "~2.5.0",
"aether": "~0.3.0",
"aether": "~0.4.0",
"underscore.string": "~2.3.3",
"firebase": "~1.0.2",
"d3": "~3.4.4",
@ -107,7 +107,8 @@
"build/io.js",
"build/javascript.js",
"build/lua.js",
"build/python.js"
"build/python.js",
"build/java.js"
]
}
},

View file

@ -114,7 +114,9 @@ exports.config =
'javascripts/app/vendor/aether-io.js': 'bower_components/aether/build/io.js'
'javascripts/app/vendor/aether-javascript.js': 'bower_components/aether/build/javascript.js'
'javascripts/app/vendor/aether-lua.js': 'bower_components/aether/build/lua.js'
'javascripts/app/vendor/aether-java.js': 'bower_components/aether/build/java.js'
'javascripts/app/vendor/aether-python.js': 'bower_components/aether/build/python.js'
'javascripts/app/vendor/aether-java.js': 'bower_components/aether/build/java.js'
# Any vendor libraries we don't want the client to load immediately
'javascripts/app/vendor/d3.js': regJoin('^bower_components/d3')

View file

@ -188,6 +188,7 @@ for codeFile in [
'app/vendor/aether-javascript.js'
'app/vendor/aether-lua.js'
'app/vendor/aether-python.js'
'app/vendor/aether-java.js'
]
codeFileContents.push fs.readFileSync(__dirname + "/../public/javascripts/#{codeFile}", 'utf8')

View file

@ -52,7 +52,7 @@
"dependencies": {
"JQDeferred": "~2.1.0",
"ace-builds": "https://github.com/ajaxorg/ace-builds/archive/3fb55e8e374ab02ce47c1ae55ffb60a1835f3055.tar.gz",
"aether": "~0.3.0",
"aether": "~0.4.0",
"async": "0.2.x",
"aws-sdk": "~2.0.0",
"bayesian-battle": "0.0.x",