Example #1
0
 public bool TryIndexTranslationUnit(CXClientData clientData, ReadOnlySpan <IndexerCallbacks> indexCallbacks, CXIndexOptFlags indexOptions, CXTranslationUnit tu)
 {
     fixed(IndexerCallbacks *pIndexCallbacks = indexCallbacks)
     {
         return(clang.indexTranslationUnit(this, clientData, pIndexCallbacks, (uint)indexCallbacks.Length, (uint)indexOptions, tu) == 0);
     }
 }
        public void GetInclusions(CXInclusionVisitor visitor, CXClientData clientData)
        {
            var pVisitor = Marshal.GetFunctionPointerForDelegate(visitor);

            clang.getInclusions(this, pVisitor, clientData);
            GC.KeepAlive(visitor);
        }
Example #3
0
        public CXVisitorResult VisitFields(CXFieldVisitor visitor, CXClientData clientData)
        {
            var pVisitor = Marshal.GetFunctionPointerForDelegate(visitor);
            var result   = (CXVisitorResult)clang.Type_visitFields(this, pVisitor, clientData);

            GC.KeepAlive(visitor);
            return(result);
        }
Example #4
0
        public CXChildVisitResult VisitChildren(CXCursorVisitor visitor, CXClientData clientData)
        {
            var pVisitor = Marshal.GetFunctionPointerForDelegate(visitor);
            var result   = (CXChildVisitResult)clang.visitChildren(this, pVisitor, clientData);

            GC.KeepAlive(visitor);
            return(result);
        }
Example #5
0
        public bool TryIndexSourceFileFullArgv(CXClientData clientData, ReadOnlySpan <IndexerCallbacks> indexCallbacks, CXIndexOptFlags indexOptions, string sourceFilename, ReadOnlySpan <string> commandLineArgs, ReadOnlySpan <CXUnsavedFile> unsavedFiles, out CXTranslationUnit tu, CXTranslationUnit_Flags tuOptions)
        {
            using var marshaledSourceFilename  = new MarshaledString(sourceFilename);
            using var marshaledCommandLineArgs = new MarshaledStringArray(commandLineArgs);

            fixed(IndexerCallbacks *pIndexCallbacks = indexCallbacks)
            fixed(CXUnsavedFile * pUnsavedFiles = unsavedFiles)
            fixed(CXTranslationUnit * pTU       = &tu)
            {
                var pCommandLineArgs = stackalloc sbyte *[commandLineArgs.Length];

                marshaledCommandLineArgs.Fill(pCommandLineArgs);
                return(clang.indexSourceFileFullArgv(this, clientData, pIndexCallbacks, (uint)indexCallbacks.Length, (uint)indexOptions, marshaledSourceFilename, pCommandLineArgs, commandLineArgs.Length, pUnsavedFiles, (uint)unsavedFiles.Length, (CXTranslationUnitImpl **)pTU, (uint)tuOptions) == 0);
            }
        }