CodinGame Sync Beta


#1

Hi Coders,

I’m pleased to present you: CodinGame Sync, a Chrome Application/Extension that allows you to synchronize an external file with the CodinGame Editor via file sharing, so you can use your own native code editor.

Please, share us your feedback/bugs.

How to Install:

You have just to install the application AND the extension from the Chrome Store:

OR

~~~~~~~~~~ ~~~~~~~~~~


What CodinGame Sync can do for me?

  • Synchronize a file used in your own code editor with CodinGame Editor and vice-versa
  • Can be configured to automatically launch a play after a code change
  • Prompt you to save your code after a “Fight in Arena” submit
  • Can do all these things in background or windows mode
  • Neither the application nor the browser does need the focus to be synchronized (quite cool for those with multiple screens)
  • And with a lot of options to suit all your needs
  • ….

Why do I have to install an Application + Extension?

The new Google SLA now differentiate the file system (i.e. your pc) and the DOM (the content of a web page).
So, we had to create:

  • a Chrome Application that allows CodinGame Sync to access your file system in Read/Write mode (don’t worry, only the file and / or the history of synchronized files are accessed :D)
  • a Chrome Extension that allows CodinGame Sync to interact with the DOM (only on the codingame.com domain)

All data and permissions used by CodinGame Sync are visible in your Chrome 'Extensions' panel details.


How can I use CodinGame Sync?

After installing the application and the extension, it’s possible to launch the application via
Settings => Use an external code editor, in the IDE CodinGame (in the same menu as the one you use for changing the coding language)

. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Only 2 remaining steps, and you'll be free to code in your own code editor:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Pro-tips N°1: Do NOT use a file used by your operating system :D.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .


Useful information:

Latest Version: 1.1.1 BETA
Downloadable here: App & Extension
Minimum Chrome version: 35

