Code Monkey home page Code Monkey logo

Comments (9)

janpaul123 avatar janpaul123 commented on July 20, 2024

I think the autocomplete box in jsdares worked pretty well, I have seen most novice learners use it without any problems. Most people start typing "robot." by example, and then see the autocomplete box. Some people copy/paste lines from the example, but eventually they discover the autocomplete box too.

It's a flexible interface for discovering new methods (not just the ones in an example). It also scales nicely to real-world programming, although there autocomplete boxes are often not as nice (no preview, or no context-awareness) ;-)

If you're going to do this, I would like to suggest doing it a bit better than jsdares and show some more information, e.g. little icons (like Bret Victor proposes), or named arguments instead of just numbers, or small method descriptions.

from codecombat.

GlenDC avatar GlenDC commented on July 20, 2024

Yeah many people expect this, including me. A lot of people already get frustrated when nothing happens after pressing CTRL+Space ( a code assist combination in many IDE's ). so maybe show a message box (maybe just when you do CTRL+SPACE) that tells that the auto complete function is not yet implemented but will be done soon.

from codecombat.

nwinter avatar nwinter commented on July 20, 2024

@tips48 has started integrating ACE's new autocomplete to get started, but we'll need a way to feed in the available properties from Aether.

from codecombat.

nwinter avatar nwinter commented on July 20, 2024

@tips48 how far did you end up getting with this? Care to share any progress?

from codecombat.

karolrybak avatar karolrybak commented on July 20, 2024

It would be enough to allow to click-insert spells from available spells interface. Right now it's tedious to write commands, therefore inherently not fun for my kids :/.

from codecombat.

nwinter avatar nwinter commented on July 20, 2024

@dkundel has been working on this with Zatanna.

from codecombat.

dkundel avatar dkundel commented on July 20, 2024

BTW I think we can close this issue? We got the autocomplete and the click to insert snippets part.

from codecombat.

nwinter avatar nwinter commented on July 20, 2024

Yeah, it's largely done. I see a few issues remaining with it:

1. Autocomplete often inserts invalid code

screenshot 2014-08-11 12 57 11

screenshot 2014-08-11 12 57 20

I should be able to select the autocompletion even after typing this and have it work. It should also do the semicolon for me.

2. Autocomplete requires semi-advanced keypresses

I have to press either tab-tab, down-tab, or down-enter to trigger the first autocomplete snippet. I would prefer it if we can let them also just press tab to do the first one (or even enter if what they have typed couldn't be a valid end of line). Glen mentioned Ctrl+Space–I'm not sure how common that is, but if it's really standard, we might try to support it. I think it will conflict with keyboard input method selection shortcuts a lot of the time, though.

3. Autocomplete z-layering goes above spell palette

screenshot 2014-08-11 13 00 45

Should be easy to fix.

4. Autocomplete tries to complete when typing in a comment or string

screenshot 2014-08-11 13 02 06

5. Autocomplete maybe shouldn't autocomplete numbers

screenshot 2014-08-11 13 05 12

While it's cool that it can do that, this seems like it would be useful less of the time than it would be confusing.

At some point soon I think we're going to need to make the snippet insertion much smarter to take advantage of the available methods and only insert valid code (especially on iPad), but we can do that one in a separate issue.

from codecombat.

dkundel avatar dkundel commented on July 20, 2024
  1. Is kind of difficult to fix. I have it in mind but for now the quickest (appropriate) fix would be to actually not prefix with this. and I left out the semicolon because sometimes you want to have multiple statement in the same line (i.e. in an if statement). The problem is that some people actually reference this as $this or similar which gives it a different degree of complexity also with respect of parsing and understanding the code. The question is how much benefit this would give. Alternatively we could wrap the this. as an argument using the ${1:this.} syntax and this way you can quickly remove the statement.
  2. I'll look into that. I need to copy paste the default code again and override it similar as I did it with other parts of the ace code but it should be doable.
  3. Shall be fixed. Just need to find the z-index of the spell palette
  4. If I end up copy and pasting the code from ace to Zatanna then I can add this as well. For now I only included the code that leaves out information from the commented section to be offered as autocomplete suggestions.
  5. I thought I excluded them already but I'll add it.

from codecombat.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.