FM ਨਾਲ ਇਕੱਠਾ ਫਾਰਮੈਟਰ

ਪ੍ਰੋਜੈਕਟ ਦਾ ਗਿੱਟਹੱਬ ਰੇਪੋ

ਸਮੱਸਿਆ

ਮੈਨੂੰ ਆਪਣਾ ਕੋਡ ਸੁੰਦਰ ਅਤੇ ਸੰਗਠਿਤ ਰੱਖਣਾ ਪਸੰਦ ਹੈ, ਇਸ ਲਈ ਮੈਂ ਫਾਰਮੈਟਰਾਂ ਦਾ ਪ੍ਰਸ਼ੰਸਕ ਹਾਂ। ਹਾਲਾਂਕਿ, ਮੈਨੂੰ ਇਦੇਆ (IDE) ਵਿੱਚ ਫਾਰਮੈਟਿੰਗ ਦਾ ਕਾਰਜ ਕਰਨਾ ਭਰਭਰਾ ਅਤੇ ਉਲਝਣ-ਭਰਾ ਲੱਗਦਾ ਹੈ, ਅਤੇ ਮੈਂ ਆਪਣੇ ਬਹੁਤ ਸਾਰੇ ਕੋਡ ਟਰਮੀਨਲ ਰਾਹੀਂ Vim ਵਿੱਚ ਲਿਖਦਾ ਹਾਂ। ਕੁਝ ਸਮੇਂ ਲਈ, ਮੈਂ ਇੱਕ ਐਸਾ CLI ਟੂਲ ਲੱਭ ਰਿਹਾ ਸੀ ਜੋ ਇੱਕ ਫਾਰਮੈਟਰ ਹੋਵੇ ਅਤੇ ਮੈਨੂੰ ਜਾਂ ਤਾਂ ਫਾਇਲ ਪਾਥ ਦੇਣ ਦੀ ਜਾਂ ਡਾਇਰੈਕਟਰੀ ਪਾਥ ਦੇਣ ਦੀ ਆਗਿਆ ਦੇਵੇ ਅਤੇ ਉਹ ਦਿੱਤੇ ਗਏ ਸਾਰੇ ਸਮੱਗਰੀ ਨੂੰ ਫਾਰਮੈਟ ਕਰੇ। ਇਸਦਾ ਮਤਲਬ, ਜੇ ਮੈਂ ਇੱਕ ਡਾਇਰੈਕਟਰੀ ਦਿੰਦਾ ਹਾਂ, ਤਾਂ ਇਹ ਉਸ ਡਾਇਰੈਕਟਰੀ ਦੀਆਂ ਸਾਰੀਆਂ ਫਾਇਲਾਂ ਨੂੰ ਫਾਰਮੈਟ ਕਰੇਗਾ ਅਤੇ ਜੇ ਦਿੱਤੀ ਗਈ ਡਾਇਰੈਕਟਰੀ ਵਿੱਚ ਕੋਈ .gitignore ਫਾਇਲ(ਆਂ) ਮਿਲੀਆਂ ਤਾਂ ਉਹਨਾਂ ਦਾ ਆਦਰ ਕਰੇਗਾ। ਮੈਂ ਕਾਫੀ ਸਮੇਂ ਤੱਕ ਇਸਦਾ ਹੱਲ ਲੱਭਦਾ ਰਿਹਾ ਪਰ ਕੁਝ ਨਹੀਂ ਮਿਲਿਆ।

ਹੱਲ

ਇਸ ਕਾਰਨ ਅਤੇ ਇਸ ਸਮੱਸਿਆ ਦੇ ਜਵਾਬ ਵਿੱਚ, ਮੈਂ ForMatter ਜਾਂ ਸੰਖੇਪ ਵਿੱਚ fm ਵਿਕਸਿਤ ਕੀਤਾ, ਇੱਕ CLI ਟੂਲ ਜੋ ਅਜੇ ਸ਼ੁਰੂਆਤੀ ਵਿਕਾਸ ਵਿੱਚ ਹੈ ਅਤੇ ਜੋ ਵੱਖ-ਵੱਖ ਪ੍ਰੋਜੈਕਟਾਂ ਵਿੱਚ ਸਕ੍ਰਿਪਟਾਂ ਨੂੰ ਫਾਰਮੈਟ ਕਰਨ ਲਈ ਡਿਜ਼ਾਇਨ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ ਟੂਲ IDE ‘ਤੇ ਨਿਰਭਰ ਕਰਨ ਦੇ ਮੁਕਾਬਲੇ ਫਾਰਮੈਟਿੰਗ ‘ਤੇ ਵੱਧ ਕਾਬੂ ਦਿੰਦਾ ਹੈ। ਜਦੋਂ ਕਿ ਇਹ ਅਜੇ ਵੀ ਵਿਕਾਸ ਵਿੱਚ ਹੈ, ਇਹ ਪੂਰੀ ਤਰ੍ਹਾਂ ਵਰਤਣਯੋਗ ਹੈ! ਜੇ ਤੁਸੀਂ ਯੋਗਦਾਨ ਦੇਣ ਵਿੱਚ ਰੁਚੀ ਰੱਖਦੇ ਹੋ, ਤਾਂ ਮੁਫ਼ਤ ਰਹੋ ਰੇਪੋ ਨੂੰ ਫੋਰਕ ਕਰੋ ਅਤੇ PR ਸਬਮਿਟ ਕਰੋ।

ਡਿਜ਼ਾਇਨ

fm Bash ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਲਿਖਿਆ ਗਿਆ ਹੈ ਅਤੇ ਪਿੱਛੇਲੇ ਪਾਸੇ ਹੇਠ ਲਿਖੀਆਂ ਲਾਇਬ੍ਰੇਰੀਆਂ/ਫਾਰਮੈਟਰਾਂ ਦਾ ਉਪਯੋਗ ਕਰਦਾ ਹੈ: shfmt, black, Prettier, & ClangFormat

ਇਨ੍ਹਾਂ ਲਾਇਬ੍ਰੇਰੀਆਂ/ਫਾਰਮੈਟਰਾਂ ਨਾਲ, fm ਹੇਠ ਲਿਖੇ ਫਾਰਮੈਟਾਂ ਨੂੰ ਸਪੋਰਟ ਕਰਦਾ ਹੈ: .py, .sh, .bash, .dash, .ksh, .js, .jsx, .ts, .tsx, .json, .md, .html, .css, .yml, .yaml, .graphql, .vue, .scss, .less, .c, .cpp, .h, .hpp, .m, .mm, & .java

ਨਤੀਜਾ

ਮੈਂ ਆਪਣੇ ਨਿੱਜੀ ਸਿਸਟਮ ‘ਤੇ ਵਿਸ਼ਾਲ ਤੌਰ ‘ਤੇ fm ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ, ਅਤੇ ਬਹੁਤ ਸਾਰੇ ਯੋਗਦਾਨ ਕਰਨ ਵਾਲੇ ਜਾਂ ਸਹਿਯੋਗੀ ਜਿੰਨ੍ਹਾਂ ਨਾਲ ਮੈਂ ਕੰਮ ਕਰਦਾ ਹਾਂ ਵੀ ਇਸਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਇਸੀ ਲਈ ਮੈਂ ਇਸਨੂੰ ਓਪਨ-ਸੋਰਸ ਕੀਤਾ। ਮੈਂ ਸੋਚਦਾ ਹਾਂ ਕਿ ਇਹ ਬਹੁਤ ਉਪਯੋਗੀ ਹੈ ਅਤੇ ਇਹ ਅਸਲ ਮੁੱਲ ਮੁਹੱਈਆ ਕਰ ਸਕਦਾ ਹੈ, ਇਸ ਲਈ ਮੈਂ ਚਾਹੁੰਦਾ ਹਾਂ ਕਿ ਸਾਰੀ ਦੁਨੀਆ ਇਸਦਾ ਉਪਯੋਗ ਕਰ ਸਕੇ। ਇਹ ਜਾਣਦੇ ਹੋਏ, ਹੁਣੇ ਹੀ fm ਨੂੰ ਗਿੱਟਹੱਬ ‘ਤੇ ਵੇਖੋ!