Example #1
0
        private bool DealingWithDiagnostic(CXDiagnostic d)
        {
            // error spelling
            string spelling = clang.getDiagnosticSpelling(d).ToString();

            // category text
            string categoryText = clang.getDiagnosticCategoryText(d).ToString();

            // severity text
            CXDiagnosticSeverity severity = clang.getDiagnosticSeverity(d);
            string severityStr            = ClangTraits.ToString(severity);

            // source location
            CXSourceLocation location = clang.getDiagnosticLocation(d);
            CXFile           file     = new CXFile(IntPtr.Zero);

            clang.getInstantiationLocation(
                location,
                out file,
                out uint line,
                out uint column,
                out uint offset);

            string fileName = clang.getFileName(file).ToString();

            clang.disposeDiagnostic(d);

            string errorString = string.Format("{0}: {1}-{2}, IN {3}, line: {4}, column: {5}",
                                               severityStr, spelling, categoryText, fileName, line, column);

            return(ClangTraits.IsFatal(severity));
        }
Example #2
0
 /// <summary>
 /// Gets the filename if a given CXFile
 /// </summary>
 /// <param name="file">
 /// A <see cref="CXFile"/>: a CXFile instance
 /// </param>
 /// <returns>
 /// A <see cref="string"/>: the filename
 /// </returns>
 public string GetFileNameString(CXFile file)
 {
     lock (SyncRoot) {
         CXString cxstring = clang.getFileName(file);
         string   fileName = Marshal.PtrToStringAnsi(clang.getCString(cxstring));
         clang.disposeString(cxstring);
         return(fileName);
     }
 }
Example #3
0
 public void GetFileLocation(out CXIdxClientFile indexFile, out CXFile file, out uint line, out uint column, out uint offset)
 {
     fixed(CXIdxClientFile *pIndexFile = &indexFile)
     fixed(CXFile * pFile = &file)
     fixed(uint *pLine    = &line)
     fixed(uint *pColumn  = &column)
     fixed(uint *pOffset  = &offset)
     {
         clang.indexLoc_getFileLocation(this, (void **)pIndexFile, (void **)pFile, pLine, pColumn, pOffset);
     }
 }
Example #4
0
 /// <summary>
 /// Gets a cursor
 /// </summary>
 /// <param name="fileName">
 /// A <see cref="string"/>: the filename which a Translation Unit (probably containing the cursor) is associated with.
 /// </param>
 /// <param name="location">
 /// A <see cref="MonoDevelop.Ide.Editor.DocumentLocation"/>: the location in the document (named fileName)
 /// </param>
 /// <returns>
 /// A <see cref="CXCursor"/>: the cursor under the location
 /// </returns>
 public CXCursor GetCursor(string fileName, MonoDevelop.Ide.Editor.DocumentLocation location)
 {
     lock (SyncRoot) {
         CXTranslationUnit TU   = translationUnits [fileName];
         CXFile            file = clang.getFile(TU, fileName);
         CXSourceLocation  loc  = clang.getLocation(
             TU,
             file,
             (uint)(location.Line),
             (uint)(location.Column)
             );
         return(clang.getCursor(TU, loc));
     }
 }
Example #5
0
 internal static extern long clang_getFileTime(CXFile fileHandle);
Example #6
0
 internal static extern CXSourceLocation clang_getLocation(CXTranslationUnit tu, CXFile file, uint line, uint column);
Example #7
0
 internal static extern void clang_getFileLocation(CXSourceLocation location, out CXFile file, out uint line, out uint column, out uint offset);
Example #8
0
 internal static extern FindResult clang_findIncludesInFile(CXTranslationUnit tu, CXFile file, CXCursorAndRangeVisitor visitor);
Example #9
0
 internal static extern CXString clang_getFileName(CXFile sFile);
Example #10
0
 internal static extern CXString clang_File_tryGetRealPathName(CXFile file);
Example #11
0
 internal static extern CXResult clang_findReferencesInFile(CXCursor c, CXFile f, CXCursorAndRangeVisitor visitor);
Example #12
0
 internal unsafe static extern void clang_getInstantiationLocation(CXSourceLocation location, CXFile* file,
                                     out uint line, out uint column, out uint offset);
Example #13
0
 internal static extern CXSourceLocation clang_getLocationForOffset(CXTranslationUnit tu, CXFile fileHandle, uint offset);
Example #14
0
 internal static extern unsafe int clang_getFileUniqueID(CXFile file, CXFileUniqueID* id);
Example #15
0
 internal static extern CXModule clang_Cursor_getModuleForFile(CXTranslationUnit tu, CXFile file);
Example #16
0
 internal static extern TimeT clang_getFileTime(CXFile sFile);
Example #17
0
 internal static extern int clang_getFileUniqueID(CXFile file, out CXFileUniqueID out_id);
Example #18
0
 internal static extern FindResult clang_findReferencesInFile(CXCursor cursor, CXFile file, CXCursorAndRangeVisitor visitor);
Example #19
0
 internal static extern uint clang_isFileMultipleIncludeGuarded(CXTranslationUnit tu, CXFile file);
Example #20
0
 internal static extern void clang_indexLoc_getFileLocation(CXIdxLoc loc,
                                                            out CXIdxClientFile indexFile, out CXFile file,
                                                            out uint line, out uint column, out uint offset);
Example #21
0
 internal static extern ConstCharPtr clang_getFileContents(CXTranslationUnit tu, CXFile file, [MarshalAs(UnmanagedType.SysUInt)] out ulong size);
Example #22
0
 internal static extern CXSourceRangeListPtr clang_getSkippedRanges(CXTranslationUnit tu, CXFile file);
Example #23
0
 internal static extern int clang_File_isEqual(CXFile file1, CXFile file2);
Example #24
0
 internal static extern CXSourceLocation clang_getLocationForOffset(CXTranslationUnit tu, CXFile file, uint offset);
Example #25
0
 internal static extern CXString clang_getFileName(CXFile fileHandle);