mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-02-17 08:50:58 -05:00
Merge branch 'cashew'
This commit is contained in:
commit
86d9b081c1
16 changed files with 25 additions and 7 deletions
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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' }
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
||||
|
|
|
@ -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: ->
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -132,3 +132,4 @@ commentStarts =
|
|||
clojure: '; '
|
||||
lua: '-- '
|
||||
io: '// '
|
||||
java: '// '
|
||||
|
|
|
@ -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"
|
||||
]
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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')
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
Loading…
Reference in a new issue