SamuelCabralCruz / sensei

This plugin has been developed to ease the work of software engineer courses' assistants that are in charge of going through tons of source files in order to provide feedback and advices to students.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sensei - Code Review Plugin for JetBrains IDEs

List of features

Limitations

  • Report highlighting might not work if language fall of this list.
  • Line markers in the IDE might be misplaced depending on the granularity of the PSI elements.

Code Highlighting

  • We use prism in order to highlight code snippets.
  • In order to update the scripts (prism.css and prism.js), simply go to the following page.
    • Here are the options we currently use:
      • Compression: Minified version
      • Theme: Coy
      • Languages: All
      • Plugins:
        • Line Highlight
        • Line Numbers
        • Normalize whitespace
        • Toolbar
        • Copy to Clipboard Button
  • We also customize the exported stylesheet.
    • Remove the pseudo-elements on the pre tag
      pre[class*="language-"]:before,
      pre[class*="language-"]:after {
      	content: '';
      	z-index: -2;
      	display: block;
      	position: absolute;
      	bottom: 0.75em;
      	left: 0.18em;
      	width: 40%;
      	height: 20%;
      	max-height: 13em;
      	box-shadow: 0px 13px 8px #979797;
      	-webkit-transform: rotate(-2deg);
      	-moz-transform: rotate(-2deg);
      	-ms-transform: rotate(-2deg);
      	-o-transform: rotate(-2deg);
      	transform: rotate(-2deg);
      }
    • Remove line highlight gradient
      .line-highlight {
          background: linear-gradient(to right, hsla(201, 100%, 50%, .1) 70%, hsla(201, 100%, 50%, 0));
      }
    • Modify the line highlighting color
      .line-highlight {
          ...
          background: hsla(201, 100%, 50%, .08);
          ...
      }
      
      .line-highlight:before,
      .line-highlight[data-end]:after {
          ...
          background-color: hsla(201, 100%, 50%, 1);
          color: hsl(201, 100%, 95%);
          ...
      }
    • Remove vertical separator
      pre[class*="language-"] > code {
          ...
          border-left: 10px solid #358ccb;
          box-shadow: -1px 0px 0px 0px #358ccb, 0px 0px 0px 1px #dfdfdf;
          ...
      }
    • Remove alternate line background
      pre[class*="language-"] > code {
          ...
          background-image: linear-gradient(transparent 50%, rgba(69, 142, 209, 0.04) 50%);
          background-size: 3em 3em;
          background-origin: content-box;
          background-attachment: local;
          ...
      }
    • Remove right padding
      code[class*="language"] {
          ...
          padding: 0 1em;
          ...
      }
    • Remove margin pre tag
      pre[class*="language-"] {
          ...
          margin: 0;
          ...
      }
      
      /* Margin bottom to accommodate shadow */
      :not(pre) > code[class*="language-"],
      pre[class*="language-"] {
          background-color: #fdfdfd;
          -webkit-box-sizing: border-box;
          -moz-box-sizing: border-box;
          box-sizing: border-box;
          margin-bottom: 1em;
      }
    • Modify code background color
      pre[class*="language-"] > code {
          ... 
          background-color: #ededed;
          ...
      }
    • Remove tokens background color
      .token.operator,
      .token.entity,
      .token.url,
      .token.variable {
          ...
          background: rgba(255, 255, 255, 0.5);
          ...
      }
      
      .language-css .token.string,
      .style .token.string {
          ...
          background: rgba(255, 255, 255, 0.5);
          ...
      }
    • Remove inline code related styling
      /* Inline code */
      :not(pre) > code[class*="language-"] {
          position: relative;
          padding: .2em;
          border-radius: 0.3em;
          color: #c92c2c;
          border: 1px solid rgba(0, 0, 0, 0.1);
          display: inline;
          white-space: normal;
      }
      
      :not(pre) > code[class*="language-"]:after,
      pre[class*="language-"]:after {
          right: 0.75em;
          left: auto;
          -webkit-transform: rotate(2deg);
          -moz-transform: rotate(2deg);
          -ms-transform: rotate(2deg);
          -o-transform: rotate(2deg);
          transform: rotate(2deg);
      }
    • Hide overflow code block
      code[class*="language"] {
          ...
          overflow: hidden;
      }

JQuery

In order to use JQuery, we have to download a minified version. We are currently using the version jQuery Core 3.4.1. There was a mention to include integrity and crossorigin attributes to the script tag, but we did not.

Favicon

Favicon images have been generated using Real Favicon Generator.

About

This plugin has been developed to ease the work of software engineer courses' assistants that are in charge of going through tons of source files in order to provide feedback and advices to students.

License:MIT License


Languages

Language:Kotlin 88.6%Language:CSS 10.0%Language:JavaScript 1.4%