Skip to content
Snippets Groups Projects
SubmissionLine.vue 1.15 KiB
Newer Older
  • Learn to ignore specific revisions
  • <template>
        <div>
          <td class="line-number-cell">
            <v-btn
              block
              class="line-number-btn"
              @click="toggleEditor"
            >
              {{ lineNo }}
            </v-btn>
          </td>
          <td class="code-cell-content pl-2">
            <pre class="prettyprint" :class="codeLanguage">{{ code }}</pre>
            <slot/>
          </td>
        </div>
    </template>
    
    <script>
      export default {
        name: 'submission-line',
        props: {
          lineNo: {
            type: String,
            required: true
          },
          code: {
            type: String,
            required: true
          },
          codeLanguage: {
            type: String,
            default: 'lang-c'
          }
        },
        methods: {
          toggleEditor () {
            this.$emit('toggleEditor')
          }
        },
        mounted () {
          window.PR.prettyPrint()
        }
      }
    </script>
    
    <style scoped>
      .line-number-cell {
        vertical-align: top;
      }
    
      pre.prettyprint {
        padding: 0;
        border: 0;
        white-space: pre-wrap;
      }
    
      .code-cell-content {
        width: 100%;
      }
    
      code {
        width: 100%;
        box-shadow: None;
      }
    
    
      .line-number-btn {
        height: fit-content;
        min-width: 50px;
        margin: 0;
      }
    </style>