Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CodeNav does not respond, and refresh does not work when too many classes in a file #135

Open
ToMakeSense opened this issue Feb 10, 2022 · 3 comments
Assignees

Comments

@ToMakeSense
Copy link

ToMakeSense commented Feb 10, 2022

It seems that because of too many classes in a source code file, the panel of CodeNav cannot fresh(CodeNav still displays the results of the previous open file, it can't seem to show scrollbar automatically).

Tricky details
If you try to fold the code multiple times CTRL + M, L, The CodeNav window will be triggered to display the beginning part of the source file. However, if the file is opened for the first time, CodeNav does not respond, the CodeNav window cannot be activated and displayed, even if the code is folded multiple times. in this situation, unless you temporarily remove some blocks of code to activate the CodeNav window, then press CTRL + Z and restore the code, to get the CodeNav window activated.

@ToMakeSense ToMakeSense changed the title If there are too many classes in a file, CodeNav does not respond, and refresh does not work CodeNav does not respond, and refresh does not work when too many classes in a file Feb 12, 2022
@sboulema
Copy link
Owner

Wow sounds weird!

How many classes are in your file? Can you share the file?

CodeNav should show a scrollbar for long files:
image

@sboulema sboulema self-assigned this Feb 24, 2022
@ToMakeSense
Copy link
Author

ToMakeSense commented Feb 26, 2022

@sboulema Thanks for your attention, you can use demo C# class below to repro.

using System;
using System.Collections.Generic;

namespace Demo {
    class CodeNavRepro {
        public static void XXXMethod(List<RawMediaInfo> mediaSetInfo) {
            Console.WriteLine("Hello world!");
            Console.ReadLine();
        }
    }

    #region model
    public class RawMediaInfo {
        public string FileId { get; set; }
        public string SessionId { get; set; }
    }

    public class MediaTaskInfo : RawMediaInfo {
        public string TaskId { get; set; }
    }

    public class EditMediaTaskInfo : MediaTaskInfo {
        public string ProcedureTaskId { get; set; }
    }
    #endregion

    #region base model
    public class MediaTaskBaseResponse {
        public string TaskType { get; set; }
        public string Status { get; set; }
        public string CreateTime { get; set; }
        public string BeginProcessTime { get; set; }
        public string FinishTime { get; set; }
        public string RequestId { get; set; }
    }

    #region ProcedureTask
    public class ProcedureTaskResponse : MediaTaskBaseResponse {
        public ProcedureTask ProcedureTask { get; set; }
    }

    public class ProcedureTask {
        public string TaskId { get; set; }
        public string Status { get; set; }
        public int ErrCode { get; set; }
        public string Message { get; set; }
        public string FileId { get; set; }
        public string FileName { get; set; }
        public string FileUrl { get; set; }
        public MetaData MetaData { get; set; }
        public MediaProcessResultSet[] MediaProcessResultSet { get; set; }
        public object[] AiContentReviewResultSet { get; set; }
        public object[] AiAnalysisResultSet { get; set; }
        public object[] AiRecognitionResultSet { get; set; }
        public int TasksPriority { get; set; }
        public string TasksNotifyMode { get; set; }
        public string SessionContext { get; set; }
        public string SessionId { get; set; }
    }

    public class MetaData {
        public int Size { get; set; }
        public string Container { get; set; }
        public int Bitrate { get; set; }
        public int Height { get; set; }
        public int Width { get; set; }
        public float Duration { get; set; }
        public int Rotate { get; set; }
        public VideoStreamSet[] VideoStreamSet { get; set; }
        public AudioStreamSet[] AudioStreamSet { get; set; }
        public float VideoDuration { get; set; }
        public float AudioDuration { get; set; }
    }

    public class VideoStreamSet {
        public int Bitrate { get; set; }
        public int Height { get; set; }
        public int Width { get; set; }
        public string Codec { get; set; }
        public int Fps { get; set; }
    }

    public class AudioStreamSet {
        public int Bitrate { get; set; }
        public int SamplingRate { get; set; }
        public string Codec { get; set; }
    }

    public class MediaProcessResultSet {
        public string Type { get; set; }
        public MediaProcessTask TranscodeTask { get; set; }
        public CoverBySnapshotTask CoverBySnapshotTask { get; set; }
        public object AnimatedGraphicTask { get; set; }
        public object SnapshotByTimeOffsetTask { get; set; }
        public object SampleSnapshotTask { get; set; }
        public object ImageSpriteTask { get; set; }
        public object AdaptiveDynamicStreamingTask { get; set; }
    }

    public class MediaProcessTask {
        public string Status { get; set; }
        public string ErrCodeExt { get; set; }
        public int ErrCode { get; set; }
        public string Message { get; set; }
        public Input Input { get; set; }
        public Output Output { get; set; }
        public int Progress { get; set; }
    }

    public class Input {
        public int Definition { get; set; }
        public object[] WatermarkSet { get; set; }
        public object[] MosaicSet { get; set; }
        public float StartTimeOffset { get; set; }
        public float EndTimeOffset { get; set; }
    }

    public class Output {
        public string Url { get; set; }
        public int Definition { get; set; }
        public int Bitrate { get; set; }
        public int Height { get; set; }
        public int Width { get; set; }
        public int Size { get; set; }
        public float Duration { get; set; }
        public string Container { get; set; }
        public string Md5 { get; set; }
        public AudioStreamSet[] AudioStreamSet { get; set; }
        public VideoStreamSet[] VideoStreamSet { get; set; }
    }

    public class CoverBySnapshotTask {
        public string Status { get; set; }
        public string ErrCodeExt { get; set; }
        public int ErrCode { get; set; }
        public string Message { get; set; }
        public SnapshotTaskInput Input { get; set; }
        public SnapshotTaskOutput Output { get; set; }
    }

    public class SnapshotTaskInput {
        public int Definition { get; set; }
        public string PositionType { get; set; }
        public float PositionValue { get; set; }
        public object[] WatermarkSet { get; set; }
    }

    public class SnapshotTaskOutput {
        public string CoverUrl { get; set; }
    }
    #endregion

    #region EditMedia
    public class EditMediaTaskResponse : MediaTaskBaseResponse {
        public EditMediaTask EditMediaTask { get; set; }
    }

    public class EditMediaTask {
        public string TaskId { get; set; }
        public string Status { get; set; }
        public int ErrCode { get; set; }
        public string Message { get; set; }
        public EditMediaTaskInput Input { get; set; }
        public EditMediaTaskOutput Output { get; set; }
        public string ProcedureTaskId { get; set; }
        public string SessionContext { get; set; }
        public string SessionId { get; set; }
    }
    public class EditMediaTaskInput {
        public string InputType { get; set; }
        public FileInfoSet[] FileInfoSet { get; set; }
        public object[] StreamInfoSet { get; set; }
    }

    public class FileInfoSet {
        public string FileId { get; set; }
        public float StartTimeOffset { get; set; }
        public float EndTimeOffset { get; set; }
    }

    public class EditMediaTaskOutput {
        public string FileType { get; set; }
        public string FileUrl { get; set; }
        public string FileId { get; set; }
        public string MediaName { get; set; }
        public int ClassId { get; set; }
        public string ExpireTime { get; set; }
    }
    #endregion
    #endregion
}

@ToMakeSense
Copy link
Author

ToMakeSense commented Feb 26, 2022

@sboulema Simple steps to repro with a gif animation, for your reference

Repro

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants