Commit graph

173 commits

Author SHA1 Message Date
Phoenix Eliot
663c220eaf Show wev-dev iFrame error messages like Aether's
This heavily refactors SpellView and adds infrastructure for receiving and reporting Errors raised by the web-dev iFrame. The web-dev error system, the Aether error system, and the Ace html-worker avoid disturbing each others' errors/annotations (though currently Aether+web-dev errors won't coexist), and they clear/update their own asynchronously.

Show web-dev iFrame errors as Ace annotations

Add functional error banners (with poor messages)

Improve error banners, don't allow duplicate Problems

Refactor setAnnotations override

Convert all constructor calls for Problems

Add comments, clean up

Clean up

Don't clear things unnecessarily

Clean up error message sending from iFrame

Add web-dev:error schema

Clarify error message attributes

Refactor displaying AetherProblems

Refactor displaying user problem banners

Refactor onWebDevError

Set ace styles on updating @problems

Clean up, fix off-by-1 error

Add comment

Show stale web-dev errors differently
Some web-dev errors are generated by "stale" code — code that's still running in the iFrame but doesn't have the player's recent changes.
This shows those errors differently than if they weren't "stale", and suggests they re-run their code.

Hook up web-dev event schema

Destroy ignored duplicate problems

Functionalize a bit of stuff

Fix ProblemAlertView never loading
2016-08-31 10:59:06 -07:00
Matt Lott
f2597229b5 No autocomplete x y, rename Zatanna to Autocomplete
Don’t autocomplete common variables ’x’ or ‘y’:
return if /^x$|^y$/i.test(prefix)
Renaming zatanna to autocomplete

Closes #3865
2016-08-22 05:46:07 -07:00
Matt Lott
e62dbed362 Shift user code yellow arrow tips inward based on indentation
Closes #3850
2016-08-15 13:36:43 -07:00
Phoenix Eliot
c2ce804839 Fix worker-based syntax annotations 2016-08-12 16:28:29 -07:00
Matt Lott
ba6d51659c Show in-game programming language
Closes #3814
2016-08-03 11:08:20 -07:00
phoenixeliot
dd66a8c252 Add detection of HTML/CSS/JS comments for entrypoints 2016-07-28 15:10:01 -07:00
Nick Winter
d77625bc77 Game dev levels (#3810)
* Tweak API doc behavior and styling

* Instead of moving to the left during active dialogues, just move to the top
* Allow pointer events
* Adjust close button
* Re-enable pinning API docs for game-dev and web-dev levels

* Make sidebar in PlayGameDevLevelView stretch, better layout columns

* Set up content of PlayGameDevLevelView sidebar to scroll

* Add rest of PlayGameDevLevelView sidebar content, rework what loading looks like

* Finish PlayGameDevLevelView

* Add share area below
* Cover the brown background, paint it gray

* Tweak PlayGameDevLevelView

* Have progress bar show everything
* Fix Surface resize handling

* Fix PlayGameDevLevelView resizing incorrectly when playing

* Add GameDevVictoryModal to PlayGameDevLevelView

* Don't show missing-doctype annotation in Ace

* Hook up GameDevVictoryModal copy button

* Fix onChangeAnnotation runtime error

* Fix onLevelLoaded runtime error

* Have CourseVictoryModal link to /courses when course is done

* Trim, update CourseDetailsView

* Remove last vestiges of teacherMode
* Remove giant navigation buttons at top
* Quick switch to flat style

* Add analytics for game-dev

* Update Analytics events for gamedev

* Prefix event names with context
* Send to Mixpanel
* Include more properties

* Mostly set up indefinite play and autocast for game-dev levels

* Set up cast buttons and shortcut for game-dev

* Add rudimentary instructions when students play game-dev levels

* Couple tweaks

* fix a bit of code that expects frames to always stick around
* have PlayGameDevLevelView render a couple frames on load

* API Docs use 'game' instead of 'hero'

* Move tags to head without combining

* Add HTML comment-start string

Fixes missing entry point arrows

* Fix some whitespace
2016-07-28 13:39:58 -07:00
Nick Winter
ea61499a10 Add Done button hotkey 2016-07-22 17:59:32 -07:00
phoenixeliot
58284dff33 Turn on Ace HTML worker for syntax errors 2016-07-19 11:30:02 -07:00
Nick Winter
e3670165e7 Remove code for multiple spells; rename SpellListTabEntryView to SpellTopBarView; remove hero avatar from SpellTopBarView 2016-07-14 22:43:25 -07:00
Nick Winter
220db3106c Run button now recreates web-dev DOM; no submit button 2016-07-14 19:48:27 -07:00
Nick Winter
ed320a8d9e WebSurfaceView now parsing player code through virtual DOM into iframe 2016-07-14 18:07:36 -07:00
Nick Winter
16b10612b6 Stub WebSurface showing for web-dev levels 2016-07-14 12:34:22 -07:00
Nick Winter
c5c831c211 Remove real-time multiplayer prototype code 2016-07-14 10:26:09 -07:00
Nick Winter
c0a70cb2ab Refactor level type checks for easy greppability (level.isType) 2016-07-14 08:58:43 -07:00
Nick Winter
a5a955ca6b Always show indent guides 2016-07-11 08:35:44 -07:00
Rob
9c7320e26a - Move Zatanna out of own repo and into CodeCombat
- Move snippet creation out of SpellView
- Disable text based completions.
2016-07-01 16:39:21 -07:00
Matt Lott
425115ad37 Remove level type 'hero-practice', use level.practice 2016-06-25 08:38:59 -07:00
Rob
f100e7ab52 Non-integer indentation levels are impossible. 2016-06-22 15:08:20 -07:00
Matt Lott
e0170d0339 Add hero-practice level type and threshold to schema
Filtering out hero-practice levels from classrooms until the Ux
supports them.
2016-06-19 20:23:32 -07:00
Nick Winter
b0fcddac68 Add game-dev level type (#3725)
* Initial pass adding new game-dev level type.

* Fix a failing test with updated LevelSystem required properties

* Bring back normal Angel worker timeout times

* Fix another failing LevelSystem test since removing propertyDocumentation
2016-06-08 16:57:00 -07:00
Rob
2ef10f58b3 Fix bug where visual indents couldn't nest. 2016-06-03 14:01:37 -07:00
Rob
8d2df0baff Kill some console logs @poojawins 2016-06-02 20:17:52 -07:00
Rob
3485abd413 Don't show indent guides for incorrect python indention. 2016-06-02 18:46:47 -07:00
Josh Callebaut
13b69d15f2 Display auto-complete box even after adding a new line 2016-05-31 16:50:22 -07:00
Nick Winter
8fce97aad3 Fully remove Clojure and Io. Use new Aether 0.5.0. 2016-05-24 12:00:04 -07:00
Cat Sync
6e11b0dcda Definitely use hero if hero is present in the user code. 2016-05-13 13:37:36 -04:00
Cat Sync
50c8588231 Default to using hero unless self/this is present in the player's code.
This affects the autocomplete and spell palette api docs.
2016-05-09 12:49:25 -04:00
phoenixeliot
7c1059bffa Fix code review feedback
Fix code review feedback (2)

Fix code review feedback (3)
2016-04-26 16:37:36 -07:00
phoenixeliot
66f99dd834 Add translation tooltips for code
Tweak tooltips, add some translation keys

Fixed not showing translations for English-speakers

Remove comment
2016-04-26 16:37:07 -07:00
Josh Callebaut
c4652d82e2 Implements the SPADE logger into the SpellView
* Updates spade.js vendor file, adds a sublime-project for developers to use
* Moves server logic away from handlers
* Moves session update logic to middleware, sets up server schema to autorender IDs as ObjectIDs
* Modernizes the supermodel loading scheme and switches from constructor to initalize
2016-04-26 09:56:30 -07:00
Catsync
7ff12f326f Merge pull request #3548 from Catsync/autocomplete-hero
hero autocomplete hack
2016-04-13 14:59:21 -04:00
Cat Sync
fddba4e0ce Hacks autocomplete to use hero instead of self/this
Uses hero instead of self/this if “hero” is already in the code, in
javascript, python, and lua.
2016-04-12 14:31:50 -04:00
UltCombo
8326b5e182 JS beautifier: fix loop construct, fixes #3510
As JavaScript is the only language supported by the beautifier, and [CodeCombat is in the process of converting things to while (true)](https://github.com/codecombat/codecombat/issues/3510#issuecomment-201965310), I guess adding this quick hack to the view's code should suffice for now. Hopefully, the non-standard `loop` construct will be removed from other languages before they receive beautifier support.

If this doesn't seem good, I can move  this hack to `aether.beautify`, where it is possible to perform this substitution in a language-aware way (i.e. inside Aether's JavaScript implementation's [`beautify` method](418ccf2414/src/languages/javascript.coffee (L137))). Seeing as the `loop` construct is specific to CodeCombat, I'm not sure if that would be a good idea. Passing an options object with a flag to support the `loop` construct seems a bit overkill.

Let me know what works best for you.
2016-03-28 00:00:40 -03:00
CodeCombat
41a532cb50 WIP - cashew integration 2016-01-04 16:27:27 -08:00
Nick Winter
4a04a48f42 Got rid of testing ending line for indent visualizer 2015-12-10 11:11:12 -08:00
Nick Winter
608d45ba70 Don't do undefined slug collection scans 2015-12-10 09:05:34 -08:00
Rob
24a43f2be8 Don't show visual indent for comment ace things are blocks. 2015-12-08 14:20:23 -08:00
Nick Winter
7cbe679f6b Remove red color for now for indentation visualizer (#3232) 2015-12-03 12:14:42 -08:00
Nick Winter
e7809c6622 Saven even more slowly for anonymous players during high load 2015-12-01 11:51:55 -08:00
Rob
d0f3aeec91 Draw visual indent marker by hand so it's more stylish. 2015-12-01 12:22:48 -05:00
Rob
db060e9816 Fix visual indents when document row doesn't match screen row. 2015-12-01 12:02:56 -05:00
Rob
fa21f9ef68 Add an extra indent line if the line following a range is only whitespace. 2015-11-30 17:23:29 -05:00
Nick Winter
2588bfb08b Reduce some writes during HoC to help scaling 2015-11-30 13:05:34 -08:00
Rob
716f759e11 Be more helpful when opening a new indent. 2015-11-30 14:13:07 -05:00
Rob
79fe249291 Merge branch 'visual-indent' 2015-11-30 13:55:25 -05:00
Rob
1b43c3e54f Clean up visual idents, limit to players under level 20 or with indentGuides turned on. 2015-11-30 13:54:50 -05:00
Nick Winter
95c703a7df Simulate games in background while playing levels if we think there's extra compute power 2015-11-29 12:30:19 -08:00
Rob
e6afb51085 First pass at showing indention guides. 2015-11-27 20:46:55 -05:00
Nick Winter
ef72286864 Don't autoplay hero or course levels by default. Fix Course: Known Enemy autocomplete string format. 2015-11-15 07:59:20 -08:00