Works with:

  • Ubuntu x64, Chrome 41
  • Windows 8.1 x64, Chrome 41
  • Windows 10 Preview x64, Chrome 41
  • MacOS , Chrome 41
  • Should work with Chromium too but the icon remains when you're no longer in the IDE.
  • (let us know what else works and what doesn't…)

Works with (UTF-8) :

  • Gedit, Notepad++, Brackets, NetBeans, Eclipse Luna, Visual Studio 2013, WebStorm, IntelliJ, PHPStorm, Aptana Studio, Komodo, SublimeText, PyCharm...
  • (let us know what else works and what doesn't…)

Limitations/Known bugs:

  • Works only if a single browser tab is opened on a link ‘www.codingame.com/ide/XXX’
  • Uses one file for all puzzles

#7

My favorite settings :

Auto Start : 'OFF'
Auto Background : 'OFF'
Auto Play : 'ON'
Auto BackUP : 'ON'
2-WAY : 'ON'
First Action : DOWNLOAD

Using with : Brackets or Visual Studio

What are yours ?


#8

Awesome, now I can use WebStorm for my Dart files.
Will check it out smile

Great job, well done!


#9

Tried it with MacOS X Yosemite 10.10.2 + Chrome Version 41.0.2272.101 (64-bit) - no success so far, the app won't start from the Chrome App Launcher.


#10

@ronlobo : Yep, it's normal, the app must be launch from the CodinGame IDE, in the Settings Panel.

Unfortunately, the app is added to the Chrome App Launcher by default, even if we don't use this function.

If the extension and application are installed , the extension will remove the link "Install" and the ON / OFF button will be available.

I hope it works, it has already been tested on Mac cry


#11

Hey @SaiksyApo,

Thanks for the follow up.

Was just wondering why MacOs is not under "Works with:" at useful information.

Will test tomorrow,

Greets


#12

@SaiksyApo Works awesome, just tested on MacOS sunny

My favorite settings :

Auto Start : 'ON'
Auto Background : 'ON'
Auto Play : 'ON'
Auto BackUP : 'ON'
2-WAY : 'ON'
First Action : ASK
Debug: ON

Using with : WebStorm


#13

OMG OMG OMG, I need to test ! That sound so goooooooooooooooooooooooooooood smiley

EDIT: SO GOOOOOOOOOOOOOOOOOOOOOOOOD <3 THX !


#14

Just found a bug, maybe.

I was using the plugin then i opened a new page with another challenge, here the plugin tells me it can't sync anymore it's okay. But then i closed one page so that only one "challenge page" is remaining but i cannot turn the plugin on anymore ; the popup appears then close immediatly.

Even after refreshing the page it still doesn't work :/

=> Chrome restart made it work again , but it was mainly to let you know. I love this plugin by the way ! Another thing while i'm at it, the plugin sees the in and out text files as challenges page because of their /ide root , would be less annoying if it doesn't


#15

Ty, I like this kind of feedback, i knew this bug but i can't reproduce it, i'll try to fix it with what you said tonigth (or as soon as i can stuck_out_tongue)

EDIT 03/26/2015 18:00 :

  • I found the fileservlet problem, i'll try to fix it soon.
  • I can't reproduce the ON/OFF (auto OFF) bug when i want to, if anyone can provided me the steps and settings he/she used to reproduce this bug everytime, it will be awesome.

#16

I didn't exactly manage to reproduce the problem but then it appeared again.
This time i had the list of puzzles page opened and I Ctrl-clicked multiplayer training.
From here i clicked on The Great Escape then i tried switching on the external editor but again it turned itself back off.

If it can help you, i had left the last puzzle without closing my IDE nor the file i was coding into and didn't properly close the plugin window too.

Plugin settings :
Auto start off
Auto background off
Auto play on
2Way data binding off
Default action : Ask
Debug local cache on


#17

I fixed the 3/4 known bugs. However, I will release the new version on Tuesday (04/14/2015), if it does not bother you.

Meanwhile, I want to improve the server side of the plugin.

Thanks a lot for your feedbacks.

EDIT 04/07 17:43 : The plugin is ready but the release will be postponed to Tuesday 14 (or not) due to the CodinGame For Compagnies release last week. Sorry guys


#18

Hey @SaiksyApo,

Any plans on allowing file imports with CodinGame Sync by choosing a folder for imports?

That would give us the ability to split our code from one file to several files and have a clean file structure, separating our Models, Controllers and Services wink

Thanks in advance!


#19

Nope ! stuck_out_tongue

I asked for it in my previous Question Time, but no one answered... frowning

BUT ! According to your language, u can synchronize the plugin with a file generated by a tool like Grunt i guess (or any self-made script).


#20

Yes, it might be possible to do this with grunt or gulp somehow.

In Dart for example, it'd be great to overwrite the pubspec.yaml file smiley


#21

Hey @SaiksyApo,

After syncing with a local file and opening a new puzzle it still has the file from the previous puzzle activated. It's possible to unselect the previously edited file?

It just happened that I accidentally overwrote a file from a puzzle, local and remote.
Where is the undo button wink


#22

@ronlobo,

Yep, the plugin uses/and memorizes only one file, I considered that the save is in the Codingame side. (It was already written in the Limitations !)

However, you can change the synchronized file when we prompt the first action panel (DOWNLOAD/UPLOAD), in the top bar : Change local file / Hide

The button UNDO is still CTRL+Z smiley, i tried to not send the same code again and again, so the last action can always be undo. cry


#23

Hey @SaiksyApo,

it'd be awesome if it could save the file for given puzzle.
Sometimes you switch from one to another and the old file used for this puzzle could be reselected somehow smiley


#24

Yes this kind of system would be great !

Until now what I do is I keep a "main" file with current puzzle then when I change I just copy my code to another file with explicit name that refers to the puzzle.

This is good as long as i don't switch too often but integrated functionnality would be way better smile


#25

Hi,

It's a complete different workflow, we didn't create the plugin that way, and unfortunately, i don't have enough time to do it.

Main goal : Use an external IDE instead the built-in Ace Editor.

Predicted workflow :

  • The user create ONLY ONE file or project to use CodinGame in his computer like Codingame.txt.
    (PS : Advanced: A GitFolder with a generated file using Grunt enable the user to keep tracking and use multiple files)
  • The user synchronize the plugin with the file
  • When a puzzle is loaded, the code is write in the file then the synchronization is just about upload the new content
  • The file content is saved Codingame-side when the user leave the IDE. There's no purpose to save the code in the user's computer.
  • The end stuck_out_tongue

Moreover, your solution is not scalable (work now because we have a few number of puzzles, but when we will release our question/game editor or massive new content, it will not be the same smile)

BUT, don't forget the plugin will be open-sourced in few weeks/months, so you will be able to create your own plugin.