예제 #1
0
        public Span <CXToken> Tokenize(CXSourceRange sourceRange)
        {
            CXToken *pTokens; uint numTokens;

            clang.tokenize(this, sourceRange, &pTokens, &numTokens);
            return(new Span <CXToken>(pTokens, (int)numTokens));
        }
예제 #2
0
 public CXString GetFixIt(uint fixIt, out CXSourceRange replacementRange)
 {
     fixed(CXSourceRange *pReplacementRange = &replacementRange)
     {
         return(clang.getDiagnosticFixIt(this, fixIt, pReplacementRange));
     }
 }
예제 #3
0
 public CXString GetFixIt(uint completionIndex, uint fixitIndex, out CXSourceRange replacementRange)
 {
     fixed(CXCodeCompleteResults *pThis = &this)
     fixed(CXSourceRange * pReplacementRange = &replacementRange)
     {
         return(clang.getCompletionFixIt(pThis, completionIndex, fixitIndex, pReplacementRange));
     }
 }
예제 #4
0
        public Span <CXToken> Tokenize(CXSourceRange sourceRange)
        {
            CXToken *pTokens; uint numTokens;

            clang.tokenize(this, sourceRange, &pTokens, &numTokens);

#if NETSTANDARD
            var result = new CXToken[checked ((int)numTokens)];

            fixed(CXToken *pResult = result)
            {
                var size = sizeof(CXToken) * numTokens;

                Buffer.MemoryCopy(pTokens, pResult, size, size);
            }

            return(result);
#else
            return(new Span <CXToken>(pTokens, (int)numTokens));
#endif
        }