public DocSlice(SourceDocument doc, int startLine, int startColumn, int endLine)
            {
                Contract.Requires(doc != null);
                Contract.Requires(startLine > 0);

                this.doc         = doc;
                this.startColumn = startColumn;
                this.startLine   = startLine;
                this.endLine     = endLine;
                this.count       = 0;

                // compute count
                int i = startLine;

                while (i <= endLine)
                {
                    string s = doc[i];
                    if (s == null)
                    {
                        return;
                    }
                    count += s.Length;
                    i++;
                }
                count -= startColumn;
                if (count < 0)
                {
                    // problem. indicates source/pdb are out of date w.r.t each other
                    count = 0;
                }
            }
Esempio n. 2
0
        static void TestCase2()
        {
            List <string> docsToIndex      = DocumentsToIndex("./TestCases/2/");
            List <string> queriesToProcess = QueriesToProcess("./TestCases/2/");
            ParseOptions  options          = new ParseOptions();

            // load documents
            foreach (string curr in docsToIndex)
            {
                byte[]         data   = Common.ReadBinaryFile(curr);
                SourceDocument src    = new SourceDocument("test", "test", curr, curr, null, DocType.Json, null, "application/json", data.Length, Common.Md5(data));
                IndexResult    result = _IndexClient.Add(src, data, options, true).Result;
                Console.WriteLine("");
                Console.WriteLine("Add: " + curr);
                Console.WriteLine(Common.SerializeJson(result, true));
            }

            Console.WriteLine("");
            Console.WriteLine("Press ENTER to continue");
            Console.ReadLine();

            // execute queries
            foreach (string curr in queriesToProcess)
            {
                EnumerationQuery  query  = Common.DeserializeJson <EnumerationQuery>(Common.ReadBinaryFile(curr));
                EnumerationResult result = _IndexClient.Enumerate(query);
                Console.WriteLine("");
                Console.WriteLine("Query: " + curr);
                Console.WriteLine(Common.SerializeJson(result, true));
            }
        }
Esempio n. 3
0
        public IHttpActionResult PutSourceDocument(int id, SourceDocument sourceDocument)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != sourceDocument.ID)
            {
                return(BadRequest());
            }

            db.Entry(sourceDocument).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SourceDocumentExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        private static Stream?TryGetEmbeddedSourceStream(SourceDocument sourceDocument)
        {
            if (sourceDocument.EmbeddedTextBytes is null)
            {
                return(null);
            }

            var embeddedTextBytes = sourceDocument.EmbeddedTextBytes;
            var uncompressedSize  = BitConverter.ToInt32(embeddedTextBytes, 0);
            var stream            = new MemoryStream(embeddedTextBytes, sizeof(int), embeddedTextBytes.Length - sizeof(int));

            if (uncompressedSize != 0)
            {
                var decompressed = new MemoryStream(uncompressedSize);

                using (var deflater = new DeflateStream(stream, CompressionMode.Decompress))
                {
                    deflater.CopyTo(decompressed);
                }

                if (decompressed.Length != uncompressedSize)
                {
                    return(null);
                }

                stream = decompressed;
            }

            return(stream);
        }
Esempio n. 5
0
 private Lexer(SourceDocument document, TextReader reader)
 {
     this.document        = document;
     this.reader          = reader;
     this.offset          = 0;
     this.lookaheadBuffer = new List <char>();
 }
