felipemanga / femtoide Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Runtime.getRuntime().freeMemory() and totalMemory()
Java's inner classes don't have an exact counterpart in C++:
class Outer {
int a;
class Inner {
int b;
int sum(){
return a + b; // see what I mean?
}
}
}
Support for converting floats into strings hasn't been implemented yet.
As a result, trying to print a float to the screen results in the fractional part being clamped off.
Also, trying to concatenate with a string (String x = "bacon " + 5.0f";
) results in a cryptic error.
Citing a wise man:
the compiler doesn't include classes that are never actually used.
ideally it should ignore the implements
The IDE should download and install updates to itself, the PokittoLib, the compilers, etc.
Now is missing:
It might be better to bundle Clang with the IDE than GCC.
Pros and cons need to be investigated.
Add some basic functionality to find all references of methods invocation and definition.
E.g. if I add a new file to the source folder, say "zombie.java", the file is recognized and appears to the list automatically, but it do not end up in the correct position alphabetically.
Files with "Copy to SD" enabled should be added to an image of the SD-card and passed to the emulator.
This flow has not been completely implemented yet.
It would be a nice addition allow folders inside the project to be collapsed.
In such way the tree view would be more compact in large project.
Right now there's a mix of emacs (Control+W to cut, Control+Y to paste) and regular shortcuts.
Files in the tree view should have an indication if they:
Current UI is just a pile of input tags.
This can't work right now:
public enum BodyTypes{NONE,BARBARIAN,WIZARD}
switch (bodyTypes)
{
case BodyTypes.BARBARIAN:
bodies[i] = new BodyBarbarian(x, y);
break;
case BodyTypes.WIZARD:
bodies[i] = new BodyWizard(x, y);
break;
}
Edit menu:
Looking for alternatives: https://github.com/google/code-prettify
Seems to support both java, c, c++
Enums in Java are more like classes in C++ and can have methods.
Preferably should be implemented in a way that doesn't take up RAM, if possible.
Just need to setup a template project.
Add code completion, for Femto library, variables and methods.
import NonExistant;
class X {
NonExistant field;
}
Result: compiler breaks with a stack overflow.
This is necessary for containers like List and Vector.
Not very high-priority as these things are rather memory-hungry for microcontrollers.
Create a build:
FemtoIDE --build path/to/project.json
Watch project files for changes, build automatically:
FemtoIDE --watch path/to/project.json
Create a project:
FemtoIDE --create projectName templateNumber
Currently, only 1-D arrays are supported. Arrays-of-arrays, and arrays-of-objects in general, take up too much RAM.
Currently not using Bresenham's line drawing algorithm.
It would be nice to have some official instructions for building the ide from source. I have swung together something (using NW.js and copying the linux directory from an official release), but it is definitely different from the way that the official releases are constructed which maybe could cause a problem. Even if anything built by users isn't necessarily stable, it can help a lot with checking if bugs exist on the master branch before reporting them, and also with potentially getting new developers.
Could be something basic like a change and replace on all project files.
Current implementation is prone to stackoverflows on deep object graphs if low on free RAM.
Make it easier to import files that aren't directly supported by the editor.
When a file is written by an external editor, the IDE should reload it automatically.
Tested with version 0.0.13b.
Probably never worked correctly on FemtoIDE.
I have an Italian Keyboard Win10.
Works correctly on Pokitto.
For convenience Code to reproduce:
import femto.mode.HiRes16Color;
import femto.Game;
import femto.State;
import femto.input.Button;
import femto.palette.Psygnosia;
import femto.font.TIC80;
class Main extends State {
public static void main(String[] args) {
HiRes16Color screen = new HiRes16Color(Psygnosia.palette(), TIC80.font());
screen.setTextColor(15);
while (true) {
screen.clear(0);
screen.setTextPosition(10, 10);
if (Button.A.isPressed()) {
screen.print("A Pressed");
}else{
screen.print("A NOT Pressed");
}
screen.setTextPosition(10, 20);
if (Button.B.isPressed()) {
screen.print("B Pressed");
}else{
screen.print("B NOT Pressed");
}
screen.setTextPosition(10, 30);
if (Button.C.isPressed()) {
screen.print("C Pressed");
}else{
screen.print("C NOT Pressed");
}
// Update the screen with everything that was drawn
screen.flush();
}
}
}
System.out.println("systemtime=" + System.currentTimeMillis());
result:
systemtime=-1555263994
Pokitto has division code built-in. Use it.
Allow large projects to be debugged in the emulator by adding extra flash space.
This compiles:
int[] testarray = new int[5];
but this result an error:
boolean[] testarray = new boolean[5];
TypeError: Cannot convert undefined or null to object
Related error: #52
Would be good to see what's in the stack without having to use the log.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.