Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do not reimplement ad-hoc comment scraper, use proper tools to extract this data #24

Open
haxscramper opened this issue Oct 18, 2021 · 1 comment
Labels
bug Something isn't working

Comments

@haxscramper
Copy link
Owner

haxscramper commented Oct 18, 2021

https://github.com/libgit2/libgit2/blob/2998a84ab644ad39b62553baf9c4b30269be7d75/include/git2/checkout.h#L107-L125

typedef enum {
	GIT_CHECKOUT_NONE = 0, /**< default is a dry run, no actual updates */

	/**
	 * Allow safe updates that cannot overwrite uncommitted data.
	 * If the uncommitted changes don't conflict with the checked out files,
	 * the checkout will still proceed, leaving the changes intact.
	 *
	 * Mutually exclusive with GIT_CHECKOUT_FORCE.
	 * GIT_CHECKOUT_FORCE takes precedence over GIT_CHECKOUT_SAFE.
	 */
	GIT_CHECKOUT_SAFE = (1u << 0),

	/**
	 * Allow all updates to force working directory to look like index.
	 *
	 * Mutually exclusive with GIT_CHECKOUT_SAFE.
	 * GIT_CHECKOUT_FORCE takes precedence over GIT_CHECKOUT_SAFE.
	 */
	GIT_CHECKOUT_FORCE = (1u << 1),

is wrapped as https://github.com/haxscramper/hlibgit2/blob/2b3ba88ffd4848b13d06cfd1843236df8aa563a0/src/hlibgit2/checkout.nim#L18-L40

  c_git_checkout_strategy_t* = enum
    c_GIT_CHECKOUT_NONE                         = 0 shl 0                                                                                   
    c_GIT_CHECKOUT_SAFE                         = 1 shl 0  ## default is a dry run, no actual updates                                       
    c_GIT_CHECKOUT_FORCE                        = 1 shl 1                                                                                   
    c_GIT_CHECKOUT_RECREATE_MISSING             = 1 shl 2  ## Allow checkout to recreate missing files                                      
    c_GIT_CHECKOUT_ALLOW_CONFLICTS              = 1 shl 4  ## Allow checkout to make safe updates even if conflicts are found               
    c_GIT_CHECKOUT_REMOVE_UNTRACKED             = 1 shl 5  ## Remove untracked files not in index (that are not ignored)                    
    c_GIT_CHECKOUT_REMOVE_IGNORED               = 1 shl 6  ## Remove ignored files not in index                                             
    c_GIT_CHECKOUT_UPDATE_ONLY                  = 1 shl 7  ## Only update existing files, don't create new ones                             
    c_GIT_CHECKOUT_DONT_UPDATE_INDEX            = 1 shl 8                                                                                   
    c_GIT_CHECKOUT_NO_REFRESH                   = 1 shl 9  ## Don't refresh index/config/etc before doing checkout                          
    c_GIT_CHECKOUT_SKIP_UNMERGED                = 1 shl 10 ## Allow checkout to skip unmerged files                                         
    c_GIT_CHECKOUT_USE_OURS                     = 1 shl 11 ## For unmerged files, checkout stage 2 from index                               
    c_GIT_CHECKOUT_USE_THEIRS                   = 1 shl 12 ## For unmerged files, checkout stage 3 from index                               
    c_GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH       = 1 shl 13 ## Treat pathspec as simple list of exact match file paths                       
    c_GIT_CHECKOUT_UPDATE_SUBMODULES            = 1 shl 16 ## Recursively checkout submodules with same options (NOT IMPLEMENTED)           
    c_GIT_CHECKOUT_UPDATE_SUBMODULES_IF_CHANGED = 1 shl 17 ## Recursively checkout submodules if HEAD moved in super repo (NOT IMPLEMENTED) 
    c_GIT_CHECKOUT_SKIP_LOCKED_DIRECTORIES      = 1 shl 18 ## Ignore directories in use, they will be left empty                            
    c_GIT_CHECKOUT_DONT_OVERWRITE_IGNORED       = 1 shl 19 ## Don't overwrite ignored files that exist in the checkout target               
    c_GIT_CHECKOUT_CONFLICT_STYLE_MERGE         = 1 shl 20 ## Write normal merge files for conflicts                                        
    c_GIT_CHECKOUT_CONFLICT_STYLE_DIFF3         = 1 shl 21 ## Include common ancestor data in diff3 format files for conflicts              
    c_GIT_CHECKOUT_DONT_REMOVE_EXISTING         = 1 shl 22 ## Don't overwrite existing files or folders                                     
    c_GIT_CHECKOUT_DONT_WRITE_INDEX             = 1 shl 23 ## Normally checkout writes the index upon completion; this prevents that.  

Which misses parts of the documentation comments. This is caused by incorrect boost::wave file expansion. I already have Doxygen XML parser, maybe I should use it directly, instead of reimplementing the own ad-hoc converter that does not even translate documentation comment semantics.

@haxscramper haxscramper added the bug Something isn't working label Oct 18, 2021
@haxscramper haxscramper changed the title Partially missing documentation comments for enum values Do not reimplement ad-hoc comment scraper, use proper tools to extract this data Oct 23, 2021
@haxscramper
Copy link
Owner Author

Related #16

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant