public Control CreateControl() { var uiPrefsSvc = services.RequireService <IUiPreferencesService>(); this.codeView = new CodeView(); this.codeView.Dock = DockStyle.Fill; this.TextView.Font = uiPrefsSvc.DisassemblerFont ?? new Font("Lucida Console", 10F); this.TextView.BackColor = SystemColors.Window; this.TextView.ContextMenu = services.RequireService <IDecompilerShellUiService>().GetContextMenu(MenuIds.CtxCodeView); this.TextView.Styles.Add("kw", new EditorStyle { Foreground = new SolidBrush(Color.Blue), }); this.TextView.Styles.Add("link", new EditorStyle { Foreground = new SolidBrush(Color.FromArgb(0x00, 0x80, 0x80)), Cursor = Cursors.Hand, }); this.TextView.Styles.Add("cmt", new EditorStyle { Foreground = new SolidBrush(Color.FromArgb(0x00, 0x80, 0x00)), }); this.TextView.Styles.Add("type", new EditorStyle { Foreground = new SolidBrush(Color.FromArgb(0x00, 0x60, 0x60)), }); this.TextView.Navigate += textView_Navigate; return(this.codeView); }
public async Task <ActionResult> Edit(int id) { CodeRepository codeRepo; CodeView view = new CodeView() { Code = new Code() { Active = true }, CodeCategories = new List <CodeCategory>() }; try { using (DBConnection dbc = new DBConnection(settings.Database.ConnectionString, logger)) { codeRepo = new CodeRepository(settings, logger, dbc); view.Code = await codeRepo.FindByPKView(new PrimaryKey() { Key = id, IsIdentity = true }); view.CodeCategories = CodeCategory.GetList(); } } catch (Exception ex) { throw (Exception)Activator.CreateInstance(ex.GetType(), ex.Message + ex.StackTrace); } return(View("Edit", view)); }
public ActionResult Create(string id) { CodeDetailView codeDetailView = new CodeDetailView(); codeDetailView.EmployeeView = GetEmployee(); #region Access Check bool hasPermission = GetEmployee().IsGuaranteed("Code_Insert"); if (!hasPermission) { ModelState.AddModelError("", "AddcessDenied"); return(View(codeDetailView)); } #endregion GetRequest getCenterRequest = new GetRequest() { ID = Guid.Parse(id) }; try { CodeView codeView = new CodeView(); codeView.CenterName = _centerService.GetCenter(getCenterRequest).CenterView.CenterName; codeView.CenterID = _centerService.GetCenter(getCenterRequest).CenterView.ID; codeDetailView.CodeView = codeView; } catch (Exception ex) { throw; } return(View(codeDetailView)); }
public async Task <ActionResult> Create(CodeView view) { CodeRepository codeRepo; try { using (DBConnection dbc = new DBConnection(settings.Database.ConnectionString, logger)) { codeRepo = new CodeRepository(settings, logger, dbc); if (ModelState.IsValid) { await codeRepo.Add(view.Code); return(RedirectToAction("Index", "Code")); } view.CodeCategories = CodeCategory.GetList(); return(View("Create", view)); } } catch (Exception ex) { throw (Exception)Activator.CreateInstance(ex.GetType(), ex.Message + ex.StackTrace); } }
public DecompiledViewContent(string assemblyFile, string fullTypeName, string entityTag) { // TODO: create options for decompiling in a specific language this.tempFileName = string.Format("{0}{1}{2}.cs", assemblyFile, DecompiledBreakpointBookmark.SEPARATOR, fullTypeName); this.codeView = new CodeView(tempFileName); this.assemblyFile = assemblyFile; this.fullTypeName = fullTypeName; this.jumpToEntityTagWhenDecompilationFinished = entityTag; string shortTypeName = fullTypeName.Substring(fullTypeName.LastIndexOf('.') + 1); this.TitleName = "[" + shortTypeName + "]"; this.InfoTip = tempFileName; Thread thread = new Thread(DecompilationThread); thread.Name = "Decompiler (" + shortTypeName + ")"; thread.Start(); BookmarkManager.Removed += BookmarkManager_Removed; BookmarkManager.Added += BookmarkManager_Added; // add services this.Services.AddService(typeof(ITextEditor), this.codeView.TextEditor); }
private void LoadCodeFiles() { //创建代码 string path = Application.StartupPath + "\\CodeTemplate"; DirectoryInfo dir = new DirectoryInfo(path); FileInfo[] files = dir.GetFiles(); foreach (FileInfo file in files) { ToolStripItem item = new ToolStripMenuItem(); item.Text = Path.GetFileNameWithoutExtension(file.Name); item.Image = imgs.Images[Path.GetExtension(file.Name).TrimStart('.')]; item.Tag = file.FullName; item.Click += (obj, args) => { CodeView view = new CodeView(); string fileName = item.Tag.ToString(); string code = FileHelper.GetFileContent(fileName); view.Caption = item.Text; view.SetCode(code, PathHelper.GetExtension(fileName)); ShowCenter(view, item.Text); }; this.menuCreateCode.DropDownItems.Add(item); } }
public void Close() { if (codeView != null) { ((Control)codeView).Dispose(); } codeView = null; }
public ObjCodeView() { view = new CodeView(); view.Navigate += OnNavigateTarget; view.NativeInterface.SetMouseDwellTime(200); view.DwellStart += DwellStart; view.MouseMove += MouseMoved; Controls.Add(view); }
private async void SetCodeText() { CodeView.Options.IndentationSize = 4; CodeView.Text = source.Text; // Await code to be rendered before scrolling to line number await Task.Yield(); codeViewModel.FilePath = source.Path; codeViewModel.LineNumber = source.LineNumber; CodeView.ScrollTo(codeViewModel.LineNumber, 0); }
public static CodeCompletionWindow ShowCompletionWindow(Form parent, CodeView control, string fileName, ICompletionDataProvider completionDataProvider, char firstChar, bool showDeclarationWindow, bool fixedListViewWidth) { ICompletionData[] completionData = completionDataProvider.GenerateCompletionData(fileName, control.ActiveTextAreaControl.TextArea, firstChar); if (completionData == null || completionData.Length == 0) { return(null); } CodeCompletionWindow codeCompletionWindow = new CodeCompletionWindow(completionDataProvider, completionData, parent, control, showDeclarationWindow, fixedListViewWidth); codeCompletionWindow.CloseWhenCaretAtBeginning = firstChar == '\0'; codeCompletionWindow.ShowCompletionWindow(); return(codeCompletionWindow); }
static IControl CreateTopBar( IPopover popover, IProperty <bool> selectionEnabled, IProperty <Mode> mode, Command addViewport, CodeView codeView) { var isCompact = mode.Convert(m => m == Mode.Compact, m => m ? Mode.Compact : Mode.Normal); var toggleMode = isCompact.Toggle(); return (Layout.Layer( Layout .StackFromLeft( codeView.Create(popover) .HideWhen(isCompact), Control.Empty.WithWidth(16), Layout .StackFromLeft(CreateHeaderControl( icon: Fuse.Icons.AddViewport(), tooltipText: "Click to add a new Viewport", buttonText: "Add Viewport", command: addViewport, labelColor: Theme.DefaultText), Control.Empty.WithWidth(16) ) .HideWhen(isCompact), CreateHeaderControl( icon: MinimizeAndMaximizeIcon.Create(mode), tooltipText: "Switch between normal and compact mode. Click to switch mode.", buttonText: "Compact", labelColor: Theme.DefaultText, command: toggleMode) .HideWhen(isCompact), CreateCompactSelectionControl(mode, selectionEnabled, toggleMode) .ShowWhen(isCompact) .Center(), Control.Empty.WithWidth(4)) .DockRight(), CreateFullSelectionControl(selectionEnabled) .HideWhen(isCompact) .CenterHorizontally()) .WithHeight(37) .WithPadding(new Thickness <Points>(8, 0, 8, 0)) .WithBackground(Theme.PanelBackground)); }
public bool AddMethod(Type returnType, string methodName, IEnumerable <IParameterDeclaration> parameters) { CodeView codeView = this.projectItem.OpenView(true) as CodeView; if (codeView != null) { IDomType domType = this.InitializeDomType(); if (domType != null && codeView.CreateMethod(domType, returnType, methodName, parameters)) { return(true); } } return(false); }
protected AbstractCompletionWindow(Form parentForm, CodeView control) { workingScreen = Screen.GetWorkingArea(parentForm); // SetStyle(ControlStyles.Selectable, false); this.parentForm = parentForm; this.control = control; SetLocation(); StartPosition = FormStartPosition.Manual; FormBorderStyle = FormBorderStyle.None; ShowInTaskbar = false; MinimumSize = new Size(1, 1); Size = new Size(1, 1); }
/// <summary> /// 输出所有映射文本 /// </summary> /// <param name="codeView"></param> /// <returns></returns> public resultCode ShowOutTemplateCode(CodeView codeView) { var model = codeView.model; resultCode resultCode = new resultCode(); resultCode.VueCode += CreateVueCode(model.modelName, model.Description, codeView) + "\r\n"; resultCode.controllerCode += CreateControllersCode(model.modelName, model.Description, codeView.Propertys) + "\r\n"; resultCode.ModelCode += CreateModelCode(model.modelName, model.Description) + "\r\n"; resultCode.IRepositoryCode += CreateIRepositoryCode(model.modelName, model.Description) + "\r\n"; resultCode.IServicesCode += CreateIServicesCode(model.modelName, model.Description) + "\r\n"; resultCode.ServicesCode += CreateServicesCode(model.modelName, model.Description) + "\r\n"; resultCode.RepositoryCode += CreateRepositoryCode(model.modelName, model.Description) + "\r\n"; return(resultCode); }
public void OnLoad() { //Add icon to list FiddlerApplication.UI.tabsViews.ImageList.Images.Add(APPLICATION_NAME, new Bitmap(Properties.Resources.MockingBirdIcon)); _codeView = new CodeView(); //Add icon FiddlerApplication.UI.tabsViews.ImageList.Images.Add(APPLICATION_NAME, new Bitmap(Properties.Resources.MockingBirdIcon)); var tab = new TabPage(APPLICATION_NAME); tab.Controls.Add(_codeView); FiddlerApplication.UI.tabsViews.TabPages.Add(tab); tab.ImageKey = APPLICATION_NAME; _codeView.Dock = DockStyle.Fill; FiddlerApplication.Log.LogString("MockingBird loaded"); }
public Control CreateControl() { var uiPrefsSvc = services.RequireService <IUiPreferencesService>(); this.codeView = new CodeView(); this.codeView.Dock = DockStyle.Fill; this.codeView.CurrentAddressChanged += codeView_CurrentAddressChanged; this.codeView.ProcedureDeclaration.TextChanged += ProcedureDeclaration_TextChanged; this.TextView.Font = new Font("Lucida Console", 10F); this.TextView.BackColor = SystemColors.Window; this.TextView.Services = services; this.TextView.ContextMenu = services.RequireService <IDecompilerShellUiService>().GetContextMenu(MenuIds.CtxCodeView); this.navInteractor = new NavigationInteractor <Procedure>(); this.navInteractor.Attach(codeView); this.TextView.Navigate += textView_Navigate; return(this.codeView); }
/// returns true if the file was opened, false otherwise bool OpenFile(string file) { _textView = null; _codeView = null; _filePath = file; if (string.IsNullOrEmpty(_filePath)) { return(false); } _textView = TextViewFactory.ViewForFile(_filePath); _codeView = new CodeView(MissingEditorAPI.currentInspectorWindow, _textView); if (_textView != null) { _settingsDialog = new SettingsDialog(_textView); } return(true); }
public async Task <ActionResult> Create() { CodeView view = new CodeView() { Code = new Code() { Active = true }, CodeCategories = new List <CodeCategory>() }; try { view.CodeCategories = CodeCategory.GetList(); } catch (Exception ex) { throw (Exception)Activator.CreateInstance(ex.GetType(), ex.Message + ex.StackTrace); } return(await System.Threading.Tasks.Task.Run(() => View("Create", view))); }
public GetCodeResponse GetCode(GetRequest request) { GetCodeResponse response = new GetCodeResponse(); try { Code code = new Code(); CodeView codeView = code.ConvertToCodeView(); code = _codeRepository.FindBy(request.ID); if (code != null) { codeView = code.ConvertToCodeView(); } response.CodeView = codeView; } catch (Exception ex) { } return(response); }
/// <summary> /// 创建前端页面 /// </summary> /// <param name="modelName"></param> /// <param name="Brief"></param> /// <param name="codeView"></param> /// <returns></returns> public string CreateVueCode(string modelName, string Brief, CodeView codeView) { List <modelProperty> Propertys = codeView.Propertys; var modelPropertys = GetProperty(modelName); TemplateEngine templateEngine = new TemplateEngine(); templateEngine.SetFile("Tem", templateConfig.VueTemplateFile); templateEngine.SetBlock("Tem", "FieldList1", "list1", "<!--\\s+BEGIN FieldList1\\s+-->([\\s\\S.]*)<!--\\s+END FieldList1\\s+-->"); templateEngine.m_noMarkers = "comment"; templateEngine.SetVal("t_name", modelName, false); if (!codeView.tableToolOn) { templateEngine.SetVal("m_Istool", "", false); } else { templateEngine.SetVal("m_Istool", "v-if='false'", false); } if (Propertys.Any()) { StringBuilder queryparameter = new StringBuilder(); foreach (var item in Propertys) { if (item.ColumnType == typeof(string).Name) { queryparameter.Append($"{item.ColumnName}: '',\r\n"); } else { queryparameter.Append($"{item.ColumnName}: null,\r\n"); } item.propertyInfo = modelPropertys.FirstOrDefault(p => p.ColumnName.ToLower() == item.ColumnName.ToLower()).propertyInfo; } templateEngine.SetVal("b_queryparameter", queryparameter.ToString(), false); templateEngine.SetVal("f_queryformitem", GroupFormItem(Propertys, "QueryForm", false), false); } else { templateEngine.SetVal("b_ queryparameter", "", false); } var DlogForm = GroupFormItem(modelPropertys.Where(p => p.ColumnName != "RootEntity").ToList(), "ruleForm", true); templateEngine.SetVal("dlog_formItem", DlogForm, false); StringBuilder verification = new StringBuilder(); foreach (var item in modelPropertys) { var ColName = item.ColumnName.Substring(0, 1).ToLower() + item.ColumnName.Remove(0, 1); verification.Append("{item}: [{ required: true, message: '不能为空', trigger: 'blur' }],".Replace("{item}", ColName)); if (item.ColumnName.ToLower() == "id") { continue; } if (item.ColumnType == typeof(int).Name) { templateEngine.SetVal("f_type", ".number", false); } else { templateEngine.SetVal("f_type", "", false); } templateEngine.SetVal("f_name", ColName, false); templateEngine.SetVal("f_note", item.ColumnDescription, false); templateEngine.Parse($"list1", $"FieldList1", true); } string RowVerification = verification.ToString(); templateEngine.SetVal("p_verification", RowVerification.Remove(RowVerification.Length - 1, 1), false); templateEngine.Parse("out", "Tem", false); return(templateEngine.PutOutPageCode("out")); }
CodeCompletionWindow(ICompletionDataProvider completionDataProvider, ICompletionData[] completionData, Form parentForm, CodeView control, bool showDeclarationWindow, bool fixedListViewWidth) : base(parentForm, control) { this.dataProvider = completionDataProvider; this.completionData = completionData; this.document = control.Document; this.showDeclarationWindow = showDeclarationWindow; this.fixedListViewWidth = fixedListViewWidth; workingScreen = Screen.GetWorkingArea(Location); startOffset = control.ActiveTextAreaControl.Caret.Offset + 1; endOffset = startOffset; if (completionDataProvider.PreSelection != null) { startOffset -= completionDataProvider.PreSelection.Length + 1; endOffset--; } codeCompletionListView = new CodeCompletionListView(completionData); codeCompletionListView.ImageList = completionDataProvider.ImageList; codeCompletionListView.Dock = DockStyle.Fill; codeCompletionListView.SelectedItemChanged += new EventHandler(CodeCompletionListViewSelectedItemChanged); codeCompletionListView.DoubleClick += new EventHandler(CodeCompletionListViewDoubleClick); codeCompletionListView.Click += new EventHandler(CodeCompletionListViewClick); Controls.Add(codeCompletionListView); if (completionData.Length > MaxListLength) { vScrollBar.Dock = DockStyle.Right; vScrollBar.Minimum = 0; vScrollBar.Maximum = completionData.Length - 1; vScrollBar.SmallChange = 1; vScrollBar.LargeChange = MaxListLength; codeCompletionListView.FirstItemChanged += new EventHandler(CodeCompletionListViewFirstItemChanged); Controls.Add(vScrollBar); } this.drawingSize = GetListViewSize(); SetLocation(); if (declarationViewWindow == null) { declarationViewWindow = new DeclarationViewWindow(parentForm); } SetDeclarationViewLocation(); declarationViewWindow.ShowDeclarationViewWindow(); declarationViewWindow.MouseMove += ControlMouseMove; control.Focus(); CodeCompletionListViewSelectedItemChanged(this, EventArgs.Empty); if (completionDataProvider.DefaultIndex >= 0) { codeCompletionListView.SelectIndex(completionDataProvider.DefaultIndex); } if (completionDataProvider.PreSelection != null) { CaretOffsetChanged(this, EventArgs.Empty); } vScrollBar.ValueChanged += VScrollBarValueChanged; document.DocumentAboutToBeChanged += DocumentAboutToBeChanged; }
public static PageCodeView GetCodeView(List <Code> codes, int total) { PageCodeView pageview = new PageCodeView(); BasicCRUD dal = new BasicCRUD(); try { List <CodeView> views = new List <CodeView>(); pageview.Total = total; CodeView view = new CodeView(); foreach (var item in codes) { view = new CodeView(); view.ID = item.id; view.Author = item.Author; view.Description = item.Description; view.GitHubUrl = item.GitHubUrl; view.LastUpateDate = item.LastUpdateDate; view.Link = item.Link; var takeTimeEntity = dal.GetEntities <CodeOwnership>(c => c.FkId == item.id && c.Type == "code").OrderByDescending(c => c.LogAt).FirstOrDefault(); if (takeTimeEntity != null) { var takeTime = takeTimeEntity.LogAt; view.NewCommit = Basic.ConvertCommitToCommitView(dal.GetEntities <Commit>(c => item.GitHubUrl.IndexOf(c.GitHubUrl) >= 0 && c.CreateAt >= takeTime), dal); var newissues = dal.GetEntities <Issue>(c => c.CodeID == item.id && c.CreateAt >= takeTime); view.NewIssue = Basic.ConvertIssueToIssueView(newissues, dal, newissues.Count()); } int?ut = 0; foreach (var c in dal.GetEntities <UTLog>(c => c.Type == "code" && c.FkId == item.id)) { ut += c.UT; } view.UT = ut; view.Platforms = Basic.stringToList(item.Platform); view.Products = Basic.stringToList(item.Products); view.SyncDate = item.SyncDate; view.Title = item.Title; var alias = dal.GetEntities <CodeOwnership>(c => c.FkId == item.id && c.Type == "code").ToList().FirstOrDefault(); view.Alias = alias != null ? alias.support_alias : null; var process = dal.GetEntities <ProcessLog>(c => c.FkId == item.id && c.Type == "code").OrderByDescending(c => c.LogAT).FirstOrDefault(); if (process != null) { view.Process = dal.GetEntities <Process>(c => c.id == process.ProcessID).First().name; } else { view.Process = "Pending"; } views.Add(view); } pageview.Views = views; } catch (Exception) { throw; } return(pageview); }
public async Task <MessageModel> OutTemplateCodeAsync(CodeView codeView) { try { var menus = await menuServices.Query(p => p.url.ToLower() == codeView.url || p.title == codeView.title); if (!menus.Any()) { var result = await menuServices.Add(new Menu() { menuid = codeView.menuId == 0 ? 999 : codeView.menuId, title = codeView.title, explain = codeView.description, icon = codeView.icon, menutype = menuType.Menu, method = "#", state = 200, no = codeView.sort, url = codeView.url }); var menu = (await menuServices.Query(p => p.url.ToLower() == codeView.url.ToLower() && p.title == codeView.title)).FirstOrDefault(); if (menu != null) { unitOfWork.BeginTran(); var ListMenu = new List <Menu>(); for (int i = 0; i < 4; i++) { var menutitle = string.Empty; var menumethod = string.Empty; if (i == 0) { menumethod = "get"; menutitle = $"{ codeView.title}-查询"; } else if (i == 1) { menumethod = "put"; menutitle = $"{ codeView.title}-修改"; } else if (i == 2) { menumethod = "post"; menutitle = $"{ codeView.title}-添加"; } else if (i == 3) { menumethod = "delete"; menutitle = $"{ codeView.title}-删除"; } ListMenu.Add(new Menu() { menuid = menu.Id, title = menutitle, explain = "", icon = codeView.icon, menutype = menuType.Button, method = menumethod, state = 200, no = codeView.sort, url = $"/api/{codeView.model.modelName}" }); } await menuServices.Add(ListMenu); unitOfWork.CommitTran(); await codeContext.OutTemplateCode(codeView); return(new MessageModel()); } else { return(new MessageModel(false, "失败")); } } return(new MessageModel(false, "已存在")); } catch (Exception ex) { unitOfWork.RollbackTran(); return(new MessageModel(false, ex.Message)); } }
public MessageModel <resultCode> ShowOutTemplateCodeAsync(CodeView codeView) { return(new MessageModel <resultCode>(codeContext.ShowOutTemplateCode(codeView))); }
public InsightWindow(Form parentForm, CodeView control) : base(parentForm, control) { SetStyle(ControlStyles.UserPaint, true); SetStyle(ControlStyles.OptimizedDoubleBuffer, true); }
public static Window Create( IObservable <string> projectName, IControl search, IControl outline, IControl bookmarks, StageController stage, IControl notifications, IControl inspector, IControl attributes, LogView logview, Menu menu, Command closed, IProperty <bool> selectionEnabled, IObservable <bool> topMost, IProperty <Mode> mode, Command mainWindowFocused, IContext context, CodeView codeView) { IControl topBar = null; var newView = stage.NewViewport; var content = Popover.Host( popover => { topBar = CreateTopBar( popover, selectionEnabled: selectionEnabled, mode: mode, addViewport: newView, codeView: codeView); return(CreateContent( logview: logview, outline: outline, search: search, notifications: notifications, attributes: attributes, bookmarks: bookmarks, inspector: inspector, stage: new StageView(stage, context, mode), topBar: topBar, mode: mode)); }); var mainWindowSize = UserSettings.Size("MainWindowSize"); var mainWindowPosition = UserSettings.Position("MainWindowPosition"); var mainWindowState = UserSettings.Settings.Property <WindowState>("MainWindowState"); var compactSize = UserSettings.Size("CompactWindowSize"); var compactPosition = UserSettings.Position("CompactWindowPosition"); var compactContentSize = compactSize.With(value: compactSize.Merge( stage.DefaultViewportSize.Select(Optional.Some) .CombineLatest( topBar.DesiredSize.Height, (deviceSize, topBarHeight) => deviceSize.Select(s => Size.Create( s.Width + ResizeBorderSize * 2 /* padding */, s.Height + topBarHeight + ResizeBorderSize * 2 + LogViewHeader.HeaderHeight /* padding */))))); var windowSize = mode.Select(x => x == Mode.Normal ? mainWindowSize : compactContentSize).Switch(); var windowState = mode.Select(x => x == Mode.Normal ? mainWindowState : Property.Constant(Optional.Some(WindowState.Normal))).Switch(); var windowPosition = mode.Select(x => x == Mode.Normal ? mainWindowPosition : compactPosition).Switch(); return(new Window { Closed = closed, Title = projectName .Select(Optional.Some) .StartWith(Optional.None()) .Select( maybePath => maybePath.MatchWith( some: name => name + " - Fuse", none: () => "Fuse")), Size = Optional.Some(windowSize), Position = Optional.Some(windowPosition), State = Optional.Some(windowState), Menu = menu, Content = content, TopMost = Optional.Some(topMost), Focused = mainWindowFocused, Foreground = Theme.DefaultText, Background = Theme.PanelBackground, Border = Separator.MediumStroke, Style = WindowStyle.Fat }); }
public void SetUp() { _codeView = new CodeView(); }
public Window Execute(IDocument document, string[] args) { var hack = new ReplaySubject <IObservable <BytecodeGenerated> >(1); var project = new LiveProject(document, _shell, hack.Switch().ObserveOn(Application.MainThread)); var ignore = RecentProjects.Bump(document, project.Name.ObserveOn(Application.MainThread)); var preview = _previewService.StartPreview(project); hack.OnNext(preview.Bytecode); #pragma warning disable 0219 var garbage = ExternalSelection.UpdateProjectContext(_daemon, project); #pragma warning restore 0219 var inspector = Fuse.Inspector.Inspector.Create(project); var buildArgs = new BuildArgs(args); var usbMode = new USBMode(new AndroidPortReverser(), Observable.Return(preview.Port), _previewService); var previewOnDevice = new PreviewOnDevice(_fuse, project, buildArgs); var build = new Build(project, preview, previewOnDevice, usbMode.EnableUsbModeCommand, buildArgs); var export = new Export(project, _fuse, buildArgs); var projHost = new ProjectHost(build.BuildArguments, preview, project, self => _projectsOpen.OnNext(_projectsOpen.Value.Remove(self))); _projectsOpen.OnNext(_projectsOpen.Value.Add(projHost)); var codeView = new CodeView(preview.AccessCode, NetworkHelper .GetInterNetworkIps() .ToArray()); // Viewport stuff var selectionEnabled = Property.Create(false); var glVersion = new Subject <OpenGlVersion>(); var viewport = new ViewportFactory( preview, selectionEnabled, preview.Port, project, _fuse, glVersion); var mode = UserSettings.Enum <Mode>("WindowMode").Or(Mode.Normal); var previewDevices = new PreviewDevices(project, _shell); var workspace = new StageController( viewport, previewDevices, selectionEnabled); var topMost = Property.Create(false); var windowMenu = Menu.Toggle( name: "Compact mode", toggle: mode.Convert( convert: m => m == Mode.Compact, convertBack: b => b ? Mode.Compact : Mode.Normal), hotkey: HotKey.Create(ModifierKeys.Meta, Key.M)) + Menu.Separator + Menu.Toggle( name: "Keep window on top", toggle: topMost, hotkey: HotKey.Create((_fuse.Platform == OS.Windows ? ModifierKeys.Shift : ModifierKeys.Alt) | ModifierKeys.Meta, Key.T)) + Menu.Separator + Menu.Option( value: Themes.OriginalLight, name: "Light theme", property: Theme.CurrentTheme) + Menu.Option( value: Themes.OriginalDark, name: "Dark theme", property: Theme.CurrentTheme); var messages = preview.Messages.Replay(TimeSpan.FromSeconds(2)).RefCount(); project.FilePath.SubscribeUsing(projPath => PushEventsToDaemon.Start( messages: messages, daemon: _daemon, projectPath: projPath, projectId: ProjectIdComputer.IdFor(projPath), target: BuildTarget.DotNetDll)); var sketchConverter = new SketchWatcher(_fuse.Report, _shell); var classExtractor = new ClassExtractor(project); var buildStartedOrLicenseChanged = project.FilePath .CombineLatest(build.Rebuilt.StartWith(Unit.Default)); var allLogMessages = messages.ToLogMessages() .Merge(_setupGuide.LogMessages) .Merge(export.LogMessages) .Merge(project.LogMessages) .Merge(previewOnDevice.LogMessages) .Merge(classExtractor.LogMessages) .Merge(_hostRequestMessages) .Merge(_errors.Select(e => e.Message)) .Merge(AutoReload.Log.Select(msg => "[Fusion AutoReload]: " + msg) .Merge(glVersion.Take(1).ToLogMessages(_fuse.Report))) .Merge(preview.LogMessages) .Merge(_previewService.LogMessages) .Merge(sketchConverter.LogMessages) .Merge(previewDevices.LogMessages); var stopPreview = preview.Start(build.BuildArguments); // start with a viewport workspace.NewViewport.ExecuteOnce(); var projectMenu = ProjectMenu.CommandItems(project.FilePath.Select(Optional.Some), _shell) + Menu.Separator + ProjectMenu.FileItems(project, _shell) + Menu.Separator + Menu.Item("Sketch import", sketchConverter.ShowDialog()); var help = new Help(); var debug = new Debug(project); var elementContext = new ElementContext(project.Context, project, _daemon); var errorView = new ErrorView(messages, project.FilePath, _daemon, preview.ClientRemoved); var logView = new LogView(allLogMessages, messages, errorView); var sketchWatch = sketchConverter.Watch(project); var window = MainWindow.Create( projectName: project.Name, search: Control.Empty, //search.Control, outline: CreateLeftPane(project, elementContext, project.Context, _shell, classExtractor), bookmarks: Control.Empty, stage: workspace, notifications: Layout.StackFromTop( SimulatorNotifications.CreateBusyIndicator(messages), SimulatorNotifications.Create(messages, build.Rebuild, logView.IsExpanded)), inspector: inspector, attributes: Control.Empty, //DataContext.Create(workspace.Viewport, selection.Element), logview: logView, menu: MainMenu.Create( _fuse, _shell, workspace, help, elementContext.CreateMenu(project.Context.CurrentSelection), projectMenu, build, export, _setupGuide, windowMenu, debug), closed: Command.Enabled(() => { stopPreview.Dispose(); preview.Dispose(); projHost.Dispose(); project.FilePath.Take(1).Subscribe(path => _daemon.Broadcast(new ProjectClosed { ProjectId = ProjectIdComputer.IdFor(path) })); project.Dispose(); workspace.Dispose(); sketchWatch.Dispose(); }), selectionEnabled: selectionEnabled, topMost: topMost, mode: mode, mainWindowFocused: _mainWindowFocused.Update(Unit.Default), context: project.Context, codeView: codeView); return(window); }
/// <summary> /// 创建模板映射文件 /// </summary> /// <param name="codeView"></param> /// <returns></returns> public async Task OutTemplateCode(CodeView codeView) { var model = codeView.model; DirectoryInfo topDir = Directory.GetParent(env.ContentRootPath); var BasePath = topDir.FullName; //var ModelPath = Path.Combine(templateConfig.ModelsOutputFile, $"{model.Name}.cs"); //var ModelCode = await CreateModelCode(model.Name, model.Brief); //await File.WriteAllTextAsync(ModelPath, ModelCode); var VueDirectoryPath = Path.Combine(templateConfig.VueOutputFile, $"{model.modelName}\\"); if (!Directory.Exists(VueDirectoryPath)) { Directory.CreateDirectory(VueDirectoryPath); } var VuePath = Path.Combine(templateConfig.VueOutputFile, $@"{model.modelName}\{model.modelName}.vue"); var VueCode = CreateVueCode(model.modelName, model.Description, codeView); if (!File.Exists(VuePath)) { await File.WriteAllTextAsync(VuePath, VueCode); } var ControllersPath = Path.Combine(BasePath, templateConfig.ControllersOutputFile, $"{model.modelName}Controller.cs"); var ControllersCode = CreateControllersCode(model.modelName, model.Description, codeView.Propertys); if (!File.Exists(ControllersPath)) { await File.WriteAllTextAsync(ControllersPath, ControllersCode); } var IRepositoryPath = Path.Combine(BasePath, templateConfig.IRepositoryOutputFile, $"I{model.modelName}Repository.cs"); var IRepositoryCode = CreateIRepositoryCode(model.modelName, model.Description); if (!File.Exists(IRepositoryPath)) { await File.WriteAllTextAsync(IRepositoryPath, IRepositoryCode); } var IServicesPath = Path.Combine(BasePath, templateConfig.IServicesOutputFile, $"I{model.modelName}Services.cs"); var IServicesCode = CreateIServicesCode(model.modelName, model.Description); if (!File.Exists(IServicesPath)) { await File.WriteAllTextAsync(IServicesPath, IServicesCode); } var ServicesPath = Path.Combine(BasePath, templateConfig.ServicesOutputFile, $"{model.modelName}Services.cs"); var ServicesCode = CreateServicesCode(model.modelName, model.Description); if (!File.Exists(ServicesPath)) { await File.WriteAllTextAsync(ServicesPath, ServicesCode); } var RepositoryPath = Path.Combine(BasePath, templateConfig.RepositoryOutputFile, $"{model.modelName}Repository.cs"); var RepositoryCode = CreateRepositoryCode(model.modelName, model.Description); if (!File.Exists(RepositoryPath)) { await File.WriteAllTextAsync(RepositoryPath, RepositoryCode); } }
public static CodeCompletionWindow ShowCompletionWindow(Form parent, CodeView control, string fileName, ICompletionDataProvider completionDataProvider, char firstChar) { return(ShowCompletionWindow(parent, control, fileName, completionDataProvider, firstChar, true, true)); }