My bad, I was thinking about it as the total code you have left as a finished product, rather than the work (typing) that it takes to get to the product.
Hmm, I was thinking about the goal as a sort of autonomous thing that would be determined based on previous work. I think that if this was implemented, it could be a hybrid of our 2 ideas: allowing the user to target specific languages by specific amounts, and otherwise defaulting to a more general "progress further" goal (that the user could choose to specify).
I see 2 problems:
2 is impossible, but 1 isn't. To solve the language issue, use a "global average" that would combine all languages. To get the "global average", you would average (points gained per day - average points per week / 7) for each language. Positive = progression, negative = regression, 0-ish = about the same.
(I undoubtedly made a mistake somewhere here ^, take it with a grain of salt)
A possible visualizer for this would be a string like "119/273" just before the "65.33% [Plain] streak 4 mins" that would show "current points / goal points".
Additionally, it would be possible to slowly raise the point goal, to encourage more and more each day.
66 / 14 = 4.71 hours / day = 19.64%
Customer support service by UserEcho