Exemple #1
0
        public void GotoDeclaration(DocumentInfo ASMDoc, string Word, string Zone, string CheapLabelParent)
        {
            Types.ASM.FileInfo fileToDebug = DetermineASMFileInfo(ASMDoc);

            Types.SymbolInfo tokenInfo = fileToDebug.TokenInfoFromName(Word, Zone, CheapLabelParent);
            if (tokenInfo == null)
            {
                fileToDebug = ASMDoc.ASMFileInfo;
                tokenInfo   = ASMDoc.ASMFileInfo.TokenInfoFromName(Word, Zone, CheapLabelParent);
            }
            if (tokenInfo != null)
            {
                string documentFile = "";
                int    documentLine = -1;
                if ((tokenInfo.LineIndex == 0) &&
                    (!string.IsNullOrEmpty(tokenInfo.DocumentFilename)))
                {
                    // try stored info first
                    OpenDocumentAndGotoLine(ASMDoc.Project, tokenInfo.DocumentFilename, tokenInfo.LocalLineIndex);
                    return;
                }

                if (fileToDebug.FindTrueLineSource(tokenInfo.LineIndex, out documentFile, out documentLine))
                {
                    OpenDocumentAndGotoLine(ASMDoc.Project, documentFile, documentLine);
                }
            }
            else
            {
                System.Windows.Forms.MessageBox.Show("Could not determine item source");
            }
        }