Commit d21baddc authored by gumen's avatar gumen 🐢

Support yields tag

parent 88b6a7e9
......@@ -236,3 +236,20 @@ opcje też działają.
pon, 20 sty 2020, 14:16:12 CET
DZIAŁAJĄ!!! Super to commit i można podpinać pod projekt i Emacsa.
pią, 24 sty 2020, 15:28:30 CET
Plugin chodzi pięknie na projekcie w firmie od kilku dni. Nie obyło
się bez kilku poprawek podczas wdrażania. Dzięki temu plugin działa
coraz lepiej. Doczekałem się już pierwszego pomocnika. W pierwszym
PR dodał bardzo fajne rzeczy.
W planach jest też mała poprawka do parsera "Doctrine". Niestety
przez to, że jest od dawna nie rozwijany to nie wspiera wszystkiego co
by nas interesowało. Dlatego nie obędzie się bez forka. Zajrzałem
już do kodu i wygląda na to, że poprawka będzie szybko i prosta.
sob, 25 sty 2020, 09:05:37 CET
Udało się zrobić forka, poprawkę i nawet dopisać nowe testy projektu
Doctrine. Teraz mamy wsparcie dla tagu @yields.
......@@ -180,7 +180,7 @@ function jsdocParser(text, parsers, options) {
else if (maxTagNameLength) descGapAdj = maxTagNameLength + gap.length
}
let useTagTitle = (tag.title !== 'description' || options.jsdocDescriptionTag)
let useTagTitle = (tag.title !== 'description' || options.jsdocDescriptionTag)
let tagString = ` * `
if (useTagTitle) tagString += `@${tag.title}` + ' '.repeat(tagTitleGapAdj)
......@@ -278,6 +278,7 @@ module.exports = {
'examples',
'other',
'param',
'yields',
'return',
]}],
description: 'Define order of tags.',
......
......@@ -1163,9 +1163,8 @@
"dev": true
},
"doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"version": "git+https://gitlab.com/gumen/doctrine.git#756da247758488c44e886c3a9fc8c891bbfe39fe",
"from": "git+https://gitlab.com/gumen/doctrine.git",
"requires": {
"esutils": "^2.0.2"
}
......
......@@ -22,7 +22,7 @@
]
},
"dependencies": {
"prettier": "^1.18.2",
"doctrine": "^3.0.0"
"doctrine": "git+https://gitlab.com/gumen/doctrine.git",
"prettier": "^1.18.2"
}
}
......@@ -269,26 +269,51 @@ test('Should insert proper amount of spaces based on option', () => {
expect(Result2).toEqual(Expected2)
})
test.skip('yields is broken', () => {
/*
* it will not be aligned prperly as doctrine seems to have problems with
* type here. Result of parse is:
* { title: 'yields', description: '{Number} return description' }
* and jsDoc does support type in this field:
* https://jsdoc.app/tags-yields.html
* As doctrine is not maitained at the moment solution here is either to fork
* it and fix it or search for other parser
*/
const options1 = {
jsdocSpaces: 2
test('yields should work like return tag', () => {
const options = {
jsdocSpaces: 3
}
const Result1 = subject(`/**
* @yields {Number} return description
*/`, options1)
* @yields {Number} yields description
*/`, options)
const Expected1 = `/**
* @yields {Number} Return description
* @yields {Number} Yields description
*/
`
const Result2 = subject(`/**
* @yield {Number} yields description
*/`, options)
const Expected2 = `/**
* @yields {Number} Yields description
*/
`
const Result3 = subject(`/**
* @yield {Number}
*/`, options)
const Expected3 = `/**
* @yields {Number} TODO
*/
`
const Result4 = subject(`/**
* @yield yelds description
*/`, options)
const Expected4 = `/**
* @yields Yelds description
*/
`
const Result5 = subject(`/**
* @yield
*/`, options)
const Expected5 = `/**
*/
`
expect(Result1).toEqual(Expected1)
expect(Result2).toEqual(Expected2)
expect(Result3).toEqual(Expected3)
expect(Result4).toEqual(Expected4)
expect(Result5).toEqual(Expected5)
})
* Golden Hour
:LOGBOOK:
CLOCK: [2020-01-24 pią 15:54]--[2020-01-24 pią 16:42] => 0:48
CLOCK: [2020-01-24 pią 14:48]--[2020-01-24 pią 15:32] => 0:44
CLOCK: [2020-01-20 pon 13:37]--[2020-01-20 pon 14:23] => 0:46
CLOCK: [2020-01-20 pon 11:17]--[2020-01-20 pon 12:02] => 0:45
CLOCK: [2020-01-19 nie 18:38]--[2020-01-19 nie 19:20] => 0:42
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment