Tool [Release] Atom Starbound-Modding-Suite

Discussion in 'Starbound Modding' started by C0bra5, Jun 25, 2017.

  1. C0bra5

    C0bra5 Oxygen Tank

    THIS PROJECT IS CURRENTLY DEAD AND NON-FUNCTIONAL DUE TO ATOM'S DEPRECIATION BY GITHUB. THE PACKAGE MANAGER FOR ATOM (APM) IS DEAD AND THE SUITE CAN NO LONGER BE DOWNLOADED BY ATOM NOR DOES IT'S DEPENDENCIES. I AM CURRENTLY MOVING THE TOOLSET TO VISUAL STUDIO CODE, STAY TUNED FOR FURTHER UPDATES.

    What is this?

    It's a suite of packages, a.k.a plugins for Atom that are all made to help with starbound mod development.

    What is Atom?
    An amazing platform independent text editor that allows its users to customize it to no end. Atom is a text editor made with <3. I honestly can't really describe how practical it is. It's free and it works very well. more info at https://atom.io/

    What can the packages do, and why should I use it?
    They will identify Lua and JSON errors in your files.
    The Lua autocomplete includes all the documentation from the Lua API and can understand return types properly.
    A code coloring for Lua that actually understands complicated multi-line comments using --[==[ and --]==] or any other variant
    Press F9 and starbound will launch, and in the atom window, you'll be able to see a live view of your log.
    Many of the errors that can happen when a crash happens have been documented and will show up the "linter ui".
    Here is a picture if you're more of the visual type.
    upload_2017-7-8_14-40-4.png upload_2017-7-8_15-47-39.png upload_2017-7-8_16-31-55.png

    How do I use/install it?
    1. Install Atom: https://atom.io/
    2. Open Atom
    3. In atom open the settings, it can be done quickly by pressing control+comma
    4. In settings, open the install tab
    5. Look for starbound-modding-suite in the available packages
    6. Install the package with this exact name: starbound-modding-suite
    7. It will ask you to install its dependent packages, install them all, and some of these packages will also want you to install some more dependent packages, install these too.
    8. restart atom
    9. press f9 and enjoy.
    My starbound isn't installed in the usual place or I don't use windows?
    open the atom settings, open the packages tab and look in the community packages for the starbound-build package, there is a list of presets, but if you want to set it manually use the second field.
    upload_2017-6-25_15-42-15.png

    I found a bug what can I do?
    You can hit me up on the discord modding channel for a quick response as I am almost always there. you can post in this thread with a screenshot of the problem and a description of what is happening. You can open an issue on GitHub and let me know what's happening. Or if you want to help you can give any of the plugins a look.
     
    Last edited: Jul 24, 2022
  2. C0bra5

    C0bra5 Oxygen Tank

    Welp here is what's coming next

    After an entire day of starting from scratch and making a new JSON auto-complete plugin entirely,
    JSON autocomplete and documentation here is a sneak peek at it:
    upload_2017-6-30_21-36-36.png upload_2017-6-30_21-37-39.png upload_2017-6-30_21-38-3.png
     
    The | Suit likes this.
  3. katana

    katana Scruffy Nerf-Herder

    Be mindful that if https://github.com/codenothing/jsonlint/issues/4 is ever fixed, you will notice that your starbound-linter-json module will break hardcore the moment you bump the dep (though it's not been updated in years, so that's unlikely).

    Also you listed starbound-pretty-json twice. :)
     
  4. C0bra5

    C0bra5 Oxygen Tank

    I'd say that's probably for the best as the codexes use these linebreaks for ease of formatting, and I don't see why it would. but anyway all I have to do is copy the current build over and include the current MIT license with it and the problem goes away, though I don't see how that will break the package unless they, themselves, break the package.
    upload_2017-6-30_23-54-17.png

    as for the starbound-pretty-json getting listed twice I just fixed that, thanks for noticing
     
  5. katana

    katana Scruffy Nerf-Herder

    As long as you're using the appropriate version string in package.json, should be fine. I just noted it because I was curious if you'd end up running into the same issue I did - namely, the multiline string bs in the codexes. Caught me by surprise - I had to work around it with the npm package I'm using for validation myself.
     
  6. IonTichy

    IonTichy Master Chief

    Nice project!
    And you beat me to it, was working on something similar but had no time to finish it the last few weeks.

    Edit: just had a quick skim over your repos and I love how you extended existing packages to fit your needs! I was trying to implement everything from scratch, which of course led to time wasted on stupid little problems and inhibited progress towards finishing any component truly.
    Will definitely take a lesson from this ;)
     
    Last edited: Jul 1, 2017
  7. C0bra5

    C0bra5 Oxygen Tank

    starting from a template is always a good idea, but sometimes you just have to start from scratch.

    For example, I Gave the lua-autoautocomplete a major overhaul, first the way it documented things was... bad, it was hard to understand and wasn't actually consistent, I took note of that and more or less fixed all that I could.

    But the json-autocomplete, that thing had even worst documentation format, here is their patch schema: http://json.schemastore.org/json-patch it's kinda hard to understand at first glance and expanding on it would require me to add the documentation to the official json schema store list, which let's face it they don't need/want me to, so I decided to start from scratch and make it expandable, and easier to work with, I'm trying to find a way to not have to use Capital PI, Π, as a way to escape element naming problems, but so far it's the best way to do so, I'll probably push an update on the starbound-autocomplete-json package later today so that people can see what I mean.

    A good recommendation would be to usually fork the original repos, but since I want the starbound related issues and bugs to be sent my way and not the way of the original packages, I decided to copy the repos and not fork them as it would make it harder for beginners to get confused which package to send their feedback to. I still keep the links for the ones that still use original code, but let's just say that the json autocomplete is about to loose it's link.
     
  8. C0bra5

    C0bra5 Oxygen Tank

    The JSON autocomplete and documentation is rolling out, enjoy!
    it's currently available for active items and patch files

    upload_2017-7-1_22-51-17.png upload_2017-7-1_22-50-17.png
     
    Inf_Wolf14 likes this.
  9. Aethio

    Aethio Void-Bound Voyager

    Outstanding! I've steadily been growing more used to Atom's LACK of recognition for some of the JSON that Starbound oh-so-prominently features (I'm new to the language) and this... well, let's just say it's rather helpful beyond quantifiable measure.

    Keep it up!
     
  10. Chofranc

    Chofranc Pangalactic Porcupine

    Nice package, i use a lot atom for starbound modding, this makes things easier. Keep up with the great work.
     
  11. C0bra5

    C0bra5 Oxygen Tank

    I've posted a bunch of updates recently so here is what happened:

    Better JSON color-coding / syntax-highlighting
    Green blocks of text are boring and a bit hard to read, let's make it easier to read and add some colors.
    upload_2017-7-8_16-54-21.png

    You can now set a path to the luaJIT executable
    In the package settings, you can now set your own path.
    upload_2017-7-8_16-54-5.png

    JSON autocomplete works when a comment is present before the cursor
    In the package settings, you can now set your own path.
    upload_2017-7-8_16-57-2.png

    Added some more JSON autocomplete documentation and suggestions
    Started working on projectile parameters/projectiles. not implemented for projectile files yet.

    Fixed the JSON autocomplete not working in multielement arrays passed after the first element
    That somehow slipped passed my radar but is now fixed.

    Added missing MIT licenses
    Some modified packages were still missing their original MIT license, now they should all be in there.
     
  12. lyrael_rayne

    lyrael_rayne Big Damn Hero

    I haven't used this much (or done much modding of SB in general) but already I can see this being incredibly helpful. Thanks!
     
  13. C0bra5

    C0bra5 Oxygen Tank

    With today's' new major change, which is getting rid of the luajit requirement, I'd thought it would be a good idea to post an update on what has been happening throughout the packages.

    open-unsupported-files got fixed
    It wasn't actually working at all, so I made it work again.

    Performance improvements for the JSON auto-complete package
    note to self: don't use look ahead for live stuff again.

    removed useless text entries in the Lua auto-complete
    Sometimes you'd get a lot of useless entries in the auto-complete that came from incomplete user entries.

    added some new 1.3+ entries for the Lua auto-complete
    Some new stuff in the player table getting added such as player.isAdmin and expanding the ways something can be documented.
    also expanded the documentation of some of the vanilla entries.

    added a way for the Lua autocomplete to propose values/function declared after the cursor
    it ignores scopes, allowing you to get the autocomplete for a function/value when the cursor is before where it was declared or modified
    upload_2017-9-8_21-36-42.png upload_2017-9-8_21-36-49.png

    fixed a priority issue with .luacompleterc entries
    Some stuff was causing issues with the way the personal documentation files were being registered, so I disabled their cache and changed their priority.

    added a way to scroll horizontally in the live log and fixed the wrapping issue, by simply stopping it from wrapping.
    2017-09-08_21-40-30.gif
     
  14. Magmatico

    Magmatico Void-Bound Voyager

    is there any way to use this while at the same time using the workshop? (on steam)
    other than that, O U T S T A N D I N G.
     
  15. Goat Plushie

    Goat Plushie Void-Bound Voyager

    I don't know where to find the link to the Discord modding channel and need help. Where would I find that? I've only used Discord like once before and it's still very confusing.
     
  16. C0bra5

    C0bra5 Oxygen Tank

    Go to https://www.discord.gg/starbound and you should be able to join the official starbound discord server. The #modding channel is under the community_channels category.

    Sent from my Moto G (5) using Tapatalk
     
    Goat Plushie likes this.
  17. Goat Plushie

    Goat Plushie Void-Bound Voyager

    Thanks!
     
  18. AbsoluteXeroEX

    AbsoluteXeroEX Phantasmal Quasar

    As much as I like Notepad++, I think Atom just became my new favorite text editor thanks to your package suite here. Thank you!
     
    C0bra5 likes this.
  19. Magmatico

    Magmatico Void-Bound Voyager

    true there. but i only use Atom for lua, because im too familiar with N++ for json, and i dont need linting for it anymore :p
     
  20. AbsoluteXeroEX

    AbsoluteXeroEX Phantasmal Quasar

    *nods*

    I've spent years coding in HTML/CSS/JS and others, and I still make mistakes from time to time, so Atom is a huge help for me.
     

Share This Page