2015 preview only. UHS - Unified Header SourceNote: This documentation is super raw, tell me what your missing and il add it :)
No more time spent on managing headers and wondering about what goes where! MVP!This project is currently only an MVP (Minimum Viable Product). It is delivered with known performance issuesand limited functionality to mainly prove a case and get feedback. Support for macros is for example very limited. I want to have a an early and tight release schedule to make sure I am actually developing something you folks want. Problem statementThe design decision to separate implementation from interface into .cpp and .h files where of great success. It contributes to less dependencies, faster compile times and allows closed source library developers to provide an open clear interface while hiding implementation details. However, the fact remains that remains that understanding C++ header-source semantics is something newcomers have a hard time with. For even the most perceptive C++ developers, excessive management of headers can get cumbersome. Because of the tight coupling of header and source files, there is a lot of replicated information which means one often has to change because of the other. Not only do developers need to spend time navigate between the files, but they also need to take time to remember in which file they should be looking. Solution: UHSUHS (Unified Header Source), is a unified header AND source format, where the developers write both their declarations and implementations. Every time a UHS document is saved, the uhspackage hooks into visual studio's parser and generates the necessary header and the necessary source. Pure magic. This means:
How to useRight click on your project and click add->New item (Ctrl+Shift+A). In the new file dialog select, name the file to end with.uhs (examples: main.uhs , myclass.uhs). That’s it. Now, whenever you save that file, the uhspackage will understand it’s a UHS file and generate the necessary files. Contact and ContributionAppart from using the FAQ here, you are free to contact me personally if you either are interested in helping me out or have any inqueries about the final product on my email: What to do next
Currently when macros are used to change the semantics and syntax of the language, for example having macros that expand to keywords like class or braces will not get parsed. I would like to avoid having to implement my own macro expander. But this depends solely on what people require (personally I have little issues with discouraging macro usage).
Currently every time you save a .uhs file the whole file needs to be reparsed. This has to change.
There are most likely some wierd combination of cases i that generates something unwanted and deffinitly cases i havent even tought about implementing yet. C++ is a huge language. This is one of the main reasons i need human testing feedback, to come up with good test cases for the suit.
Having to manually change the file ending to .uhs is annoying, better to have a file template selectable in the add item dialog. All feedback is appreciated. Yours truly, David.
CHANGELOG
|