精华内容
下载资源
问答
  • 自制IDE

    2019-10-11 14:31:21
    我的IDE目前就是这个样子(从知乎上迁移过来的…………):​ 这货可谓承载了我所有对IDE的幻想(毕竟是自己亲手调教的嘛),在讲这个IDE之前,让我先说说我为什么要自己设计一个IDE。 我在上大学之前就会编程,上...

    我的IDE目前就是这个样子(从知乎上迁移过来的…………):previewwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    这货可谓承载了我所有对IDE的幻想(毕竟是自己亲手调教的嘛),在讲这个IDE之前,让我先说说我为什么要自己设计一个IDE。

    我在上大学之前就会编程,上大学之后,老师推荐的是codeblocks,私底下有些同学自己下Visual studio,或者Dev C++之类的,我也全试过,但是我发现一个问题:颜值高的IDE占用内存大(像Visual studio,clion),内存占用小的颜值低,而且有些IDE如果调试一段代码,必须新建一个工程才行,但作为一个学生,我们往往只是做一算法题,根本不用新建工程。鉴于对以上的不满,和自己的一些新想法,我决定造一个适合自己的IDE,也就是AntIDE。

    首先呢,我的第一个愿望就是,让代码区占据尽可能大的空间,因此最好删除菜单栏,工具栏,然后将一些常用按钮放到标题栏,这样充分利用了空间,像记事本一样,甚至可以代替记事本当作一个文本浏览器,而且本身自带文件夹导航窗格,我觉得海星。

     

    第二点呢,我希望IDE自己集成一个网络浏览器,这样,当我们在编程网站上提交代码,或者浏览编程博客上的代码的时候,可以不必打开浏览器,直接在一个 软件中完成,我觉得海星。

    previewwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    第三呢,我希望能够集成一个GIT系统,也就是一个版本管理系统,这样自己写的代码就不会有“再改是小狗之最终版”之类的,也不怕误删了,我觉得海星。

    previewwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==
     

    但现在还没有做出来。。。

    第四呢,我希望以后有许多功能以插件的形式存在,可以集成C语言查询手册,C语言练习题集,一键生成流程图什么的,凡是能想到有什么好的功能都可以做进去,想想看,在码代码的过程中,每敲一个字母,你的笔记本电脑都会发出一个青轴键盘的声效,是不是很爽?在码代码的时候,浏览网页,听音乐都在一个IDE里完成,不用切换页面,是不是很爽?

    previewwAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

    但现在一个没造出来。。。

    也不是一个没做出来,也做出来一些(机械键盘声效是很简单的好不好),但总的来说,这个IDE还没有达到完美成熟的地步,还有许多有待完善的地方,如果你感觉这个挺好,甘愿当小白鼠的话,我这里提供网站地址:

    https://github.com/HeroIsUseless/AntIDE_open

    放在github了,穷学生党表示没钱没精力维护一个网站,但是自己还是有做页面的(虽然比较糙),如果感觉还不错,请给个star哟~

    如果你十分有兴趣,欢迎联系我一起改进这个IDE啊,在github上留言就行,或者你可以加入这个QQ群:897639646,反馈我一下(实际上是我没灵感了…………)。

    另外,现在是闭源的,因为现在并不完善(代码丑到不想见人),等到完善了,我会将它开源!



     

    展开全文
  • 自制IDE转SATA电源转接线

    千次阅读 2019-06-11 19:28:33
    想要制作IDE转SATA电源转接线,首先要了解IDE接口和SATA接口的接口定义: (以下内容翻译自:https://blog.csdn.net/xrj2001811/article/details/1526284) (模块化电源用户请点↗角的X) SATA 电源接口 Pin # ...

    想要制作IDE转SATA电源转接线,首先要了解IDE接口和SATA接口的接口定义:

    (以下内容翻译自:https://blog.csdn.net/xrj2001811/article/details/1526284

    (模块化电源用户请点↗角的X)

    SATA 电源接口

    Pin # 接口名称 接口意义 线颜色
    1 V33 3.3v Power
    2 V33 3.3v Power
    3 V33 3.3v Power
    4 Ground 1st Mate
    5 Ground 2nd Mate
    6 Ground 3rd Mate
    7 V5 5v Power
    8 V5 5v Power
    9 V5 5v Power
    10 Ground 2nd Mate
    11 未定义 - -
    12 Ground 1st Mate
    13 V12 12v Power
    14 V12 12v Power
    15 V12 12v Power

    PATA 电源接口

    IDE Power Connector Pin Out
    Pin # 接口意义 线颜色
    1 +12V 直流
    2 Ground
    3 Ground
    4 +5V 直流

    找一个IDE母头和SATA公头,然后剪下来

    然后把相同颜色的线焊接起来(别忘了热缩管)

    完成!

    或者可以直接改装电源,把SATA公头焊到IDE线上

    (注意:电源的功率有限,不可盲目改装)

     

    展开全文
  • QScintilla是Scintilla在QT上的移植,Scintilla是一个免费的源代码编辑控件。在普通的的文本编辑... 这是一个完整的IDE,由于是一个仓促完成的课程作业,还有很多不完美的地方。其中debug窗口的实现参见Debugger类。

    QScintilla是Scintilla在QT上的移植,Scintilla是一个免费的源代码编辑控件。在普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语法高亮显示,错误指示,代码自动完成以及代码提示等。而且在左边的空白处(margin),可以显示调试代码中非常有用的显示断点以及显示当前运行行等功能。

    Scintilla官网:https://www.scintilla.org/

    入门与安装可以参考:Qt 开源控件之Qscitinlla代码编辑器入门。这篇教程里可以改进的是,将QScintilla-2.11.5直接放到你的工程文件夹底下,向.pro文件里添加路径时使用$$PWD表示当前目录的绝对路径,然后添加来自QScintilla的头文件和动态链接库。这样项目移动之后也可以正常使用。

    INCLUDEPATH += $$PWD/QScintilla-2.11.5/Qt4Qt5
    LIBS += -L$$PWD/QScintilla-2.11.5/build-qscintilla-Desktop_Qt_5_9_0_MinGW_32bit-Debug/debug/ -lqscintilla2_qt5d

    如果使用release方式构建qscintilla,生成的是qscintilla2_qt5.lib;如果使用debug方式构建qscintilla,生成的是qscintilla2_qt5d.lib(多了一个d)。引用release方式构建生成的qscintilla2_qt5.lib,项目本身最好也使用release方式构建,不然可能构建报错;debug同理。

    很多教程讲了如何使用Qscitinlla实现语法高亮、语法分析、自动补全等功能,但没有具体讲如何实现断点标记。我在看了Qt开源编辑器qsciscintilla的一些用法Scintilla开源库使用指南(二)后,加上自己的实践,总结一下如何实现断点标记。

    首先,我们new一个qscintilla,在它的margin处设置两条页边,左边的显示行号,右边的供我们打断点。

        editor=new QsciScintilla(this);
    
        //行号提示
        editor->setMarginType(0,QsciScintilla::NumberMargin);//设置0号页边显示行号
        editor->setMarginLineNumbers(0,true);//对0号页边启用行号
        editor->setMarginWidth(0,30);//设置页边宽度
    
        editor->setMarginType(1,QsciScintilla::SymbolMargin); //设置1号页边显示符号
        editor->SendScintilla(QsciScintilla::SCI_MARKERSETFORE, 1,QColor(Qt::black)); //置标记前景和背景标记
        editor->SendScintilla(QsciScintilla::SCI_MARKERSETBACK, 1,QColor(Qt::red));
    
        editor->SendScintilla(QsciScintilla::SCI_SETMARGINMASKN,1,0x02); //1号页边显示2号标记
    
        editor->SendScintilla(editor->SCI_SETMARGINSENSITIVEN,1,true); //设置1号页边可以点击

    然后,我们创建一个connect,接收editor的margin被点击的信号,使用自定义的槽函数在相应位置打一个断点。

     connect(editor,SIGNAL(marginClicked(int,int,Qt::KeyboardModifiers)),this,SLOT(addMarker(int,int,Qt::KeyboardModifiers)));

    自定义槽函数如下:

    void Debugger::addMarker(int m, int n, Qt::KeyboardModifiers)
    {
        //m为被点击的页边的编号(列),n为行
        int maskn=editor->SendScintilla(QsciScintilla::SCI_MARKERGET,n); 
        //qDebug()<<n<<endl;
        if(maskn == 0)
        {
            editor->SendScintilla(QsciScintilla::SCI_MARKERADD,n,m);
            QString str = "break "+QString::number(n+1)+"\r\n";
            //qDebug()<<str;
            cmd->write(str.toStdString().c_str());
        }
        else
        {
            //editor->SendScintilla(QsciScintilla::SCI_MARKERDELETE,n,m);
        }
    }

    这样简单的打断点就实现了。如果想详细的了解如何消除断点,进一步如何实现debug功能等,可以查看github上的完整源代码

    这是一个完整的IDE,由于是一个仓促完成的课程作业,还有很多不完美的地方。其中debug窗口的实现参见Debugger类。

    展开全文
  • 文/EdwardVSCode的预定义变量我们上一篇文章中讲述了如何将MinGW工具嵌入到VSCode文本编辑器中,在这个配置的过程中,我们只需要通过修改VSCode生成的“luanch.json”和“task.json”两个JSON文件中的特定字段,就...

    b948047880554e2297464697f06854ce.png

    文/Edward

    VSCode的预定义变量

    我们上一篇文章中讲述了如何将MinGW工具嵌入到VSCode文本编辑器中,在这个配置的过程中,我们只需要通过修改VSCode生成的“luanch.json”和“task.json”两个JSON文件中的特定字段,就可以实现开发环境的搭建。那么这里可能就会有读者疑惑了,这些字段既然是VSCode提供的,那么有没有一张详细罗列这些参数的表格,以备自己的不时之需。这个答案是肯定的,VSCode编辑器的官网有相关的文档专门来解释这些JSON文档中的关键字段,详情可以参考VSCode官方文档:https://code.visualstudio.com/docs/editor/variables-reference。这里我们也来简单地讲述下。

    1492b2087827f52b9f05b1edf76fa93d.png

    图1 task.json

    如图1所示的“task.json”中的内容。这个文件中的后缀名是“.json”,关于“json”我们在这里简单介绍下,JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

    JSON文件的内容都是以“键-值对”的形式存在的,键值对是一种高级语言广泛支持的符合数据类型,在某些高级语言中也被称为“字典”,其内部的每一个数据项的结构为:

    索引(键)”: “内容(值)

    在VSCode中,它提供两个用以配置VSCode任务的文件,“launch.json”以及”tasks.json”。“launch.json”为调试配置文件,这里面指定了启动调试之后的调试器命令,以及调试之前的任务。这里我们可以将编译任务在这里指出。

    “task.json”为编译任务配置文件,这里指出了编译任务的命令以及具体参数。

    再仔细观察图1,我们发现其中很多字段对应的变量是以“${变量名}”形式出现的,这些变量名其实在VSCode中是被事先定义好的,有点类似于我们操作系统中的环境变量,其中部分变量的具体解释如下:

    $ {workspaceFolder} -在VS Code中打开的文件夹的路径

    $ {workspaceFolderBasename} -在VS Code中打开的文件夹名称,不带任何斜杠(/)

    $ {file} -当前打开的文件

    $ {fileWorkspaceFolder} -当前打开的文件的工作区文件夹

    $ {relativeFile} -当前相对于打开的文件workspaceFolder

    $ {relativeFileDirname} -当前打开的文件相对于的目录名workspaceFolder

    $ {fileBasename} -当前打开的文件的基本名称

    $ {fileBasenameNoExtension} -当前打开的文件的基本名称,没有文件扩展名

    $ {fileDirname} -当前打开的文件的目录名

    $ {fileExtname} -当前打开的文件的扩展名

    $ {cwd} -启动时任务运行程序的当前工作目录

    $ {lineNumber} -活动文件中当前选择的行号

    $ {selectedText} -活动文件中的当前选定文本

    $ {execPath} -正在运行的VS Code可执行文件的路径

    $ {defaultBuildTask} -默认构建任务的名称

    $ {pathSeparator} -操作系统用来分隔文件路径中的组件的字符

    编译多个源文件

    到目前为止,我们讲述的VSCode C语言编译器貌似还是只支持单一源文件的编译。那么如果我有两个,三个甚至多个源文件的编译,是不是需要像之前讲述的那样写Makefile?

    要回答这个问题,最好的办法就是立即动手写代码,我们可以在同一个文件夹中创建一个“a.c”和“a.h”文件,这个文件中只实现输出一句“Hello world”的功能。定义好函数之后,我们在“main.c”文件中去包含这个“a.h”,接着去调用a.h中声明的打印函数,具体代码如图2所示。

    db79bd4e94b9fe0bcc698f0ae75ff3c7.png

    图2 新增的“a.c”和“a.h”

    //main.c#include#include "a.h"int main(void){int number;printf("input:\n");scanf("%d", &number);printHello();if((number > 1) && (number <= 100)) {printf("Small\n");} else if((number > 101) && (number <= 200)) {printf("Middle\n");} else {printf("Large\n");}return 0;}//a.c#include#include "a.h"void printHello(void){printf("Hello world");}//a.h#ifndef __A_H_#define __A_H_void printHello(void);#endif

    然后,我们在上一篇文章编写的“launch.json”和“task.json”文件基础上进行调试。结果VSCode抛出了如图3所示的错误。

    a18463452d65bca47fc6e539917ba38f.png

    图3 编译输出错误

    我们在终端上可以看到其出错的原因,归根到底是因为没有找到“main.c”文件中的“printHello”函数定义,这个原因是因为编译器其实是没有编译a.c这个源文件。那如何才能添加对这个源文件的编译呢?我们再仔细来看下,终端提示的错误中,在执行 “D:\software\mingw64\bin\gcc.exe '-g', 'C:\Users\1\Desktop\NumCal\main.c', '-o', 'C:\Users\1\Desktop\NumCal\main.exe'”语句时退出的,这句语句其实是我们在“task.json”文件中定义的。

    297d41d3b3d93710060887eacc51513a.png

    图4 task.json

    如图4红框中圈出的便是具体的编译命令,因此我们在这个编译命令中只需要增加对“a.c”文件的编译即可。如图5所示,在原有的“task.json”文件基础上,增加了对“a.c”文件的编译。

    a675972f51a2212bf57b51cb388d644d.png

    图5 “task.json”中,增加对a.c文件的编译

    //task.json{"version": "2.0.0","label": "C/C++: gcc.exe build active file","command": "gcc","args": ["-g","${file}","${fileDirname}\\a.c", //增加对a.c文件的编译"-o","${fileDirname}\\${fileBasenameNoExtension}.exe"],"problemMatcher": ["$gcc"],"group": "build","detail": "compiler: D:\\software\\mingw64\\bin\\gcc.exe",}

    //launch.json{// 使用 IntelliSense 了解相关属性。// 悬停以查看现有属性的描述。// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387"version": "0.2.0","configurations": [{"name": "build and debug", // 配置名称,将会在启动配置的下拉菜单中显示"type": "cppdbg", // 配置类型,这里只能为cppdbg"request": "launch", // 请求配置类型,可以为launch(启动)或attach(附加)"program": "${fileDirname}/${fileBasenameNoExtension}.exe",// 将要进行调试的程序的路径"args": [], // 程序调试时传递给程序的命令行参数,一般设为空即可"stopAtEntry": false, // 设为true时程序将暂停在程序入口处,一般设置为false"cwd": "${fileDirname}", // 调试程序时的工作目录,一般为${fileDirname}即代码所在目录"environment": [],"externalConsole": true, // 调试时是否显示控制台窗口,一般设置为true显示控制台"MIMode": "gdb","miDebuggerPath": "D:/software/mingw64/bin/gdb.exe", // miDebugger的路径,注意这里要与MinGw的路径对应"preLaunchTask": "gcc", // 这里需要添加一个参数,//调试会话开始前执行的任务,一般为编译程序,c++为g++, c为gcc"setupCommands": [{"description": "为 gdb 启用整齐打印","text": "-enable-pretty-printing","ignoreFailures": true}]}]}

    接着,我们切换回“main.c”,再点击调试代码,此时VSCode就可以正常进入调试界面了。如图6所示。

    8dbc4782554e6488dc25b4991cb35070.png

    图6 VSCode调试界面

    f2ec95237e07677fd6370afa061a1ec3.png

    展开全文
  • 文/EdwardVSCode的预定义变量我们上一篇文章中讲述了如何将MinGW工具嵌入到VSCode文本编辑器中,在这个配置的过程中,我们只需要通过修改VSCode生成的“luanch.json”和“task.json”两个JSON文件中的特定字段,就...
  • 所以,我也衷心希望刚刚接触C语言的童鞋还是按照我们《乐创C语言教程》里面所讲述的工具来学习C语言,等到了解了这些编译的过程,再来搭建这个VSCode IDE。 VSCode的预定义变量 我们上一篇文章中讲述了如何将MinGW...
  • 所以,我也衷心希望刚刚接触C语言的童鞋还是按照我们《乐创C语言教程》里面所讲述的工具来学习C语言,等到了解了这些编译的过程,再来搭建这个VSCode IDE。 VSCode的预定义变量 我们上一篇文章中讲述了如何将MinGW...
  • 用reactjs和bootstrap创建Monkey编程语言的网页IDE
  • 右击添加事件处理程序 void CMainFrame::OnButton2() { // TODO: 在此添加命令处理程序代码 #include<stdlib.h> system("D:\\software\\MinGW\\MyVC.bat"); ...@echo Setting up environment for using MinGW...
  • 1.2. 自制h5 ide。。简化ui自定义配置 2 2. 业务逻辑扩展 2 2.1. Bpm流程引擎还可 图形化流程图 2 2.2. Excel表格不错 2 2.3. 中文dsl扩展 2 2.4. 脚本式逻辑扩展 2 2.5. Udf cli 插件 2 2.6. Ds解释器 ...
  • 源码库: program-in-chinese/stone-editor-eclipse参考: FAQ How do I write an editor for my own ...Deliver support for new languages in Eclipse IDE faster with Generic Editor and Language Servers - Red ...
  • 硬件平台使用的是自制PCB(基于sipeed M1核心)。首先前往以下链接下载最新版本的kendryte IDE。link. 点击下载即可。 下载解压并移动到希望安装的位置。 解压后双击运行文件夹中的KendryteIDE.command。 首次运行时...
  • 自制控制行计算器.zip

    2020-10-18 06:07:03
    自制计算器,由于只是控制行显示所以免费且开源 IDE:VS2019 语言:C++ 包含exe和cpp 注:阶乘有BUG
  • stm32CubeIDE 1.3.0 软件问题不少,相关支持没跟上,在 Production mode下调试,软件无法识别USB转串口,同时J-link无法在stm32CubeIDE 1.3.0 软件上无法识别 环境及工具 Win10下的 stm32CubeIDE 1.3.0 软件 开发板...
  • 通过本例子java初学者可以了解使用NetBeans IDE 6.1创建java项目并调用自制类的整个过程。
  • 目前MP3播放器非常流行且深受人们的青睐 采用闪存作为存储器的M P3播放器受到容量限制 而微型硬盘组成的MP3价格较贵 本文介绍的一种由单片机STC89C58RD+控制的IDE硬盘播放器介于两者之间且非常适合电子爱好者自制 ...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 138
精华内容 55
关键字:

自制ide