Esempio n. 6
0
        public async Task ReturnsSourceFileFromSourceLink()
        {
            var source = @"
public class C
{
    public event System.EventHandler [|E|] { add { } remove { } }
}";

            await RunTestAsync(async path =>
            {
                MarkupTestFile.GetSpan(source, out var metadataSource, out var expectedSpan);

                var(project, symbol) = await CompileAndFindSymbolAsync(path, Location.OnDisk, Location.OnDisk, metadataSource, c => c.GetMember("C.E"));

                // Move the source file to a path that only our fake debugger service knows about
                var sourceFilePath = Path.Combine(path, "SourceLink.cs");
                File.Move(GetSourceFilePath(path), sourceFilePath);

                var sourceLinkService = new Lazy <ISourceLinkService?>(() => new TestSourceLinkService(sourceFilePath: sourceFilePath));
                var service           = new PdbSourceDocumentLoaderService(sourceLinkService, logger: null);

                using var hash = SHA256.Create();
                var fileHash   = hash.ComputeHash(File.ReadAllBytes(sourceFilePath));

                var sourceDocument = new SourceDocument("goo.cs", Text.SourceHashAlgorithm.Sha256, fileHash.ToImmutableArray(), null, "https://sourcelink");
                var result         = await service.LoadSourceDocumentAsync(path, sourceDocument, Encoding.UTF8, new TelemetryMessage(CancellationToken.None), CancellationToken.None);

                Assert.NotNull(result);
                Assert.Equal(sourceFilePath, result !.FilePath);
            });
        }
Esempio n. 7
0
        public Leerlijnenpakket GetLeerlijnenPakket(string file)
        {
            Leerlijnenpakket leerlijnenpakket = null;

            try
            {
                SourceDocument = XDocument.Load(file);
                if (SourceDocument != null)
                {
                    PakketNaam = SourceDocument.XPathSelectElement("/Leerlijnpackage/Leerlijn").Attribute("Naam").Value;
                    var vakgebiedItems = SourceDocument.XPathSelectElements("/Leerlijnpackage/Leerlijn/Vakgebieden/Vakgebied");
                    var leerlijnen     = vakgebiedItems.Select(GetLeerlijn).ToList();

                    DateTime invuldatum = DateTimeExtensions.Now;

                    leerlijnenpakket = new Leerlijnenpakket(
                        Guid.NewGuid(),
                        Guid.NewGuid(),
                        PakketNaam,
                        invuldatum,
                        definitief: true,
                        leerlijnen: leerlijnen,
                        auditTrail: new AuditTrail <Leerlijnenpakket>());
                }
            }
            catch (Exception)
            {
                MessageBox.Show("Het bestand bevat geen geldig leerlijnenpakketDefinitie.");
            }

            return(leerlijnenpakket);
        }
Esempio n. 8
0
        public Task <TextLoader?> LoadSourceDocumentAsync(SourceDocument sourceDocument, CancellationToken cancellationToken)
        {
            // If we already have the embedded text then use that directly
            if (sourceDocument.EmbeddedText is not null)
            {
                var textAndVersion = TextAndVersion.Create(sourceDocument.EmbeddedText, VersionStamp.Default, sourceDocument.FilePath);
                return(Task.FromResult <TextLoader?>(TextLoader.From(textAndVersion)));
            }

            // Otherwise, check the easiest (but most unlikely) case which is the document exists on the disk
            if (File.Exists(sourceDocument.FilePath))
            {
                var textLoader = IOUtilities.PerformIO(() => TryLoadSourceFromDisk(sourceDocument));
                if (textLoader is not null)
                {
                    return(Task.FromResult <TextLoader?>(textLoader));
                }
            }

            // TODO: Call the debugger to download the file
            // Maybe they'll download to a temp file, in which case this method could return a string
            // or maybe they'll return a stream, in which case we could create a new StreamTextLoader

            return(Task.FromResult <TextLoader?>(null));
        }
        public void EmptyCompilationResultIsPossible()
        {
            var compilationResult = new List <IChunk>();
            var markdownBlocks    = new List <SourceBlock> {
                new SourceBlock(new List <SourceLine> {
                    new SourceLine("# Fgh", 0)
                }),
                new SourceBlock(new List <SourceLine> {
                    new SourceLine("Hey!", 1)
                }),
                new SourceBlock(new List <SourceLine> {
                    new SourceLine("Oh", 2)
                })
            };

            var result = SourceDocument.ReturnMdChunksIntoCompilationResults(compilationResult, markdownBlocks);

            Assert.True(result.Count == 3);
            Assert.True(result[0].LineNumber == 0);
            Assert.True(result[0] is MarkdownChunk);
            Assert.True(result[1].LineNumber == 1);
            Assert.True(result[1] is MarkdownChunk);
            Assert.True(result[2].LineNumber == 2);
            Assert.True(result[2] is MarkdownChunk);
        }
Esempio n. 10
0
        private string /*?*/ GetSource(string prefix, SourceContext sctx, out bool isVB, bool islegacy = false)
        {
            isVB = false;
            if (!sctx.IsValid)
            {
                return(null);
            }

            if (sctx.StartLine <= 0)
            {
                return(null);
            }

            SourceDocument doc = GetDocument(sctx.Document);

            if (doc == null)
            {
                return(null);
            }

            DocSlice slice      = new DocSlice(doc, sctx.StartLine, (islegacy) ? 0 : sctx.StartColumn, sctx.EndLine);
            var      parsedText = Parse(prefix, slice, out isVB);

            return(parsedText);
        }
        private async Task <SourceFileInfo?> TryGetSourceLinkFileAsync(SourceDocument sourceDocument, Encoding encoding, IPdbSourceDocumentLogger?logger, CancellationToken cancellationToken)
        {
            if (_sourceLinkService is null || sourceDocument.SourceLinkUrl is null)
            {
                return(null);
            }

            // This should ideally be the repo-relative path to the file, and come from SourceLink: https://github.com/dotnet/sourcelink/pull/699
            var relativePath = Path.GetFileName(sourceDocument.FilePath);

            var delay          = Task.Delay(SourceLinkTimeout, cancellationToken);
            var sourceFileTask = _sourceLinkService.GetSourceFilePathAsync(sourceDocument.SourceLinkUrl, relativePath, logger, cancellationToken);

            var winner = await Task.WhenAny(sourceFileTask, delay).ConfigureAwait(false);

            if (winner == sourceFileTask)
            {
                var sourceFile = await sourceFileTask.ConfigureAwait(false);

                if (sourceFile is not null)
                {
                    // TODO: Log results from sourceFile.Log: https://github.com/dotnet/roslyn/issues/57352
                    // TODO: Don't ignore the checksum here: https://github.com/dotnet/roslyn/issues/55834
                    return(LoadSourceFile(sourceFile.SourceFilePath, sourceDocument, encoding, ignoreChecksum: true));
                }
                else
                {
                    // TODO: Log the timeout: https://github.com/dotnet/roslyn/issues/57352
                }
            }

            return(null);
        }
Esempio n. 12
0
        public void SetInvoicePath(long vid, string path)
        {
            Voucher voucher = this.GetMyVoucher(vid);

            if (voucher != null && File.Exists(System.Web.HttpContext.Current.Server.MapPath(path)))
            {
                FileInfo fi = new FileInfo(System.Web.HttpContext.Current.Server.MapPath(path));

                SourceDocument invoice = _ledger.SourceDocument.Where(sd => sd.SourceFileName == fi.FullName).FirstOrDefault();
                if (invoice != null)
                {
                    return;
                }

                invoice = new SourceDocument();
                invoice.SourceFileName = fi.FullName;
                invoice.RelateFileName = path;
                invoice.RelatePath     = path.Replace(fi.Name, "");
                invoice.FileSize       = fi.Length;
                voucher.Invoices.Add(invoice);

                voucher.InvoicePath = path.Replace(fi.Name, "");

                _ledger.SaveChanges();
            }
            else
            {
                throw new ArgumentNullException("地址不存在或保存失败");
            }
        }
Esempio n. 13
0
        public void AccumulateRobustHash_PerTile(CachePackage cachePackage, IRobustHash hash)
        {
            hash.Accumulate("SourceMap:");
            SourceDocument sourceDocument = this._documentFuture.RealizeSynchronously(cachePackage);

            sourceDocument.localDocument.AccumulateRobustHash(hash);
            this.AccumulateRobustHash_Common(hash);
        }
        public void EmptyInputIsOk()
        {
            var compilationResult = new List <IChunk>();
            var markdownBlocks    = new List <SourceBlock>();

            var result = SourceDocument.ReturnMdChunksIntoCompilationResults(compilationResult, markdownBlocks);

            Assert.True(result.Count == 0);
        }
        private static SourceFileInfo?TryGetOriginalFile(SourceDocument sourceDocument, Encoding encoding)
        {
            if (File.Exists(sourceDocument.FilePath))
            {
                return(LoadSourceFile(sourceDocument.FilePath, sourceDocument, encoding, ignoreChecksum: false));
            }

            return(null);
        }
        private static Stream?TryGetFileStream(SourceDocument sourceDocument)
        {
            if (File.Exists(sourceDocument.FilePath))
            {
                return(IOUtilities.PerformIO(() => new FileStream(sourceDocument.FilePath, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Delete)));
            }

            return(null);
        }
Esempio n. 17
0
        private void Load()
        {
            this.lines = new string[0];
            var range = this.provider.GetSourceRanges(this.method).FirstOrDefault();

            if (range != null)
            {
                this.document = range.Document;
            }
        }
Esempio n. 18
0
        /// <summary>
        /// Store or store-and-index a document.
        /// </summary>
        /// <param name="indexName">Name of the index.</param>
        /// <param name="sourceDoc">Source document.</param>
        /// <param name="data">Byte data.</param>
        /// <param name="options">Text parse options.</param>
        /// <param name="parse">True if the document should be parsed and indexed.</param>
        /// <param name="postbackUrl">URL to which results should be POSTed.</param>
        /// <returns>Index result.</returns>
        public async Task <IndexResult> AddDocument(string indexName, SourceDocument sourceDoc, byte[] data, ParseOptions options, bool parse = true, string postbackUrl = null)
        {
            if (String.IsNullOrEmpty(indexName))
            {
                throw new ArgumentNullException(nameof(indexName));
            }
            KomodoIndex idx = GetIndexClient(indexName);

            return(await idx.Add(sourceDoc, data, options, parse, postbackUrl));
        }
Esempio n. 19
0
        static void Main(string[] args)
        {
            // 1. Create index repository & Make Index.
            // 1.1 Create repository.
            Indexer    indexer = Indexer.Instance;
            Repository repo    = indexer.CreateRepository("Test");

            // 1.2 Add document by JSON format.
            repo.AddDocument("{'full_text': {'title': '一級淹水警戒區域 增至9縣市', " +
                             " 'text':'(中央社記者黃巧雯台北12日電)受鋒面和西南氣流影響,各地降豪雨。水利署表示,截至今天下午5時,共18座水庫正洩洪、溢流或調節性放水;一級淹水警戒區域也從11日發布時的4個縣市,增至9個縣市。'}, " +
                             " 'meta_data': {'created_time': '2012/06/01 13:24:33'}}");

            // 1.3 Add document by object format.
            SourceDocument srcDoc = new SourceDocument();

            srcDoc.FullText["title"]        = "大雨灌進低底盤公車 乘客傻眼";
            srcDoc.FullText["text"]         = "暴雨襲台,全台災情不斷,現在就連行駛中的公車也遭殃,早上7點多時,一輛從三峽開往新埔捷運站的802公車,因為底盤低,經過淹水路段時,大雨直接灌進公車裡,車上乘客全嚇傻了,就像在坐船一樣,相當誇張。";
            srcDoc.MetaData["created_time"] = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
            repo.AddDocument(srcDoc);

            // 1.4 Make index.
            repo.MakeIndex();

            // 2. Search the documents
            // 2.1 Search, returned by JSON format
            //
            // Format:
            //   {"matches":2,
            //    "search_time":0.041,
            //    "results":[
            //      {"rank":1,"score":2,"hit_field":"一級<<淹水>>警戒區域 增至9縣市\r\n(中央社記者黃巧雯台北12日電)受鋒面和西南氣流影響,各地降豪雨。水利署表示,截至今天下午5時,共18座水庫正洩洪、溢流或調節性放水;一級<<淹水>>警戒區域也從11日發布時的4個縣市,增至9個縣市。"},
            //      {"rank":2,"score":1,"hit_field":"大雨灌進低底盤公車 乘客傻眼\r\n暴雨襲台,全台災情不斷,現在就連行駛中的公車也遭殃,早上7點多時,一輛從三峽開往新埔捷運站的802公車,因為底盤低,經過<<淹水>>路段時,大雨直接灌進公車裡,車上乘客全嚇傻了,就像在坐船一樣,相當誇張。"}]
            //   }
            String jsonResult = repo.Search("淹水", 0, 3).ToJson();

            Console.WriteLine(jsonResult);

            // 2.2 Search, returned by object format
            SearchResult result = repo.Search("淹水", 0, 1);

            // 2.3 Print out the search result.
            Console.WriteLine("Matches: " + result.Matches);
            Console.WriteLine("Search Time: " + result.SearchTime);
            Console.WriteLine("==============================");

            foreach (var aDoc in result.Results)
            {
                Console.WriteLine("Rank: " + aDoc.Rank);
                Console.WriteLine("Score: " + aDoc.Score);
                Console.WriteLine("Content: " + aDoc.HitField);
                Console.WriteLine("==============================");
            }

            Console.ReadLine();
        }
Esempio n. 20
0
        public IHttpActionResult GetSourceDocument(int id)
        {
            SourceDocument sourceDocument = db.SourceDocuments.Find(id);

            if (sourceDocument == null)
            {
                return(NotFound());
            }

            return(Ok(sourceDocument));
        }
Esempio n. 21
0
        private static async Task GetIndexDocument(RequestMetadata md)
        {
            string header = "[Komodo.Server] " + md.Http.Request.Source.IpAddress + ":" + md.Http.Request.Source.Port + " GetIndexDocument ";

            string indexName  = md.Http.Request.Url.Elements[0];
            string sourceGuid = md.Http.Request.Url.Elements[1];

            if (!_Daemon.IndexExists(indexName))
            {
                _Logging.Warn(header + "index " + indexName + " does not exist");
                md.Http.Response.StatusCode  = 404;
                md.Http.Response.ContentType = "application/json";
                await md.Http.Response.Send(new ErrorResponse(404, "Unknown index.", null, null).ToJson(true));

                return;
            }

            if (!md.Params.Parsed)
            {
                DocumentData content = await _Daemon.GetSourceDocumentContent(indexName, sourceGuid);

                if (content == null)
                {
                    _Logging.Warn(header + "document " + indexName + "/" + sourceGuid + " does not exist");
                    md.Http.Response.StatusCode  = 404;
                    md.Http.Response.ContentType = "application/json";
                    await md.Http.Response.Send(new ErrorResponse(404, "Unknown document.", null, null).ToJson(true));

                    return;
                }
                else
                {
                    md.Http.Response.StatusCode  = 200;
                    md.Http.Response.ContentType = content.ContentType;
                    await md.Http.Response.Send(content.ContentLength, content.DataStream);

                    return;
                }
            }
            else
            {
                SourceDocument source      = _Daemon.GetSourceDocumentMetadata(indexName, sourceGuid);
                ParsedDocument parsed      = _Daemon.GetParsedDocumentMetadata(indexName, sourceGuid);
                ParseResult    parseResult = _Daemon.GetDocumentParseResult(indexName, sourceGuid);

                DocumentMetadata ret = new DocumentMetadata(source, parsed, parseResult);
                md.Http.Response.StatusCode  = 200;
                md.Http.Response.ContentType = "application/json";
                await md.Http.Response.Send(Common.SerializeJson(ret, md.Params.Pretty));

                return;
            }
        }
Esempio n. 22
0
        public string SaveUpload(string sourceFileName, string relatePath, int fileSize)
        {
            SourceDocument uploadFile = new SourceDocument();

            uploadFile.FileId         = Guid.NewGuid();
            uploadFile.SourceFileName = sourceFileName;
            uploadFile.RelateFileName = string.Format("{0}{1}", relatePath, sourceFileName);
            uploadFile.RelatePath     = relatePath;
            uploadFile.FileSize       = fileSize;

            return("");
        }
Esempio n. 23
0
        private void handlePlayAllMode(SourceDocument sourceDocument)
        {
            var firstDocument = addMediaToDocumentIfNeeded(sourceDocument.DocumentGuid, sourceDocument.DocumentName, sourceDocument.ImportPath);

            // open video file if it wasn't
            if (mainViewModel.VideoViewModel.Document.Id == Guid.Empty)
            {
                mainViewModel.VideoViewModel.Document = firstDocument;
                reinitVideoPlayer();
                startVideo();
            }
        }
Esempio n. 24
0
        public IHttpActionResult PostSourceDocument(SourceDocument sourceDocument)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.SourceDocuments.Add(sourceDocument);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = sourceDocument.ID }, sourceDocument));
        }
Esempio n. 25
0
        /// <summary>
        /// Compiles Brainfuck source code down to a method and sets the
        /// assembly's entry point to that method.
        /// </summary>
        /// <param name="document">
        /// A Brainfuck source code document.
        /// </param>
        public void Compile(SourceDocument document)
        {
            // Compile the Brainfuck source code to a Flame IR method body.
            var sourceBody = CompileBody(new SourceReader(document));

            // Optimize the IR method body.
            var body = sourceBody.WithImplementation(
                sourceBody.Implementation.Transform(
                    AllocaToRegister.Instance,
                    CopyPropagation.Instance,
                    new ConstantPropagation(),
                    GlobalValueNumbering.Instance,
                    CopyPropagation.Instance,
                    InstructionSimplification.Instance,
                    DeadValueElimination.Instance,
                    MemoryAccessElimination.Instance,
                    CopyPropagation.Instance,
                    new ConstantPropagation(),
                    DeadValueElimination.Instance,
                    ReassociateOperators.Instance,
                    DeadValueElimination.Instance,
                    FuseMemoryAccesses.Instance));

            if (CompilerOptions.GetValue <bool>(Options.PrintIr))
            {
                PrintIr(sourceBody, body);
            }

            // Define a class.
            var program = new Mono.Cecil.TypeDefinition(
                "Brainfuck",
                "Program",
                Mono.Cecil.TypeAttributes.Class | Mono.Cecil.TypeAttributes.Public,
                Assembly.Definition.MainModule.ImportReference(Environment.Object));

            Assembly.Definition.MainModule.Types.Add(program);

            // Add an entry point method to that class.
            var main = new Mono.Cecil.MethodDefinition(
                "Main",
                Mono.Cecil.MethodAttributes.Static | Mono.Cecil.MethodAttributes.Public,
                Assembly.Definition.MainModule.ImportReference(Environment.Void));

            program.Methods.Add(main);

            // Compile the method body down to CIL and assign it to the method.
            var emitter = new ClrMethodBodyEmitter(main, body, Environment);

            main.Body = emitter.Compile();

            // Set the entry point.
            Assembly.Definition.MainModule.EntryPoint = main;
        }
Esempio n. 26
0
 /// <summary>
 /// Tokenizes a source document.
 /// </summary>
 /// <param name="document">A source document to tokenize.</param>
 /// <returns>A tokenized source document.</returns>
 public static IEnumerable <Token> Tokenize(SourceDocument document)
 {
     using (var reader = document.Open(0))
     {
         var   lexer = new Lexer(document, reader);
         Token token;
         while (lexer.TryReadToken(out token))
         {
             yield return(token);
         }
     }
 }
Esempio n. 27
0
        public SourceDocument RealizeSynchronously(CachePackage cachePackage)
        {
            Present present = GetSynchronousFuture(cachePackage).Realize("SourceDocument.RealizeSynchronously");

            if (present is SourceDocument)
            {
                SourceDocument sourceDocument = (SourceDocument)present;
                D.Assert(sourceDocument.localDocument != null, "We waited for document to arrive synchronously.");
                return(sourceDocument);
            }

            throw ((PresentFailureCode)present).exception;
        }
Esempio n. 28
0
        public IEnumerable <XDocument> Parse()
        {
            if (SourceDocument == null)
            {
                throw new InvalidOperationException("XML Documentation not found.");
            }
            //choose only those member elements to do with the TargetTypeName
            var members = from m in SourceDocument.Descendants("member")
                          let name = m.Attribute(XName.Get("name"))
                                     where name != null && name.Value.Contains("M:" + TargetTypeName)
                                     select m;

            return(TransformDocComments(members));
        }
Esempio n. 29
0
        public IHttpActionResult DeleteSourceDocument(int id)
        {
            SourceDocument sourceDocument = db.SourceDocuments.Find(id);

            if (sourceDocument == null)
            {
                return(NotFound());
            }

            db.SourceDocuments.Remove(sourceDocument);
            db.SaveChanges();

            return(Ok(sourceDocument));
        }
Esempio n. 30
0
        static void GetSourceDocMetadata()
        {
            string         indexName  = Common.InputString("Index name  :", null, false);
            string         sourceGuid = Common.InputString("Source GUID :", null, false);
            SourceDocument sourceDoc  = _Komodo.GetSourceDocumentMetadata(indexName, sourceGuid);

            if (sourceDoc == null)
            {
                Console.WriteLine("(none)");
            }
            else
            {
                Console.WriteLine(Common.SerializeJson(sourceDoc, true));
            }
        }
Esempio n. 31
0
        private void MenuNewASMFileBtn_Click(object sender, EventArgs e)
        {
            this.SaveFileDialog.Filter = "ASM file|*.asm";
            this.SaveFileDialog.DefaultExt = ".ext";

            if (this.SaveFileDialog.ShowDialog(this) == DialogResult.OK)
            {
                try
                {
                    var filePath = this.SaveFileDialog.FileName;

                    // Create an empty file and load it.
                    File.CreateText(filePath).Close();

                    var sourceDoc = new SourceDocument(m_compiler);
                    sourceDoc.LoadFile(filePath);
                    sourceDoc.Show(this.DockPanel, DockState.Document);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, "An error has occurred:" + Environment.NewLine + ex.Message, "An error has occurred", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
Esempio n. 32
0
 private SmallBasicDocument(SmallBasicCompilationHelper helper, string text, SourceDocument previousVersion, int position, int oldLength, int newLength)
   : base(text, previousVersion, position, oldLength, newLength) {
   this.helper = helper;
 }
Esempio n. 33
0
        private void OpenFileBtn_Click(object sender, EventArgs e)
        {
            // Let the user choose a file to open.
            if (this.OpenFileDialog.ShowDialog(this) == DialogResult.OK)
            {
                try
                {
                    var filePath = this.OpenFileDialog.FileName;

                    // Check the extension.
                    var extension = Path.GetExtension(filePath).ToLower();
                    switch (extension)
                    {
                        case ".asm":
                            {
                                var sourceDoc = new SourceDocument(m_compiler);
                                sourceDoc.LoadFile(filePath);
                                sourceDoc.Show(this.DockPanel, DockState.Document);
                            }
                            break;

                        case ".hex":
                        case ".bin":
                            {
                                // The file is a program. Load it and show the disassembler.
                                var program = OxIDE.DCPU.Program.LoadFrom(filePath);

                                var disassembler = new DisassemblerDocument();
                                disassembler.Text = Path.GetFileName(filePath);
                                disassembler.LoadProgram(program);
                                disassembler.Show(this.DockPanel, DockState.Document);
                            }
                            break;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(this, "An error has occurred:" + Environment.NewLine + ex.Message, "An error has occurred", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }