Improvements to the Help menu.
I really enjoy using BuildSettingExtractor and appreciate your efforts in maintaining it. I've been considering if there would be value in adding more useful content under the help menu.
Proposed Improvements
-
Complete Reference of Build Settings
- It would be beneficial to have a comprehensive reference of all build settings, similar to what was previously available at https://xcodebuildsettings.com or find some inspiration from The Unofficial Guide to xcconfig files.
-
Build Setting Transformations
- Including information on how to transform build settings could be very helpful for developers who need to modify settings based on different conditions or requirements. For inspiration please see http://codeworkshop.net/posts/xcode-build-setting-transformations
-
Conditional Build Settings
- Providing guidance on how to use conditional build settings could help streamline the build process and make it more flexible. For inspiration please see https://indiestack.com/2023/10/conditional-xcode-build-settings/
-
Optional Include (a la NetNewsWire repo)
- Implementing an "optional include" feature, as seen in the NetNewsWire repo, could allow users to selectively apply certain settings or configurations based on project needs.
-
Indexed Content
- It would be extremely nice if the content was proper indexed making it available for Spotlight to pickup :-)
These additions would significantly enhance the tool's value and usability for a wider range of developers.
Thank you for this issue @barkoded!
I think that all of these are great ideas, but I think 1 - 3 are separate documentation projects on their own. (And they are projects I have thought of—even have domain names for—but have not had time to do as of yet.)
I am curious. How do you see optional includes being used in what BuildSettingExtractor generates?
What content would you want to see indexed? Do you mean individual build settings and their definitions?
Thank you!
Hi @dempseyatgithub,
I find the approach to optional includes in NetNewsWire highly beneficial. By treating custom developer configurations outside of the Git repository, you avoid committing settings that are either experimental or specific to your local environment. This practice promotes clean, consistent build settings across different development setups and ensures that local configuration changes do not clutter the version control system.
Regarding the indexing feature, while I appreciate the idea of indexing both build settings and their definitions, limiting it to only the build settings would still be incredibly useful. I think it would be nice if searching for something like ON_DEMAND_RESOURCES_PREFETCH_ORDER then Spotlight could provide the associated definition. Maybe this is overkill?
I find the approach to optional includes in NetNewsWire highly beneficial. By treating custom developer configurations outside of the Git repository, you avoid committing settings that are either experimental or specific to your local environment. This practice promotes clean, consistent build settings across different development setups and ensures that local configuration changes do not clutter the version control system.
I agree with you completely regarding keeping developer configuration outside of the Git repository and this repo does use conditional build settings to allow for the same thing - although with a different location in the file system than NetNewsWire. (Issue #99 is to consider moving to exactly how NNW does it.
And if I were to do some kind of small book about build settings, I would definitely include conditional imports.
But, in terms of the xcconfig files that BuildSettingExtractor generates, I don't think there's a use case for using conditional imports in the generated files.
I was thinking that the Help could somehow serve as a one-stop shop for all things related to xcconfig and build settings in general. That would hopefully make the tool more useful than once per project due to the comprehensive content in the help system. Maybe you could even ask different authors to provide short explanations of various topics so you don't have to create all the content yourself - like a community effort.
I appreciate the suggestion @barkoded and understand your point.
I think comprehensive documentation of xcconfg files and build settings is beyond the scope of the app project itself though. I could see linking out to other existing things from the help menu, but those other things being separate projects / efforts.
I will keep this issue open though - because BuildSettingExtractor should at least include help for the tool itself.