热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Pintia(拼题A)刷题插件onVSCode

开发背景初次在拼题A(Pintia)上刷题是在2019年的暑假

开发背景

初次在拼题A(Pintia)上刷题是在2019年的暑假,使用的首选语言是 C++,编辑器则以 VS Code 为主。VS Code 由于其免费、轻量以及插件库丰富的特性,吸引了越来越多的开发者,当然这也是它非常适合用于刷题的原因,如刷题时常用的C/C++、Python或者Java语言都可以通过在 VS Code 上安装对应的插件以及配置其编译器得到支持。而在 VS Code 上开发 Pintia 刷题插件的起因是由于我在刷 LeetCode 题时无意间注意到在 VS Code 插件商店中发布了一款用于 LeetCode 的刷题插件,可以在 VS Code 中直接登录与提交力扣代码,并在插件中实现了网页版 LeetCode 的许多功能,如预览、收藏、提交测试等。这种将刷题和编码通过编辑器整和的创意对练习者来说是非常便利的,于是,我向@陈越姥姥询问百腾是否有做这样一款插件的计划,当时的回复大概是说“这类插件通常是社区自主开发,官方不会出这样一个插件”。因此利用暑期的这段时间,完成了第一个 Beta 版本。

代码的开源仓库:GitHub | Gitee

插件首页地址:Pintia - Visual Studio Marketplace

0. 功能介绍

  • 使用微信二维码扫码登录 Pintia/PTA(暂不支持账号密码登录)
  • 本地显示公共题库(需要读者验证码的题集会被标记上锁符号)
  • 在 VS Code 中预览题目
  • 题目中的输入/输出样例可点击复制
  • 向 Pintia/PTA 提交或测试你的 Solution
  • 在编辑区中快速添加多个自定义测试样例
  • 自动签到 Pintia/PTA 的教育超市

1. 插件安装

img

  1. 请添加图片描述
    在本地安装 VS Code
  2. 在 VS Code 的插件商店中,搜索关键字pintia或者pta,点击安装。或者点此进入插件主页点击安装进行跳转。

2. 使用介绍

2.1. 登录/登出

img

  • 在 Pintia Explorer 中点击 Sign in to Pintia ,即可登录PTA(目前,只支持扫描微信二维码登录)

  • 亦可使用以下命令来登录/登出

    • Pintia: Sign In
    • Pintia: Sign Out

2.2. 预览问题与编码

preview

  • 点击问题,即可查看问题描述
  • 点击右下角的Code New按键,开始编码

注:插件中默认选择的语言是C++,可以在设置中或者使用命令面板键入Pintia: Change Default Language来快速修改默认使用的编程语言。部分题集(如教材类题集)指定了可用的编程语言,此时创建源文件则会以规定使用的语言为准,如果指定可用的编程语言有多个(如ZOJ Problem Set题集),则会弹出提示以重新选择想用的编程语言。
⭐️ 预览区的输入输出样例点击可复制

每道题目的源文件会被创建到用户指定的工作区目录,首次创建源文件时,需要用户选择所用的工作区(默认推荐的工作区目录为 $HOME/.pintia/codes ),或者也可在 VS Code 的设置中修改pintia.workspaceFolder配置项。

2.3. 编辑器快捷键

img

  • Pintia 插件暂支持2个编辑器快捷键
  • Submit:向 Pintia 提交你的答案
  • Test:用自定义的测试样例默认样例测试你的答案

点击Test测试代码时,会自动获取题目中可用的测试样例(并不是问题描述中的输入输出样例)作为默认测试样例,若无默认测试样例插件会予以提示。

注:默认的测试样例指的是,Pintia能提供答案的测试样例。使用自定义的测试样例测试代码时,Pintia只会返回你的代码对测试样例的输出而不会返回真实的答案。而使用默认的测试样例时,Pintia会提供正确的输出予以对照(但实际上部分题目即使提供了默认测样样例,Pintia 也不会返回正确输出)。

2.4. 自定义测试样例

img

自定义测试样例是为了方便快速测试自己的代码,你可以直接在代码的下方将自定义的测试样例放置在@pintia test=start@pintia test=end之间(输入ptatest可快速添加),并点击Test custom sample来快速测试。自定义测试样例可添加多个。

注:在代码编辑区点击Submit或者Test提交代码时,只有包裹在@pintia code=start@pintia code=end中的代码会被提交,区域外的文本内容不会被提交到Pintia,因此这有个小trick,即提交函数题时,可以在源文件中添加完整的代码供本地测试,而将所要提交的函数段代码包裹在上述标识符中。如果误删了上述标识,可在编辑区中输入ptacode来快速添加。

2.5. View 菜单

img

在 Explorer 的顶部实现了5个快捷菜单,分别用于:

  • 打开 Pintia 官网
  • 登录/登出
  • 刷新列表
  • Report Issue
  • 收起所有列表

3. 命令面板

为了快速使用相关功能,可以在 VS Code 中使用 Ctrl+Shift+P (in Windows) 或 Command+Shift+P (in Mac)打开命令面板并输入pintia以快速使用插件的相关命令。可用的命令如下:

img

其中,Pintia: Clear Cache命令用于清除缓存,由于 Pintia 中的题目集或题目信息通常是不变的,因此,为了避免发送重复的请求造成资源浪费,插件会将请求到的信息缓存在本地,如果发现本地显示的内容和官网上有冲突可以使用上述命令清除本地缓存后点击Refresh刷新题目列表或者重启 VS Code。

4. 插件配置项

设置名称描述默认值
pintia.showLocked指定是否显示锁定的问题(一些题目集需要验证用户的读者码后方可提交)true
pintia.defaultLanguage指定用于解题的默认语言。支持的语言有C (gcc), C++ (g++), C (clang), C++ (clang++), Java (javac), Python (python2), Python (python3), Ruby (ruby), Bash (bash), Plaintext (cat), CommonLisp (sbcl), Pascal (fpc), Go (go), Haskell (ghc), Lua (lua), Lua (luajit), C# (mcs), Javascript (node), OCaml (ocamlc), PHP (php), Perl (perl), AWK (awk), D (dmd), Racket (racket), Vala (valac), Visual Basic (vbnc), Kotlin (kotlinc), Swift (swiftc), Objective-C (gcc), Fortran95 (gfortran), Octave (octave-cli), R ®, ASM (nasm. sh), Rust (rustc), Scala (scalac), Python (pypy3), SQL (SQL)C++ (g++)
pintia.workspaceFolder指定工作区文件夹的路径,以存储代码文件“”
pintia.enableStatusBar指定是否显示Pintia状态栏true
pintia.editor.shortcuts指定编辑器中的自定义快捷方式。目前仅支持submit, test[“Submit”,“Test”]
pintia.paging.pageSize当问题集过大时,是否对问题列表进行分页。当pageSize为0表示不分页100
pintia.autoCheckIn指定当Pintia插件被激活时,是否自动签到Pintia的教育商店false

5. 维护计划

插件目前刚刚发布,仅实现了较为基础的答题功能,仍处于 Beta 版本,如果在使用过程中出现 Bug,可在 GitHub 上 New Issue。初步预想的一些功能会在后续逐步添加,如:

  • 直接使用账号密码登录Pinta/PTA
  • 在本地记录答题历史
  • 快速搜索题解
  • 题目搜索

版权声明:本文为charjindev原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/charjindev/article/details/126196475
推荐阅读
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
author-avatar
嘉兴布奇乐乐园
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有