-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Koichi Shiraishi <[email protected]>
- Loading branch information
Showing
8 changed files
with
203 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,7 +9,7 @@ on: | |
- "main" | ||
|
||
env: | ||
LLVM_VERSION: 11 | ||
LLVM_VERSION: 12 | ||
|
||
jobs: | ||
test: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
#include <stdint.h> | ||
|
||
/*===-- clang-c/Rewrite.h - C CXRewriter --------------------------*- C -*-===*\ | ||
|* *| | ||
|* Part of the LLVM Project, under the Apache License v2.0 with LLVM *| | ||
|* Exceptions. *| | ||
|* See https://llvm.org/LICENSE.txt for license information. *| | ||
|* SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception *| | ||
|* *| | ||
|*===----------------------------------------------------------------------===*/ | ||
|
||
#ifndef LLVM_CLANG_C_REWRITE_H | ||
#define LLVM_CLANG_C_REWRITE_H | ||
|
||
#include "clang-c/CXString.h" | ||
#include "clang-c/ExternC.h" | ||
#include "clang-c/Index.h" | ||
#include "clang-c/Platform.h" | ||
|
||
LLVM_CLANG_C_EXTERN_C_BEGIN | ||
|
||
typedef void *CXRewriter; | ||
|
||
/** | ||
* Create CXRewriter. | ||
*/ | ||
CINDEX_LINKAGE CXRewriter clang_CXRewriter_create(CXTranslationUnit TU); | ||
|
||
/** | ||
* Insert the specified string at the specified location in the original buffer. | ||
*/ | ||
CINDEX_LINKAGE void clang_CXRewriter_insertTextBefore(CXRewriter Rew, CXSourceLocation Loc, | ||
const char *Insert); | ||
|
||
/** | ||
* Replace the specified range of characters in the input with the specified | ||
* replacement. | ||
*/ | ||
CINDEX_LINKAGE void clang_CXRewriter_replaceText(CXRewriter Rew, CXSourceRange ToBeReplaced, | ||
const char *Replacement); | ||
|
||
/** | ||
* Remove the specified range. | ||
*/ | ||
CINDEX_LINKAGE void clang_CXRewriter_removeText(CXRewriter Rew, CXSourceRange ToBeRemoved); | ||
|
||
/** | ||
* Save all changed files to disk. | ||
* Returns 1 if any files were not saved successfully, returns 0 otherwise. | ||
*/ | ||
CINDEX_LINKAGE int clang_CXRewriter_overwriteChangedFiles(CXRewriter Rew); | ||
|
||
/** | ||
* Write out rewritten version of the main file to stdout. | ||
*/ | ||
CINDEX_LINKAGE void clang_CXRewriter_writeMainFileToStdOut(CXRewriter Rew); | ||
|
||
/** | ||
* Free the given CXRewriter. | ||
*/ | ||
CINDEX_LINKAGE void clang_CXRewriter_dispose(CXRewriter Rew); | ||
|
||
LLVM_CLANG_C_EXTERN_C_END | ||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
package clang | ||
|
||
// #include "./clang-c/Rewrite.h" | ||
// #include "go-clang.h" | ||
import "C" | ||
import "unsafe" | ||
|
||
type Rewriter struct { | ||
c C.CXRewriter | ||
} | ||
|
||
// Insert the specified string at the specified location in the original buffer. | ||
func (r Rewriter) InsertTextBefore(loc SourceLocation, insert string) { | ||
c_insert := C.CString(insert) | ||
defer C.free(unsafe.Pointer(c_insert)) | ||
|
||
C.clang_CXRewriter_insertTextBefore(r.c, loc.c, c_insert) | ||
} | ||
|
||
// Replace the specified range of characters in the input with the specified replacement. | ||
func (r Rewriter) ReplaceText(toBeReplaced SourceRange, replacement string) { | ||
c_replacement := C.CString(replacement) | ||
defer C.free(unsafe.Pointer(c_replacement)) | ||
|
||
C.clang_CXRewriter_replaceText(r.c, toBeReplaced.c, c_replacement) | ||
} | ||
|
||
// Remove the specified range. | ||
func (r Rewriter) RemoveText(toBeRemoved SourceRange) { | ||
C.clang_CXRewriter_removeText(r.c, toBeRemoved.c) | ||
} | ||
|
||
// Save all changed files to disk. Returns 1 if any files were not saved successfully, returns 0 otherwise. | ||
func (r Rewriter) OverwriteChangedFiles() int32 { | ||
return int32(C.clang_CXRewriter_overwriteChangedFiles(r.c)) | ||
} | ||
|
||
// Write out rewritten version of the main file to stdout. | ||
func (r Rewriter) WriteMainFileToStdOut() { | ||
C.clang_CXRewriter_writeMainFileToStdOut(r.c) | ||
} | ||
|
||
// Free the given CXRewriter. | ||
func (r Rewriter) CXRewriter_Dispose() { | ||
C.clang_CXRewriter_dispose(r.c) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.