VEXCode Ideas, Bugs, and Issues

Hello,
I am working on a project, which is a template that improves the capability of VEXCode and gives it the same power as PROS in functionality, but that means I am stretching VEXCode to its limits with the IDE and compiler as a whole.

Some things with VEXCode, after stretching it nearly to its limits:

  1. Compiling and downloading gets really slow with multiple files and OOP
  2. Motors can be passed as reference, but I haven’t found any way to store motors as references in vectors (I know it’s possible to store regular reference variables in vectors, but I can’t find any way to do it with motors)
  3. The file management system in VEXCode is absolutely terrible. When you add a file into the project with a regular file explorer, the VEXCode software tends to just not add the files into the project. So now you are having to spend 30 minutes doing the same thing over again hoping it works, or create a new project and copy and paste files after files with new names after new names.
  4. You cannot create non-.cpp or .h files in VEXCode which is annoying. You’d have to create it in the explorer and roll a dice hoping that it shows in the software, as per #3
  5. Opening files in VEXCode is literally pain. Sometimes I want two tabs for like two .cpp files opened so I can switch between the two quickly. But usually whenever I open a new .cpp file, the previously focused .cpp file closes, which is ANNOYING
  6. It’s infuriating that you cannot have multiple VEXCode IDE’s open at the same time. It really makes multitasking difficult because I’d not have to physically upload my code to a different IDE like VSCode to move code from my project to a different project.
    6 has a solution which is File > New Window, thanks to @OscarMNOVA12 in the post below
  7. Why can’t you move files/directories in VEXCode? That’s weird

If there can be any information on how to improve these bugs, or release an update in the future to fix these bugs, it would be greatly appreciated.

Yes, I am aware that VEXCode is not meant for what it’s being used for. But I feel like “Pro” needs the capability for more extensive code, especially with VEX AI.

3 Likes

You can do this.

You just have to go to File > New Window. I have multiple VEXCode instances all the time.

7 Likes

I have never learned to use PROS and only use VEXcode “Pro”(I probably should learn PROS) and you are 100% right for 5 and 6 even when not pushing the limits. There are so many cases where you want to open files or different project with out having to push the limits. Just something I would want to do normally.

You can’t have multiple projects in one window(can you?). I am a lazy programer and don’t want to switch from one screen to another. It would be useful to have more than one project open, which is even nicer if you want to copy something from one project to another. Because I forget syntax all the time I tend to have to look at other projects to remember how to do it.(I also suck at reading APIs).

1 Like

Oh shoot, thank you!

I’m trying to see if I also missed some important things, and that’s one of them. Thank you, that helps a lot

1 Like

It looks like you can, but I may be mistaken. I opened up two projects as per instructions above but IDK how the system handles everything. I wish you can right click the VEXCode icon on taskbar in Windows and a button for “Open New Window” Exists. Sucks that it doesn’t.

EDIT: Found out you can left click the VEXCode icon on top left to instantly open up a new window which is convenient

1 Like

the only issue I see Is with okapi at the moment you can send 140 voltage to the chassis motors compared to vex automatically limiting it at 127

1 Like

You can get multiple tabs in a window.

You just have to double-click the file you desire to open in a new tab. If you just single click it, the tab will have italicized text and will close if you try to open another one.

It took me a while to figure that out.

3 Likes

I don’t know how you are storing references in vectors because, if you think about it, a pointer to a reference doesn’t make any sense . You can make a pretty simple wrapper class for a reference that can be used in arrays that stores the underlying value as a pointer. Mine looks like this:

template<class tp>
struct Ref {
  tp* val;
  Ref(){}
  Ref(tp& v){
    val = &v;
  }
  tp& operator*(){
    return *val;
  }
  operator tp& (){
    return *val;
  }
  operator tp*(){
    return val;
  }
  tp* operator->(){
    return val;
  }
};

Then it can be used as: std::vector<Ref<vex::motor>>
Then to access it, you just do: arr[0]->spin();

2 Likes

Some additional thought:
It would be really cool if there’s any information to use the vexcode compiler separately so I can code in visual studio instead, for instance. :slight_smile: May have the capability to be competitive with PROS

1 Like