sublimehq / sublime_text

Issue tracker for Sublime Text
https://www.sublimetext.com
809 stars 39 forks source link

Allow platform specific .sublime-build files #1311

Open keith-hall opened 8 years ago

keith-hall commented 8 years ago

Currently it is not possible to create a build system specifically for a single platform. One can use the windows/mac/linux keys to change how a build system will act on different systems, but there is no way to not even show the build system for a specific platform.

For example, even not setting a shell_cmd for a platform, it still shows in the build system menu.

I propose that it be possible to create .sublime-build files with a OS name suffix, just like keybindings, settings and menus have. i.e. name (Windows).sublime-build, name (Linux).sublime-build etc.

This will allow creating build systems for only the platforms where it is applicable. Windows batch files come to mind as one example. Then, packages can still provide syntax highlighting for users to edit code on other platforms, just not execute the build system.

https://forum.sublimetext.com/t/is-it-possible-to-create-a-build-system-for-only-one-specific-platform/22028

rwols commented 7 years ago

How would this interact with build systems defined in a .sublime-project?

keith-hall commented 7 years ago

@rwols as the name key in build systems that are part of .sublime-project files seem to be resolved using the same codepath as standalone .sublime-build files, I imagine the answer is that, once this is implemented, one could tack on (Platform) to the name value to get the proposed behavior in .sublime-project files. (See also https://www.sublimetext.com/docs/3/projects.html where it shows that name is mandatory for build systems in .sublime-project files.)

i.e.

"build_systems":
    [
        {
            "name": "Example (Linux)",
            // ...